السلام عليكم بعد تغيب بسيط عن الكتابة أعود اليوم لأشارككم موضوع خاص
بمنصات العمل أو إطارات العمل كما تدعى بالإنجليزية (
Framework) التي إنتشر إستعمالها كثيرا مأخرا في البرمجة بجميع أنواعها, ولإختيار الأفضل من بينهم لكي يناسب إحتياجاتك كمستخدم هناك العديد من المواصفات المطلوبة وبهذه المتطلبات ستضع أنت لنفسك لائحة بأحسنها. بالنسبة لأي مستخدم لابد من تضيع القليل من الوقت لتجربة كل واحدة على حدة وان تختار من بينهم التي توفر لك إحتياجاتك. ويمكن القول أنه لا يوجد اي نظام أو منصة كاملة فالكمال لله وحده , لكل واحد منا سيجد إيجابيات وسلبيات في كل واحد من هذه المنصات.
تعريف مبسط :منصة العمل بشكل عام تحتوي على أكواد للغة برمجية وهي توفر للمستخدم إستعمال دالة للقيام بشيء يلزمه في البرمجة العادية العديد من الأكواد للقيام بالشيء نفسه, وبهذا توفر على المبرمج الوقت لتطوير البرمجية, أيضا تحفظ التنظيم للعمل البرمجي, ايضا توفر نسبة أمان عالية جدا مقارنة مع البرمجة بدون إستعمالها .
سأتطرق في هذا الموضوع بالخصوص لمنصات العمل الخاصة بالبرمجة على PHP .
سلبيات :احببت أن أتطرق لها كبداية لكي أقولها من الأول "منصات العمل ليست للمبتدئين في البرمجة" فإذا تعرف مبتدأ في البرمجة على العمل بإطار العمل ويرى فيديو لإنجاز مدونة في 20 دقيقة سيظن نفسه أنه أصبح مبرمجا ويجب عليه البدأ بإنجاز مشاريع ( هذا الإحساس عن تجربة ) لهذا أنصح كل مبتدأ في البرمجة بدراسة اللغة البرمجية جيدا والتعمق فيها جيدا ومن ثم يمكنه أن يأخذ مشاريع للكسب منها.بالنسبة لنا في برمجة بال PHP لدينا العديد من منصة العمل ومن أشهرها :
Zend Framework,
symfony ,
CakePHP ,
CodeIgniter ,
Prado ,
Jelix .... .
عموما لهم نفس المبدأ ونفس المحتوى :
نظام MVC, الإدخال لقاعدة البيانات, تعدد اللغات, نظام التخزين اللحظي أو الكاش, تأمين الكود البرمجي (مثال ثغرة XSS...).
إذن الأن سأعدد الأمور التي ستضعها وأنت تختار أحسن واحد من بين 6 المقترحين مسبقا أو من غيرهم
- سهولة الإستعمال : بالنسبة لأي إطار عمل, من الضروري جدا مدة من الزمن لكي تتلائم مع العمل بإستعمال أي إطار وهذا متغير يرجع لمدى ذكاء المطور. ونفترض في هذه الحالة دخول مطور لفريق عمل يشتغل على إطار عمل معين فمن الضروري أن تكون مدة تلائمه على العمل بهذا الإطار قصيرة لكي يبدأ العمل مع الفريق.
- المرونة : يجب علينا ايضا مقارنة الصعوبات والقوانين التي يفرضها كل إطار عمل على حدة, المهم ستجد في كل منها قوانين إضافية وتعقيدات, إذن يجب على المبرمج التلائم مع الإطار الذي يفرض عليه القليل من القوانين الإضافية ( لانتحدث هنا عن الضوابط العامة للغة البرمجة وإنما التي يضيفها إستعمال الإطار).
- حجم المشروع المبرمج : من الضروري أيضا مراعات حجم الإطار فأحسنهم هو من يعطيك إمكانية إنشاء موقع ثابت دون الحاجة لمساحة كبيرة.
- الدليل : من الضروري أن يتوفر الإطار على دليل إستخدام تتوفر فيه الشروط التالية : سهل القراءة, يتم تحديثه دوريا, يكون واضحا وشاملا, ويشمل دروس لشرح طريقة عمل الإطار جيدا.
- الأداء العام للإطار : يجب أن يوفر الإطار أكبر كم ممكن من الإمكانيات المتوفرة عند إستعماله فكلما زادة الإمكانيات تقلص وقت العمل على مشروع معين. مثلا : يمكن أن نضع كود برمجي بال PHP ونريد تحويله للعمل على إطار عمل معين ونقارن الوقت المستهلك وايضا حجم الكود المستخلص لنرى من منهم يمكن ان يساعدنا في تقليل وقت العمل لأكثر حد ممكن.
- منتدى أو مجموعة للمساعدة : يجب أيضا أن ندخل للمنتدى أو مجموعة المساعدة المقترحة من طرف موقع الإطار ونطرح أسئلة ونرى كيفية تفاعل مع الأسئلة المطروحة . لأنه فيما بعد ستحتاج لشيء أو تقع في مشكل فيجب أن تتأكد من أن أصحاب الإطار سيساعدونك بسرعة أيضا ولن تطر للبحث عن مبتغاك في مواقع اخرى أو أن تضيع وقت في البحث عن حل .
- التطور : من المهم جدا أيضا ان تحاول إستجداء مستقبل الإطار وان ترى هل له أفاق أي أنه سيتطور مع كل تطور جديد للويب أم أنه سيدعك دائما في حقبة قديمة . لأنك لن تغير في كل وقت إطار العمل الذي تعمل عليه.
للمساعدة سأضع هنا مقارنة بسيطة من كتابتي للإختيار بين 3 أطر عمل وهم : CakePhp, Zend Framwork, CodeIgniter
هنا سنطرح العناوين الجذابة التي يعرضها كل إطار من الأطر السابقة الذكر لجدب المستعملين :CakePhp :
طريقة لإنجاز مدونة بإستعماله Zend Framework :
أول مشروع في ثلاثين دقيقةِCodeIgniter :
مدونة في عشرين دقيقة من هذه الروابط سيتضح لنا حرص أصحاب هذه المنصات من أن يظهرو لنا أن تطبيقاتهم هي سهلة الإستعمال
دليل المستخدم لكل منهم :CakePhp : الملاحظ أنه متوفر بعدد من اللغات, ويشمل على شرح لكل الدوال وطريقة الإستخدام , له إمكانية عرض الكل في صفحة واحدة وهذه مهمة عند البدأ بالعمل به :).
Zend Framework : متوفر أيضا بالعدد من اللغات يجمع الفهرس في صفحة واحد لتسهيل قرائة جميع المحتويات, من اشمل كتب المستخدم المتوفرة على الأنترنيت بصراحة :)
CodeIgniter : كتاب للمستخدم سهل للإستعمال وأيضا يشمل كل الدوال المستعملة مع تقسيم فهرس جيد يظهر في الأعلى يمكنك من أن تدرس هذا الإطار فقط من قرائة دليل المستخدم الخاص به.
دعم الأجاكس وجافاسكريبة :CakePhp : توجد به مكتبة داخلية تدعم الأجاكس والجافاسكريبة
Zend Framework : توجد به مكتبة ملحقة به تابعة لإطار عمل أخر خاص بالجافاسكريبة وهو :
DOJOCodeIgniter : لا توجد في المكتبة الأصلية لكن توجد إضافات لدعم الجافاسكريبة والأجاكس
المنتديات والويكي :CakePhp :
مشاركة المقالات : وإن كان لديك مشكل يجب أن تكتب مقالاتا أو تعليق عن المشكل لا أحبذ هته الطريقة في التواصل.
Zend Framework :
مصادر للمتابعة تتوفر على ويكي ايضا : لم أجرب تفاعلهم بصراحة لأنني لم تعجني طريقتهم في التواصل بطريقة لائحة الإئميلات أو تتبع الأخطاء, أفضل منتدى وأن اسئل وأنتظر جوابا وأن أرى اسئلة الأخرين.
ِCodeIgniter :
المنتدى -
الويكي : يمكنني القول أن المنتدى من فضل المنديات في تقديم المساعدة.
خلاصة :أحببت هنا أن عرفكم فقط على الطرق السهلة لمقارنة الأحسن من بين منصات العمل المقترحة, لكن يبقا لكل منا إحتياجاته ويجب أن تقارن وتعطي دوما الأغلبية لإحتياجاتنا فربما يكون إطار هو الأحسن في العالم ولكن لايوفر لك الغرض الذي من أجله بدأت تبحث عن المقارنة بينما إطار أخر أقل سمعتا يوفر لك ماتحتاج فلا تتردد بأن تختار لنفسك ما يرضي طموحاتك .
" بالنسبة لي أنا شخصيا استعمل CodeIgniter : سهل الإستعمال, مفتوح لدرجة استطيع التعديل عليه كما أريد, دليل مستخدم سهل وشامل ويفي بالغرض, منتدى متفاعل دائما ستجد جوابا لسألك في أقل من ساعة من طرحك لسؤال, ويكي تحتوي على إضافات عديدة. " عماد اجعيط -الموضوع دوما تحت التصحيح والمراجعة. إن وفقت فمن الله وإن أخطأت فمني ومن الشيطان-