مدونة تقنية عامة
In: عام| كمبيوتر وانترنت
15 نوفمبر 2008لعلك تعرف ماهو إطار العمل (framework),و على الأرجح قد تكون إستخدمتة فى أثناء برمجتك لبعض الأعمال أيا كانت اللغة التى تستخدمها :
إطار العمل: مجموعة من الأدوات، المكاتب البرمجية، الاصطلاحات (conventions) وأفضل الممارسات البرمجية لمحاولة تجريد المهام التكرارية ووضعها ضمن وحدات برمجية كي يعاد استعمالها.
إذن مبدأ إطار العمل يقوم على عزل المهام البرمجية المتكررة ووضعها ضمن وحدة برمجية جاهزة، ومهمتك أن تقوم فقط باستدعاء التابع المناسب لك بدل كتابتها من جديد، وجعل تركيز المطور منكباً على المهام البرمجية الجديدة، عوضاً عن شغله بالمهام الروتينية المتكررة وكما يطلق عليه “إعادة اختراع العجلة”. [ماهو إطار العمل Framwork؟ ]
و لكن ما هو إطار العمل الأنسب لمشروعك ؟على أى أساس تقوم بالإختيار ؟
برأى أول و أهم نقطة فى الإختيار هو منهجية العمل “Methodology” ,و هى بالنسبة لإطارات العمل تحديد إلى اى فئة ينتمى ..هل الى الأطر الملصقة (Glue Frameworks )أم الأطر الكاملة (Full stack frameworks), أهمية هذة النقطة تأتى من تأثيرها المباشر على سير العمل بتطبيقك من حيث مرونة الإطار لإضافة أى أدوات أو مكتبات خارجية , الوقت المبذول لتغيير طريقة عمل أحد المكونات الأساسية للإطار بما يتماشى و تطبيقك إذا كان تطبيقك يتطلب تطويعا للإطار ,حجم تطبيقك و الوقت المطلوب لإنجازة و يجب أن تعرف أولا ما هى منهجية عمل الإطار و تنتقى الإطار الذى تتماشى منهجيتة مع تطبيقك و إلا ستخسر الكثير من الوقت و الجهد.
إطار الحزم المتكاملة (Full stack framework):
هو الإطار الذى يتكون من مجموعة موحدة من المكونات (components) التى تقدم لك كل ما تحتاجة فى تطبيقك البرمجى , سبب التسمية يرجع لكون هذا الإطار صمم لكى تعمل مكوناتة معا بشكل مثالى و متكامل بحيث لا يكون هناك حاجة لإضافة أى أدوات أو مكونات خارجية و أى تغيير أو إضافة مكونات ستكون خارج هدف الإطار و ستبذل مجهودا لتطبيقهاو تطويع الإطار ليعمل معها بسلاسة.
المميزات:
العيوب :
أمثلة :
الإطار الملصق (Glue Framework ):
هو الأطار الذى يتكون من مجموعة من المكونات (components)التى تغطى أهم الإحتياجات فى تطبيقك البرمجى و سبب التسمية يرجع لأن هذاالإطار صمم لكى تعمل مكوناتة الأساسية فى تناسق مع بعضها بالإضافة لإمكانية إضافة (لصق) أى مكونات خارجية من المحتمل إضافتها للإطار حسب رغبة المبرمج , بمعنى انة يمكنك ان تنتقى أو تترك من مكونات الإطار الأساسية ما يناسبك مع لصق أى مكونات خارجية لها ..يوصف هذا الإطار بالمرن لسهولة تطويعة لإحداث التغيرات
المميزات :
العيوب :
امثلة :
و من التعريف السابق تستطيع أن تحدد منهجية عمل أى إطار لو قرأت قليلا عن هذا الإطار أو فى المنتدى الخاص بة أو لو قمت بتحميلة للتجربة فغالبا لا يذكر بشكل مباشر فى موقع الإطار منهجيتة و لكنها تستنتج من طريقة عملة و الكتابات عنة .
بعد تحديدك لمنهجية عمل الإطار و ما إذا كانت ملائمة لطبيعتك كمبرمج أو طبيعة فريق العمل و المشروع , تأتى نقاط أخرى للمقارنة منها مثلا :
تجربتى الشخصية :
قمت بتجربة كلا من الإطار الكامل متمثلا فى “ِCakePHP” و الإطار الملصق متمثلا فى Codeigniter” ,” Zend Framework” و أرى ان اقصى استفادة ممكنة و سرعة فى العمل تتحق مع الإطار الملصق فأنا شخصيا أحب ان تكون لى حرية اختيار المكونات الخاصة بالإطار و لا تكون مفروضة على , بالإضافة لإمكانية تلبية طلب العميل إذا ما أراد وضع اى خاصية معينة لا تتماشى مع طبيعة عمل الإطار الكامل (هذة الحالة كابوس..ستضطر عندها لفهم كيفية عمل الإطار الكامل كلة )
إقرأ أيضا :
إسمى فاطمة من مصر ,أعمل مطورة ويب , قمت بتطوير أول موقع لى عام 2004 , أتخذ منهجية المعايير القياسية أساس لعملى والتى تدعم قابلية الوصول و الإستخدام..أحب التصميم كهواية ولكنى لست محترفة بة ..أحب عملى و لذلك أحاول دوما تطوير قدراتى بتعلم الجديد..أنشأت هذة المدونة لتساعدنى على مراقبة مستواى ..وعلها تكون ذات فائدة للاخرين .... المزيد
11 تعليق على عن أطر العمل المتكاملة الحزم و الملصقة- Glue vs Full stack Frameworks
ياسر
نوفمبر 21st, 2008 at 7:15 ص
رااائع جدا جدا المقال
بالعفل أبدعتي , أتمنى أن تكون قد وصلت رسالتي والتي كنت أستفسر فيها عن إطار العمل CodeIgniter وبالفعل أفدتيني والله
, بل أكثر
جزاكم الله خيرا ..
FTM
نوفمبر 21st, 2008 at 7:24 م
شكرا لك ياسر..أنا الأسعد انى قدمت معلومة مفيدة , قمت بالبحث عن رسالتك و لم أجدها هلا تكرمت و أعدت إرسالها أو تخبرنى ما هو إستفسارك عن CodeIgniter ؟..سعدت بتشريفك .
البراء العوهلي
نوفمبر 26th, 2008 at 12:24 م
المقال في قمة الروعة والفائدة .. والإختصار كذلك .. شخصيــًا استفدت كثيرًا .. ولي فترة وأنا أريد أن أخوض في غمار البايثون .. ولكن لم أجد المحرر الجيد .. لكن بإذن الله بعد تثبيت الـ Pylons ستتغير الحال ^_^ .. جزيتي خيرًا أختي .. ونترقب المزيد من ابداعاتك ..
FTM
نوفمبر 27th, 2008 at 5:51 م
شكرا لك أخ براء ..بالتوفيق إن شاء اللة فى عالم البايثون
..أسعدتنى زيارتك
taha
ديسمبر 17th, 2008 at 8:35 ص
مقال فى قمة الروعة اعجبنى طرحك للموضوع بشكل جديد
انا اول مرة اساسا اعرف فكرة اطر العمل الملصقة و اطر العمل المتكاملة
لكنى اود طرح الموضوع من جهة اخرى
لماذا افضل ال cakephp على ال codeigniter
دعم اطار العمل الذى تعمل عليه لل wordpress , drupal
cakephp يدعمها بشكل كامل
codeingniter الى الان لا
Framework Benchmark
codeingniter يتفوق على الكيك
اساسا انت ليه بتختار انك تشتغل باطار عمل , علشان سهولة التعامل مع الكود الى انت بتكتبه
ان كل حاجة فى الكود بتاعك بتبقى منظمة ال model و ال view و ال controller
و ده المبدا الى بيعتمد عليه اى اطار عمل MVC
ال view
cakephp بعتمد فى طريقة العرض على متغيرين title_for_layout و ال content_for_layout كل واحد مرتبط بطريقة عرض معينة و ممكن تغيرها كل الى عليك انك تعرف طريقة استخدمهم و تعمل ال view الخاصة بيك و عيش
codeingniter طريقة انكلود فايل و ممكن تعمل هوك و تستخدم نفس المبدأ الى بيستخدمه الكيك و فيه كمان كلاس للثيمات
الدعم و مجتمع الانترنت
codeingniter مجتمع صغير مقارنة ب cakephp لكن رغم صغره الا انه منظم مرتب, علشان تعرف بس الفرق ادخل على موقع ال codeingniter و موقع ال cakephp و من شكل الموقعين و من تنظيمهم هتعرف الفرق
من الاخر فى راى المتواضع ال codeingniter احسن من لا شىْ لكنه لايمكن مقارنته ب cakephp
cakephp بيدعم كودك بشكل كامل و بيطبق عليه فكرة ال MVC
منتظر تعليقك لماذا تفضلين ال codeingniter , مواقف ما خليتك تفضليه على ال cakephp
taha
ديسمبر 17th, 2008 at 8:41 ص
مافيش واحدة بقى javascript framework VS بينهم و بين بعضيهم
FTM
ديسمبر 24th, 2008 at 5:29 ص
taha :
مرحبا بك كما قلت سابقا codeigniter لا يجبرك على استخدام طرق عمل معينة هو يحتوى على المكونات الأساسية و يترك لك حرية الإختيار و يعتمد على البساطة فى التكوين بعكس Cakephp فهو يجهز لك كل شىء تحتاجة مما يجعل انجاز العمل سريع و لكن من الصعب ان تعرف كيف يعمل كل جزء فى الإطار و التعديل فى طريقة العمل ستتطلب تعديل فى امكان اخرى كتيرة و انا احب ان اعرف كيف يعمل الإطار بسهولة و الا تحولت لمستخدم للإطار ولست مطور…و هذة النقطة هى من الفروق الرئيسية بين نوعى الإطارين الذى اشرت لة فى المقال
هناك غيرى واجهوا نفس الشعور , تفقد هذا الرابطقد تجدة مفيد
http://snook.ca/archives/php/codeigniter_vs_cakephp/
نقطة شيقة ما يتعلق ب javascript framework قد أفكر بالكتابة عنها و شكرا للفكرة ..شرفت بزيارتك
taha
ديسمبر 25th, 2008 at 7:53 ص
الكلام الى تحت من المقال الى انتى حطه لينك ليه
I’m still personally a fan of CakePHP over CodeIgniter for much of the “automagic” that I mentioned. And it’s shortcomings have been getting addressed with each new iteration (1.2 will be a considerable leap over 1.1 but it will still be awhile before it’s released).
FTM
ديسمبر 25th, 2008 at 8:16 ص
taha :
الجزء دة بيأكد وجهة نظرى .,هو ذكر فى المقطع دة ان سبب إعجابة ب cakephp هو مبدأ ال automagic يعنى ان كل مكونات العمل للتطبيق موجودة مسبقا فى الإطار و جاهزة للعمل تلقائيا بشكل مترابط و مشتبك (اوتوماتيكيا) مما يجعل انجاز العمل سريع
و لكن لو قرأت الجزء اللى فوق فى المقال
Approach to Simplicity
I believe much of CodeIgniter’s appeal is its simplicity in its approach. Most of the work is done in the controller, loading in libraries, getting data from the model, and pulling in the view. Everything is in plain sight and you can really see how things work.
CakePHP’s simplicity comes via automation (euphemistically referred to as “automagic”). It makes the coding process quicker but harder to figure out “what is going on” without popping your head into the core.
بيذكر فية صراحة عيب الاتجاة الاوتماتيكى فى الشغل بالنسبة للناس اللى تحب تفهم كل جزء فى الشغل ماشى ازاى
عموما هى ترجع فى النهاية لفكر المبرمج و الاسلوب اللى يحب يعمل بية , يعنى لو عقدنا مقارنات بين الاإطارات الملصقة و المتكاملة ستجد كل فريق من مدعمى الاطر سيتحمس و يدافع عن النوع الذى يفضلة. دة ذوق شخصى فى العمل .لا يوجد حسم هنا ..المهم يكون لدينا ادراك للفرق بين الاتنين
Tadwina
يونيو 7th, 2009 at 4:49 ص
مرحباً
لقد قام أحد المعجبين بمدونتك بإضافتها إلى تدوينة دوت كوم، بيت المدونات العربية.
قام فريق المحررين بمراجعة مدونتك و تصنيفها و تحرير بياناتها، حتى يتمكن زوار الموقع و محركات البحث من إيجادها و متابعتها.
يمكنك متابعة مدونتك على الرابط التالى:
http://www.tadwina.com/feed/149
يمكنك متابعة باقى مدونات تدوينة دوت كوم على الرابط التالى:
http://www.tadwina.com
لعمل أى تغييرات فى بيانات مدونتك أو لإقتراح مدونات أخرى لا تتردد فى الإتصال بنا من خلال الموقع.
و لكم جزيل الشكر،
فريق عمل تدوينة دوت كوم.
http://www.tadwina.com
ggg
يناير 22nd, 2010 at 3:35 م
vxvdfgfdgdf