هل تميل إلى إستخدام أطر العمل؟ [Frameworks]

أطر العمل لمختلف اللغات تسهل على المبرمجين الكثير من الأمور، لكنها في نفس الوقت تحتاج إلى وقت من أجل تعلمها وبعض المبرمجين يقوم ببناء إطار عمله الخاص الذي يمكنه من إنهاء مشاريعه بسرعة.

هل أنت ممن يستخدمون إطار عمل معين؟ أم أنك تميل إلى البرمجة بأسلوبك الخاص بعيداً عن قوانين إطار العمل؟

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

27

سؤال جيد،

من أطر العمل ما يمكن أن يكون -على غرار ما ينتظر منه المبرمج- Anti-pattern، أي عبئا عليه عوض أن يزيد من إنتاجيته

لو نعيد صياغة السؤال: هل حقا تزيد أطر العمل أو إطار العمل الفلاني من إنتاجيتنا؟

شخصيا أصبحت أقسهم إلى ثلاث أصناف:

  • full stack framework والذي يأتي بأشياء Out of the box

  • micro framework والذي يأتي لانطلاقة سريعة ولا يوفر لك باقي التسهيلات ويترك الأمر لك.

  • extensible microframework وهو إطار العمل المصغر لكن قابل للتمديد عبر إضافات خاصة به.

بالنسبة لي، أنا مع استعمال أطر العمل بشكل عام، خاصة في المشاريع الجدية أو متوسطة/كبيرة الحجم، ﻷسباب التالية:

  • عدم اختراع العجلة في روتينيات متكررة

  • بعض الأمور القياسية يجب اتباعها Standards وقد لا أجد الوقت لاتباعها أو ببساطة لا أكترث (مثال: زرع كود csrf في النماذج Forms وكيفية التحقق منه... الخ)

  • قليل من الحماية الزائدة التي يوفرها الإطار عبر اعتماد أفضل السلوكيات best practices في الخفاء، والتي قد أغفل عنها شخصيا.

مع جميع هذه النقاط الإيجابية، فلا ننكر أنه هناك نقطة قد ينزعج منها المبرمج، وهي:

  • التخصيص، فكما قلت قد يُملي عليك قوانينا أو أسلوبا لا تُحبذه وتبدأ في البحث عن التخصيص لكي يناسب رغباتك، وأحيانا كثيرة تجد نفسك تعيد كتابة وظيفة كاملة يأتي بها الإطار أساسا، فقط لتهيئها لمبتغاك وهنا يكمن الـ anti-pattern.

بين هذا وذاك اخترت شخصيا أن أكون وسطا (وهو ما بدأت أراه عند كثير من المبرمجين)، فلا أضيع ميزات أطر العمل للنقاط التي ذكرتها ولا أتركها كلية ﻷعيد اختراع العجلة، وفي هذا وقع خياري على:

الـ microframework خاصة منها الـ extensible، لما؟

  • ﻷنها تأتي فقط بما يمكنني بانطلاقة جيدة (مثال: built-in server & and debugger + router)

  • سريعة، كونها لا تأتي مُثقلة بأمور قد لا تحتاجها في مشروعك.

  • قابلة للامتداد حسب الحاجة في حال وجدت إضافة تناسب رغبتك وعلى الطريقة التي تريدها فتربح الوقت.

خاصة إذا كانت اللغة تملك Package manager جيد كبايثون، روبي و Node.js.

مثال ما ذكرت إطار العمل Flask الخاص ببايثون.

هذا رأيي المتواضع :)

لا اميل لإستخدام اطارات العمل..

والسبب بوجهه نظري:

شي من خبز يدك انت ادرى به!

بالتّوفيق.

أطر العمل مهمة جدا و لا يمكن تجاهلها أو الحطّ من قيمتها, إلا أنّ كونها عيارية (standard) يجعلها أكثر عرضة للهجمات و يكفي حين ذاك تتبع مواطن الثغرات و العمل على رفع نسبة الأمن فيها

أفضل استخدام اطار عمل خاص بي ، بسيط و قابل للتطوير بالاضافات.

جربت بعض اطر العمل الشهيرة مثل كيك وكوداجنيتر ولم اجد نفسي مرتاحاً في التعامل معها .. فبنيت اطار عمل خاص بي يحتوي على الامور التي اكررها في كل مشروع.

اطار العمل مفيد جدا لكن يجب عليك فهمها جيدا قبل استخدامها

إسئل نفسك قبل ان تستخدمها,

هل مشروعك يتطلب مايقدمه إطار العمل ؟

ان كان مشروع يحتوي فيه الكثير من Model وتعامل كثير مع قاعدة البينات ويتطلب إدخالات من المستخدم حينها يفضل إستخدام إطار عمل.

اما ان كان فقط لعرض المعلومات فيفضل عرضها ك Static او استخدام Wordpress لاكني افضل ال Static