مدونة الويب 2.0

  • الرئيسية
  • تعريف بالمدونة
  • المصادر
  • تواصل معي
  • أخبار المدونة
  • أفكار
  • استبيان
  • برمجة
  • تصميم
  • تطوير
  • كتب
  • مدونات عربية
  • مهمات
  • مواقع

هل استخدام أطر العمل أمر جيد؟

20, يناير 2009 التصنيف: برمجة

هذا هو السؤال اليوم في منتديات البرمجة العربية، أخص لغة PHP وإطارات العمل فيها (CakePHP, CodeIgniter, Zend, Symfony).

في البداية دعني أحدثك عن أطراف النزاع، الطرف الأول شخص قرر أن يكتفي من البرمجة العادية المتعبة في لغة PHP وأن ينتقل لإطار عمل، الطرف الثاني شخص لايعتمد بكلامه على أي أساس علمي، يستشهد بأقوال أناس يكرهون أطر العمل (راسموس)، ويهاجمون الطرف الأول هجوماً عنيفاً لقراره “الخاطىء والغير مغفور له” باستخدام إطار عمل. لاداعي لذكر أن أعداد الطرف الثاني تفوق الطرف الأول بكثير.

ماهي مشكلة الطرف الأول؟

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

ماهي مشكلة الطرف الثاني؟

  • يدافع عن البرمجة العادية بال PHP وكأنها شيء لاينبغي المساس به أبداً.
  • يستشهد بأقوال المعادين لأطر العمل (أشهرهم راسموس مخترع PHP والذي يروج لإطار الزيند بكلامه والباقي أغلبهم أناس لم يستطيعوا تقبل أو تعلم أطر العمل) دون إدراك لهذه الأقوال.
  • لم يستعملوا يوماً أية أدلة علمية (benchmark) لقياس الأداء بين البرمجة العادية وإطار العمل، المهم لديهم أن إطار العمل شيء سيء جداً جداً.
  • لم يستعملوا أطر العمل، أو استعملوها ولم يفهموا كيفية عملها فقاموا بحملة شعواء عليها.
  • يتحدثون عن الثباتية وكأنهم يديرون مواقع بملايين الزيارات اليومية ومسألة الثباتية (stability) تهمهم جداً جداً جداً أكثر من أي شيء آخر.

أمام كل هذه الأمور كيف نتعامل مع الطرف الثاني؟

  • هل يوجد لديك أدلة علمية (عدا كلام راسموس الذي صار قديماً)، بالطبع لاتجرب المثال السخيف (Hello World) لأنه سيعطي نتائج هزيلة في الاختبار؟
  • هل جربت الإطار؟ ما الذي لم يعجبك به؟ لا أريد كلام منقول أريد تجربتك الشخصية؟
  • هل تعلم أن موقع Firefox Add-ons مبني على CakePHP، وأن Magento مبنية على Zend Framwork والكثير من المواقع التي يهمها الثباتية أكثر مني ومنك ومن المواقع العربية مجتمعة تستخدم أطر العمل؟
  • هل كتبت يوماً تطبيق ويب محترم واحترافي لنشاهد كيف تفوقت على أطر العمل؟
  • هل شاهدت يوماً هذه الصفحة للمواقع المبنية بال CakePHP ويوجد مثلها في كل إطار عمل؟ هل فكرت يوماً بأن هؤلاء المطورين الذين استخدموا أطر العمل لم يستخدموها عبثاً؟

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

شارك هذه التدوينة:
إضافة 'هل استخدام أطر العمل أمر جيد؟' إلى Del.icio.usإضافة 'هل استخدام أطر العمل أمر جيد؟' إلى diggإضافة 'هل استخدام أطر العمل أمر جيد؟' إلى Technoratiإضافة 'هل استخدام أطر العمل أمر جيد؟' إلى Stumble Uponإضافة 'هل استخدام أطر العمل أمر جيد؟' إلى Google Bookmarksإضافة 'هل استخدام أطر العمل أمر جيد؟' إلى FaceBookإضافة 'هل استخدام أطر العمل أمر جيد؟' إلى MySpaceإضافة 'هل استخدام أطر العمل أمر جيد؟' إلى Twitterإضافة 'هل استخدام أطر العمل أمر جيد؟' إلى FriendFeed
الوسوم: php, أطر العمل, برمجة, تطوير
أرسل هذه التدوينة لصديق أرسل هذه التدوينة لصديق
طباعة هذه التدوينة طباعة هذه التدوينة

    إقرأ أيضاً:

    • محررات الـ PHP المتقدمة
    • سؤال وجواب عن الكيك
    • أفضل أدوات تطوير المواقع
    • تنقيح الكود باستخدام PDT + Xdebug
    • إضافة التاريخ الهجري للوردبريس

47 تعليق في “هل استخدام أطر العمل أمر جيد؟”

  1. عبدالملك الثاري: 20, يناير 2009 في 11:01 م

    موضوع أكثر من رائع ولي عوده بإذن الله لطرح رأيي فيه

    شكراً لك اخوي خالد وبارك الله فيك :)


  2. مدونة محمد: 20, يناير 2009 في 11:02 م

    بعدما قرأت ردودك “هناك” عرفت أنك لن تمر مرور الكرام :)
    لست من الطرف الأول و لا من الطرف الثاني، لكنني أرى أن كل متعصب لميدانه فهو على خطأ..

    استخدام أطر العمل ليس سيئا لذلك الحد الذي يصوره الطرف الثاني، و كأن الأطر نقيصة لا تغتفر! بالمقابل للبرمجة بدون أطر متعتها، و اللبيب من يدري بخبايا البحرين و يدري ماذا يفعل..

    ما يضحكني فعلا حديث البعض (و ما أكثرهم في وطننا العربي) عن البرمجة و التطوير مع أحكام و قوانين، تعتقد أنه مبرمج قولا و فعلا، و الحقيقة مجرد ببغاء و وعود فارغة..


  3. خالد: 20, يناير 2009 في 11:10 م

    @عبد الملك: شرفت بأي وقت ورأيك بالتأكيد يثري الموضوع كثيراً.

    @محمد: صديقي العزيز أسعدني مرورك، مازلت لحد اليوم اعتمد على البرمجة العادية في بعض الأمور التي أرى فيها استخدام إطار العمل يعقد المسألة، أنا من الطرف الثالث :D بالتأكيد هناك آلاف المواقع الكبيرة المبرمجة بالطريقة العادية.
    هؤلاء تسكتهم عندما تسألهم عن “أعمالهم العظيمة” فتجده يهرب فوراً لأنه لم يحقق شيء على أرض الواقع.


  4. على المصرى: 21, يناير 2009 في 12:07 ص

    اما انا ففعلا لا اعرف انا مع اى طرف ولكنى مع الاثنين الطرف الاول فانا فعلا عملت على اطارات عمل واولها CodeIgniter وحاولت احترف ال cakephp ولكن لم يكفينى الوقتى فبعد المره على بعض اطارات العمل وحيت انى افهم واستوعب البرمجة الشيئية (Object-oriented programming)ففكرت فى عمل ملفات خاصة بى
    library – Classes ووضعت كل ما احتاجه وقد احتاج والحمد لله اعتقد انه نجج الامر فاليوم والحمد لله انا امتلك بعض الخلايا (classes)من انتى للتعامل مع قواعد البيانات ووظائف اخر واظن الامر بالنسبة لى ناجح جدا الحمد لله ولكن الامر عندى لا يقف الى هذا الحد فانا احاول ان اتابع الامر لكى اصل الى اطار عمل طيب وافضل ال cakephp واخف فهل انا من اى طرف ولكن فى الحق انا مع كل ما يساعدنى على انجاز عمل عالى الجودة وباقل جهد واقل وقت واظن ان الامر حتى الان شبه ناجح .


  5. خالد: 21, يناير 2009 في 12:14 ص

    إذاً أنت مثال للنجاح والمثابرة! ماشاء الله عليك


  6. مصطفي محمود: 21, يناير 2009 في 1:52 ص

    موضوع قيم جدا .. وكنت أريد أن أقرأ مثل هذا منذ شهور
    فلعلي الأن كنت سأكون محترف إحدي اطر العمل
    شكرا لك .. وليتك تكمل دورة الكيك


  7. cssbit: 21, يناير 2009 في 2:35 م

    برأيي ان استعمال اطار عمل حسنة كبيرة وفائدة عظيمة للمطور
    شخصيا كنت ساتوجه الى cakephp وبعدما (سمعت من الناس الذين استعملوا هذا الاطار) أن التحديث والتطوير بطيء وان documentation يتم تحديثها ببطء

    بعد ذلك فكرت وبحثت ووجدت أن من يريد برمجة تطبيقات ويب صغيرة وبسيطة فعليه ب symfony ومن يريد برامج كبيرة بها مميزات كثيرة (مكتبات وإضافات كثيرة) وقبل ذلك مستعد لتعلم مفاهيم OOP بطريقة قوية جدا فعليه ب zend

    شخصيا أشجع على استعمال اطار عمل، وان كنت حاليا ابرمج كل شيء من الصفر بدون إطار عمل


  8. خالد: 21, يناير 2009 في 2:55 م

    @مصطفى: إن شاء الله، لكن هل بدأت بشيء بالكيك أم لا؟

    @cssbit: المشكلة أننا كثيراً مانبني وجهة نظرنا بناء على كلام الناس وهذا خطأ كبير، الكيك كان توثيقه قليل أما الآن قلاتبحث عن شيء إلا وتجده على الرغم من وجود فصل أو فصلين غير مشروحين بشكل كافي وهو من أسهل الأطر.


  9. عبدالرحمن: 21, يناير 2009 في 3:03 م

    كلام جميل أخي خالد،
    على الرغم من عدم ارتباطي بالـ php
    لكن يضايقني أن البعض يتعصب لأجل التعصب،
    أعني أنه لايعلم الكثير عن ثقافة الـ reuse أو إعادة الاستخدام،
    وهي مصطلح خصب في مجال هندسة البرمجيات،
    فالـ frameworks أو أطر العمل، أحد صور هذا المفهوم،
    والذي سيدفع بعجلة التطور أكثر أو أكثر،

    فبدلاً من بناء موقع يستهلك الكثير من الوقت،
    بإمكانك استخدام أطار عمل يكفيك عناء بعض البرمجة،

    على أية حال، أجزم أن المستقبل لثقافة إعادة الإستخدام.
    ..

    بالمناسبة،
    هل Dijango جيد في نظرك؟

    تحياتي

    عبدالرحمن.. : )


  10. عبدالرحمن: 21, يناير 2009 في 3:05 م

    * عفواً للتو انتبهت أن dijango هو إطار عمل لـ بايثون.

    تحياتي.. : )


  11. cssbit: 21, يناير 2009 في 3:15 م

    هؤلاء ليسوا هواة، انهم مطورين محترفين، قضوا سنوات في البرمجة، فلا استطيع تجاهل آرائهم المبنية على عمل واجتهاد لسنوات

    cake ليس سيئا بل لم أجد ما يشجعني كي انتقل اليه ولدي خيارات أخرى قرأت أنها أفضل

    وان اردت الصراحة فانني قرات مواضيع أخرى تقارن بين cake و symfony مثلا، ووجدت الكاتب يفضل cake ويقول انها الافضل والانسب

    القضية هي أي اطار مناسب لي، وأي إطار مناسب لك

    أعتقد ان اختيار فريق magento لإطار zend ليس اعتباطيا، خاصة وأن الفريق يضم خيرة المبرمجين
    كما أن إطار zend يشرف عليه مبرمجين متخصصين ذوي باع طويل في PHP


  12. Adnan: 21, يناير 2009 في 4:04 م

    بالنسبة لقلي انا مع الشي المناسب, على حسب المشروع كبير و لا صغير.
    مع أني ما بفضل php للمشاريع الكبيرة,لو شو ما صار انا مع اي شي بخص Java
    (J2EE) قلها أطر كاملة,شي روعة سهلة البرمجة,بفضلها على كل شي هي وجهة رأي.
    بس فيها مشكلة عويصة و خاصة بالنسبة للأنترنت ,مافي استضافات مجانية :-) , و ما في قلها دعم بشكل عام من شركات الاستضافة و خاصة العربية.انا سوف القي نظرة على cake مع اني ما ارتحت له. بالنهاية هاد مجرد رأي شخصي,مابعرف إذا الكم ملاحظات.
    سلام.


  13. خالد: 21, يناير 2009 في 4:12 م

    @عبد الرحمن: بارك الله فيك كلامك رائع، مفهوم reuse و refactoring اصبح منتشر بشكل كبير ويجب على الجميع استخدام هذه المفاهيم.
    ونعم إطار Dijango هو أشهر إطار للبايثون واتمنى لو تتاح لي الفرصة والوقت لتعلمه.

    @cssbit: لم أقل هواة ولكن لكل إنسان رأيه الشخصي، فمثلاً أنت تحب اللون الأزرق لكن غيرك لايحب هذا اللون، هذا هو القصد جرب واحكم بنفسك. لكي تحل مشكلة الاختيار بين الإطارات جربهم واعطي لكل إطار أسبوعين مثلاً.
    ملاحظة: لم أقل أن الزيند سيء! ولكنه لايحقق مفهوم إطار العمل والكل يعرف ذلك، هو أقرب للمكتبة من إطار العمل.

    @عدنان: النقاش حول إطارات PHP وليس الجافا :) الجافا لايستطيع أحد التكلم عليها بشيء فهي أكبر من ذلك بكثير :)


  14. عمر الدليمي: 21, يناير 2009 في 4:51 م

    خالد أخ عزيز وأحترم رأيك دوماً.
    لكن بخصوص cakephp فللأسف لم أجد دليل أو أي أمر يشجعني للعمل عليه. مثلا:
    أنت قمت – مشكوراً – بطرح بعض التدريبات وأتبعتها أنا خطوة بخطوة وعرفتني على الإطار لكن توقفت ….. إلى هنا ليست بمشكلة
    كالعادة أنا أعتمد على إنجليزيتي وأقرأ الكتب الإنجليزية :) ، لكن الكيك بالنسبة لي (صفر) في التوثيق. هذا الامر ليس جيداً لواحد مثلي.
    أنا عندما أريد أن أتعلم شيئاً أريد أن أجد له توثيق شامل … لا لا ليس شرطاً أن يكون شامل بل على الأقل دليل بسيط يبين لنا كيفية تعلمه مثلا rodmap لو لم يكن للفريق وقت كي يوثق ما عمل.
    لا توجد حتى رؤوس أقلام لتعلم cakephp.

    أنا في آخر فترة راجعت معلوماتي في php فوجدتها ضعفت كثيراً لتركي لها بسبب دراسة الثانوية. المهم رجعت له من جديد وهذه المرة معتمداً على كتاب php.net/manual الأمر كان ممتعاً مع أن الكتاب لا يحوي صوراً ههههه لكنه علمي 100% فهو يحوي على دليل لتعلم اللغة وخصوصياتها كما يحوي على مرجع كامل للدوال (98% منها) مع مثال واحد لكل دالة.
    هل نقارن ذلك بتوثيق cakephp؟؟ بالطبع لا! أنت كما تعرف أنه ليس من الجيد أن أضل أتخبط في أمر أريد أن أستخدمه على أرض الواقع. فهو ليس نظام تشغيل تستطيع أن تتجاهل ما لا ينفعك. بل أنا أريد أن أستخدم إطار العمل وأن أعرف وأستفيد من كل ما يقدم لي وإلا مالفائدة؟
    أمر آخر الجميع يتكلم عن روبي وجمالية cakephp لأنه مقتبس من طريقة عمل RoR هل يجب أن يهمني هذا الأمر؟ كشخص يريد تعلم php فقط بدون التشتيت في لغتين لنفس المجال؟
    قيل لي أن أتعلم Codeigniter الأمر منطقي فهو يحوي على أغلب الأمور التي أعرفها عن cakephp ويحوي على توثيق شامل.

    أنا لا أختلف معك في شيء بقدر ما أريد منك أن تكف عن تشجيعنها على إطار العمل بدون توفر طريقة جيدة غير تعلمه عن طريق التدريبات المتناثرة هنا وهناك :) .

    في النهاية أرجوا أن تعلم أنني سأعطيك فرصة (تهديد ههههههه) لمدة شهر ونصف من الآن كي تقنعني بإستخدام cakephp أضفني على جيميل إن تطلب الأمر هههه :) ، هذا قبل أن أنهي كتاب php.net/manual وأختار إطار عمل لأستقر عليه :) ، كما قلت لك أنا لست سيئاً في php لكن هناك الكثير من الأمور الموجودة في الدليل أحببت أن أتعلمها بدلاً من البحث في جوجل في كل مرة أحتاج فيها أمراً.

    تحيتي لك أستاذ خالد :)


  15. عمر الدليمي: 21, يناير 2009 في 4:54 م

    يالطول الرسالة التي كتبتها! لم أتنبه :) .
    على العموم أتمنى أن لا تنزعج من كلامي إن كان متكرراً، نفسه في كل مرة!
    ببساطة تجاهل الأمر إن كنت لا تملك الوقت لذلك :) .


  16. خالد: 21, يناير 2009 في 5:06 م

    لنوضح الأمور:
    1- توثيق PHP لايقارن بأي توثيق بالعالم (اللهم إلا MSDN)
    2- تشبيه الكيك بالرور يهمك إذا عرفت ميزات الرور الرهيبة!
    3- هل قرأت: http://book.cakephp.org/ من المؤكد لا، لأنك لو قرأته لن تتكلم هكذا، والكتب الإلكترونية التي صدرت؟ أيضاً لم تقرأها.

    بالأخير لاتقارن توثيق PHP بالكيك أبداً، الأولى لها أكثر من 15 سنة مع ملايين المطورين والثانية لم تظهر إلا قبل فترة وجيزة.


  17. خالد: 21, يناير 2009 في 5:07 م

    أمر آخر، ليست مهمتي ان أعمل دعاية للكيك فأنا لست متعصباً له ( أو هكذا اعتقد :) ) ولكن مايثير الحسرة هو الطرف الأول فعلاً!


  18. سعود الهواوي: 21, يناير 2009 في 5:58 م

    قضيه التعصب لشيء مهما كان سوا برمجه او شركة أمر ممقوت بالنسبة لي

    فقضيه اختيار اطار العمل المناسب يجب ان تكون مبنية على هل هذا الاطار يلبي احتياجاتي ام لا

    وهل سوف يؤدي مااريد عمله في مشروعي ام لا

    لا اتعصب لان هذا افضل او هذا أسوا
    وهنا قضيه أخرى لابد ان نحكم على الشيء قبل ذلك بتجربتنا الشخصية له مهما كان ومهما سمعنا من سيئات من الناس

    انا عن نفسي اعلم ان لغة PHP لغة رائعه وتستحق التجربه ولكن حتى رغم سماعي الكثير من المدح لن احكم عليها حتى اجربها واتعلمها

    ولكن بما اني لم اتعلمها ولا أبرمج الا بلغة vB.NET اعتبرها افضل لغة لتطبيقات ولكن عندما أقول أفضل لايعني ان البقية فيهم سؤ او نقص ولكن الفرق اني لم اجربهم حتى احكم عليهم


  19. خالد: 21, يناير 2009 في 6:32 م

    بارك الله فيك، رأيك يثري الموضوع وبالتأكيد كلام لاغبار عليه ومن يستمع لكلام العالم فسينتهي به الوضع للعمل على الأسمبلي :D


  20. كريم: 21, يناير 2009 في 7:08 م

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


  21. ahmed-araby: 21, يناير 2009 في 7:40 م

    ماشاء الله اكثر من 20 رد , يبدو ان الموضوع محل جدال للكثيرين , سوف أحاول ان اختصر
    أطر العمل شئ موفر للوقت بدرجه خيالية فمثلا مع cake يمكن عمل صفحة دخول فى أقل من دقيقتان وربما أقل من دقيقة وما خفى كان أعظم
    بالنسبة لاى اطر العمل فمع تجربتى ومع ماقالته فرق العمل الخاصة بتلك الأطر
    cake: مناسب للمشاريع الصغير ومتوسطه الحجم وأنصح به بشدة , كما ان التوثيق الخاص به رائع وخصوص اخر اصدار الذى يدعم تعددية اللغات , التطوير قد يكون نوع ما بطئ ولكنه محسوب بشكل جميل وهو بلا ادنى شك تطوير للأفضل , وموضوع تطوير التوثيقات , اعتقد انك بعد ان تقوم بعمل تطبيق واحد سوف تعرف بنفسك كيف تحصل على ماتحتاجه فى اقل وقت ممكن
    اما بالنسبة symfony فهو مناسب للمشاريع كبيرة الحجم وخصوصا لو كنت تعمل ضمن فريق عمل ولكنى لم اجربه ولكن من النظره الاولى على التوثيق علمت انى سوف استفيد منه جدا جدا
    zend لم اجربة حتى الان ولكن حسب ما عرفته عنه انه يحتاج الى كثير من العمل قبل ان يكون جاهز للعمل
    واسف للإطاله ولكنى اعتقد انك فقط بمجرد نظره سريعه من مقال لايمكنك الحكم على اى اطار عمل , جرب أولا ثم احكم :D


  22. خالد: 21, يناير 2009 في 8:03 م

    @كريم: معك حق

    @أحمد: كلام صحيح ومختصر مفيد، القاعدة الذهبية جرب بنفسك ثم احكم


  23. cssbit: 21, يناير 2009 في 8:41 م

    هناك تضارب واراء مختلفة هنا
    symfony للمشاريع الصغيرة والمتوسطة وليس للكبيرة الحجم

    zend إطار عمل متكامل وليس مكتبات، ولا يختلف اثنان انه في أي مقارنة يأتي في المرتبة الاولى

    لا يمكن قول هذا افضل واحسن من هذا، لكن دائما يكون هناك شيء يتفوق على شيء

    ونحن هنا نبدي آراء ولا نتعصب للغة او اطار عمل

    شخصيا ساتجه الى synfony واحترم من يعمل ب cake أو بإطار آخر

    خالد:
    عندما قلت اراء مبرمجين، فانا اتحدث عمن كان يعمل ب cake وانتقل الى اطار اخر، ولاحظ الفرق الكبير، وليس من جرب اطارا واحدا، الامر هنا يتعدى قضية اختيار اللون المفضل :)


  24. عمر الدليمي: 21, يناير 2009 في 8:45 م

    يا خالد، الظاهر طورو التوثيق آخر فترة.
    آخر مرة قرأته كان فقيراً :) . والكتب لا أستطيع شراءها :)
    خطوة جميلة، أنا أتوقع أنهم لم يكتبوا التوثيق للأمور التي كانت في طور التطوير.
    لست مستعجلاً في الإختيار، لكنني مهتماً بعدم إختيار إطار خاطيء!
    لأنني في هذه الفترة أستعد لعمل مشروع في نفسي أفكر فيه من سنة تقريباً :) وأكثر ما يهمني فيه هو الأمان :) . لذلك أنا أبحث عن إطار عمل كي أحافظ على هذا الأمر قدر الإمكان :) .
    في نهاية الأمر أشكرك كثيراً على كل ما تكتبه. فأنا بطبيعتي كثير التشوق للمعرفة وللإطلاع على الجديد في عالم تطوير الويب :) ، وأنت من الأشخاص الذين أهتم لآرائهم :)


  25. خالد: 21, يناير 2009 في 9:56 م

    @cssbit: كل له رأيه والرجاء ثم الرجاء الإبقاء على هدف الموضوع الأساسي.


  26. عبدالملك الثاري: 22, يناير 2009 في 3:19 ص

    بما يختص أطر العمل , هل تؤيدها أم لا ؟

    هناك مثل أجنبي يقول إبدء من حيث انتهى الآخرون فلماذا أعيد اختراع العجلة ولدي أطر عمل تساعدني في إتمام الأمور المتكررة في كل مشروع وتسهل علي بنائها

    فنعم أنا أؤيدها بكل تأكيد وأنا مع الطرف الأول

    بالنسبة لحوار أطر العمل وما هو أفضلها فكلاً يتميز بميزاته الخاصه , ماذا أختار ؟ سأختار الأفضل بما يتناسب لمشروعي مثلاً إذا كان المشروع بإمكان عمله بجميع أطر العمل سأختار الأسهل والأكثر أداء اما إذا كان المشروع لا يمكن عمله إلى بإطر عمل محدده حيث ان هناك مميزات أريد عملها وغير موجوده ببعض الأطر فسأستخدم ما يستطيع توفيره لي إطار العمل …

    وهناك الكثير من الأمور التي يعتمد عليها مدى اختيارك لإطار العمل المناسب

    حالياً لست مثقفاً ولا خبيراً في أطر العمل ولم أنتقل لها بعد , لأنني لم أقم ببناء مشروع متكامل به حتى الأن , انتظر فكرة مشروع الذي سأقوم بناءه بها بإذن الله

    ومنكم نستفيد , شكراً لك أخوي خالد لطرح هذا الموضوع الرائع


  27. خالد: 22, يناير 2009 في 3:29 ص

    ماشاء الله عليك، فعلاً تعليق يستحق الانتظار. كلام منطقي وأكثر من رائع وسمعته مرة من شخص خبير في فرنسا حيث قال بأنهم عملوا على مشروع لمحطة الأنفاق واستخدموا فيه أكثر من خمس لغات، لغات وليس أطر عمل! لماذا؟ لأن كل لغة كانت مفيدة بمجال معين والمشروع كان حساس ودقيق لدرجة كبيرة.

    شكراً لمرورك وتعليقك الرائع


  28. Adil: 22, يناير 2009 في 5:15 ص

    موضع جميل اشكرك اخي على الطرح.
    شخصيا تعاملت مع الزيند اعجبتني فعلا.
    مايميزها يمكن ان تستعملها كمكتبة و اطار عمل مع التحكم الكلي في كل مكونات الاطار عكس باقي الاطر. من الناحية التقنية الزيند مبنية كليا للتوافق مع النسخة الخامسة من اللغة وتوثيق الزيند جيد.
    بالنسبة للمطورين الذين يتعاملون مع الفلاش مؤخرا ثمت اضافة كلاس يسمح بعملية اتصال php مع flash والكلاس هو Zend_Amf. اختيار Abode للزيند لم يكن اعتباطيا يعني لن تجد صعوبة للتعامل مع flex او flash من خلال php. ناهيك عن الكلاسات الاخر التي تسمح بالاتصال مع المواقع التي توفر خدمات مشهورة كـ : openID, google, youtube, yahoo, flickr technorati, amazon, Delicious . وغيرها..
    بخصوص الجافاسكريبت. الزنيد تدعم dojo و jquery من خلال الكلاسات Zend_dojo و ZendX_JQuery. دون ان ننسى Zend_Form لتوليد الفورم. ولمن يبحث عن محرك بحث فعليه بـ : Zend_Search_Lucune.
    زيادة على ذلك القائمون على المشروع هم مطوروااللغة.. يعني اهل مكة ادرى بشعابها :)
    من مساؤى الزنيد اذكر صعوبة التعامل مع نظام القوالب يعني نظام القوالب صعب قليلا غير انه يمكن التغلب على هذه النقطة باستخدام smarty او اي نظام اخر.
    وكما قال الاخوة جرب بعدها احكم.
    عذرا على الاطالة و دعمتم في رعاية الله وحفظه
    والسلام


  29. خالد: 22, يناير 2009 في 5:45 ص

    شكراً جزيلاً على هذه المعلومات، وبالفعل استخدم Zend_Search_Lucene مع الكيك لأحد المشاريع وهذا من ميزات الزيند أنه يمكنك استخدام أصنافه مع أنظمة غيره.


  30. Qinq: 22, يناير 2009 في 4:29 م

    خالد متعصب دوما :)
    اطر العمل جميله لكن الفكره انه ليس من المطقى ان تقنع الناس كلهم باستعمالها
    الفكره هناك وظائف معينه فيها دائما Don’t reinvent the wheel
    ايضا يقال عن اطر العمل شىء ظريف
    Makes the easy things hard and the hard things easy
    ولكن البرمجه الحره لها متعتها ولها قوتها… عن نفسى حتى اكون واضح لم استعملها فى شىء جدى او حتى اكون اوضح احب ان اعمل مع ال PHP كلغه برمجه اكثر منها Web Oriented
    بالمناسبه ال PHP Documentation أفضل ما رأيت بسسب ال User Contributions من مستخدمين ذوى مستوى متباين اما ال MSDN صحيح شامله لكنها ميته واجزاء كثيره منها كلام سخيف .. حاولوا ان يضيفوا مشاركات القراء مثل ال PHP ولكن التطوعيه عندهم لا تسمح بانتاج شىء جيد


  31. خالد: 22, يناير 2009 في 6:17 م

    كما قلت سابقاً لا استخدمها دوماً ولكن غالباً


  32. cssbit: 24, يناير 2009 في 1:38 م

    اعتذر وصلت متأخرا
    اردت ان اقول انني لن اتوجه الى shymfony
    ولدي خيارين الان اما cakephp او zend

    السب الذي يجعلني ارجح التوجه الى cake هو ان zend ثقيلة الحجم وقد لا تكون عملية للمشاريع الصغيرة التي ابرمجها

    ايضا قرات عن cake انها تميل كثيرا الى منصة ROR وهذا قد يساعدني في العمل عليها لاحقا

    في الحقيقة ما زلت مترددا في الاختيار وقضاء وقت طويل في منصة ادرك انها لم تكن الخيار المناسب لي

    في جملة، ماذا تستطيع ان تقول لي اخي خالد حول cake وهل انت نادم او سعيد باختيارك هذا

    البعض بعد تجربة المنصات يلجا الى انشاء منصته الخاصة كما فعل صاحب Solarphp

    واعتقد ان الجميع شعر بهذا الشعور في وقت من الاوقات، بحيث تاتيتك فكرة انشاء منصة خاصة بك


  33. cssbit: 24, يناير 2009 في 1:43 م

    لماذا يجب استعمال اطار عمل ؟
    – توفير الوقت والجهد
    – القدرة على قراءة اكواد الاخرين
    – العمل في بيئة ممتلئة بالمبرمجين العالمين والمتطوعين الخبراء

    عيوب:
    – الالتزام بقوانين وطريقة عمل الإطار
    – لن تكون هناك امكانيات كبيرة كي تختبر وتتعلم تقنيات وامور في اللغة لان كل شيء جاهز تقريبا


  34. خالد: 24, يناير 2009 في 2:05 م

    لو كنت نادم كنت غيرته :) الكيك إطار ممتاز ومرن لدرجة كبيرة، عيبه الوحيد هو دعمه لل php 4 لذلك تجد فيه استخدام المصفوفات بدل الكائنات، ولكن في النسخة القادمة 2 سيتم التخلي عن دعم php 4


  35. mohmf: 24, يناير 2009 في 3:56 م

    الموضوع اعتقد انه يجب ان يكون فيه مرونه اكثر .
    فالسؤال استخدم اطار MVC او لا , يجب ان لايحدده “انا احب ذاك ولا احب ذلك” .
    فالتحديد هنا يحدده ماهيه وطبيعه البرنامج الذي تريد بناءه , خصوصاً اذا فهمنا ان مفهوم الـ MVC يتعلق موضوع هندسة البرمجات وانماط التصميم , وهذه كلها مراحل تسبق عمليه التكويد الفعلي .
    فاعتقد ان البعض يعلم ان الـ MVC ماهي الا عباره عن نمط تصميم “Design Pattern” يهدف الى تقسيم البرنامج وتوزيعه بشكل يسهل بعدها عمليه التطوير على المراحل المختلفه للتطبيق . واساساً الـ MVC يستخدم ضمنياً انماط تصميم ابسط وهي الانماط Observer, Composite,Strategy وايضاً احياناً يتم استخدام نمط الـ Factory فيما بين الـ View-Controller . ولذلك , ليس كل التطبيقات يمكن ان يتم انجازها بتلك المكونات او ممكن القول ان تلك الانماط ليست الحل الامثل لتلك التطبيقات . وكلامي هنا بالعموم وليس عن لغه محدده .
    نأتي هنا الى موضوع الـ Web والـ PHP , فطبيعه الويب الموزعه , تتناسب مع الـ MVC بشكل عام .
    اما عن مبرمج الـ PHP الذي يريد سرعه في التطوير والانتاجية والبدء سريعاً فالافضل له ان يتسخدم الاطر , لانه سوف توفر عليه وقت وجهد تتطلبها طبيعه الـ PHP نفسها , فمعروف ان لم تخطط جيداً لبرامجك في الـ PHP , فسوف تنتهي في الغالب الى ان يكون لديك Spaghetti code (بنكهه اندومي :) .
    واعتقد ان الحاجه الماسه لإطر العمل سوف تقل نوعاً ما مع ظهور الـ PHP 6 .

    الخلاصه , يجب ان تأخذ وقت كافي لكي تقرر هل ستحتاج فعلاً الى استخدام اطار ام لا ..


  36. ahmed-araby: 24, يناير 2009 في 7:30 م

    @cssbit: كما قلت لم اجرب zend ولكنى بالتاكيد متاكد انه الاقوى,
    فى توثيق symfony قالوا انك تضيع وقتك فى استخدامها مع مشاريع صغيره , وهذا لاحظته من تقسيمه controllers و actions الافتراضية , ولكن على كل حال لم استخدمها بعد فانا فى فترة سبات مع cake
    @خالد: اتمنى الا اكون قد خرجت عن الموضوع :)


  37. خالد: 24, يناير 2009 في 8:01 م

    @محمد: أسعدني تعليقك كلام لاغبار عليه
    @أحمد: المدونة مدونتك :D


  38. bassem: 29, يناير 2009 في 7:26 م

    خالد انت حطيت ايديك على الوجع
    العالم خرجة عن الموضوع الاساسي و هو استعمال اطر العمل
    انا ما عندي راي بس رح قول الي عم شوفه
    الي عندوا نظرة عامة على لغات البرمجة ممكن يفهم شو عم قول
    نبدا بميكروسوفت لغاتها و تقنياتها تعتمد على أطار عمل دوت نت
    في الويب ال asp.net هي تطوير لل asp التي كانت لغة سكريبت مثل ال php
    سن ميكرو سيستم jvm في الويب ال jsp لحقت بميكروسوفت و عملت ال jsf
    تقليد لل asp.net و الخ من التقنيات wpf و wcf
    جميعها اطر عمل تعتمد على ال اطر عمل اخرى مبنيه فوق بعضها
    هذه هي الشركات الكبيرة و توجهتها هذا الذي اره
    راي الشخص : كل شي بمحلوا حلو
    و شكرا


  39. خالد: 29, يناير 2009 في 9:29 م

    صحيح، الأخ محمد (mohmf) تكلم بنفس الفكرة


  40. عمر الدليمي: 30, يناير 2009 في 3:42 م

    @خالد:
    ألا ترى أن أطر العمل مناسبة للعمل الجماعي أكثر من الفردي؟؟
    حسب توقعي أنه فائدتها هناك تظهر بجلاء!


  41. islam4hak: 5, فبراير 2009 في 11:05 م

    السلام عليكم ورحمة الله وبركاته فى الواقع لى رد صغير على موضوعك وهو مبداء من مبادئ علم (التنمية البشرية) وهو ان كل من لا ييتطور هو يتأخر
    وفى الواقع انا استخدامى لفريم وارك كانت تجربه طوووووويلة جدا ً ففى البداية انا لم اعمل بالفريم وارك ولاكنى عملت بنفس الفكرة وهى استخدام كلاسات اكتباها انا لتفيدنى فى العمليات التى استخدمها بكثرة وكانت هذة الكلاسات
    عمليات قواعد البينات بالكامل
    اضافة تعديل حذف بحث الخ
    خلق وتعديل النماذج
    خلق النماذج استنادا ً على قاعدة البينات مع استثنائات جذرية كنت اقوم انا بكتابتها واستخدامها فى صالحى

    ومن ثم اكتشفت فرريم وارك الزند ثم الكيك بى اتش بى
    واستخدمت الكيك
    وأصبح الموقع الذى يأخذ منى شهر يأخذ اسبوع على الاكثر …..
    أعتقد ان هذا الوقت كافى للرد على كلا ص من الطرفين


  42. خالد: 6, فبراير 2009 في 5:30 ص

    وعليكم السلام ورحمة الله وبركاته، شكراً لمشاركتنا هذه التجرية ولايقدر الشيء إلا من تعامل معه.


  43. Saeed: 7, فبراير 2009 في 7:34 م

    مشاركة بسيطة أود أن أتقدم بها بناء على تجربة مسبقة وخبرة متواضعة :
    أود الإشارة إلى أنني لن أتكلم عن لغة معينة و عن الأطر المستخدمة في تلك اللغة, بل سأتكلم بشكل عام وبغض النظر عن لغة البرمجة, إذ أن الأطر آنفة الذكر قد أصبحت متوفرة في معظم اللغات, مع العلم أن تجربتي لهذه الأطر في لغتين هما الـ Java والـ PHP.
    في بادئ الأمر كلنا تعلمنا البرمجة العادية التسلسلية و أصبح لدينا طرق و مكاتب من صنع أنفسنا نستخدمها عند الحاجة, ثم تعلمنا في مابعد البرمجة غرضية التوجه, في بادئ الأمر وجدنا الانتقال إليها فيه القليل من الصعوبة, ولكن وبعد فترة اعتدنا عليها و وجدناها هي الأفضل, إذا أنها قدمت لنا الكثير من الميزات التي كنا نفتقدها في الطريقة القديمة.
    نفس الأمر ينطبق على فكرة الانتقال إلى استخدام أطر العمل, فأطر العمل ليست مجرد تغليف أو مجرد طريقة أو آلية, وإنما معظم أطر العمل تعتمد على ما يسمى بالـ Design Pattern نماذج التصميم, وهي نماذج يعتمد عليها المرء ليصمم البنية التي سيبنى عليها برنامجه, ومن خلالها ستحدد مسؤوليات كل قسم من البرنامج وطرق التواصل بين هذه الأقسام, وبالتالي سيلتغي التكرار في البرنامج و ستصبح البرمجة أسهل و منظمة أكثر و مهيكلة بطريقة سليمة تسمح بسهولة التطوير و صيانة البرنامج, كما تسمح لأي شخص جديد بالانضمام إلى فريق تطوير البرنامج. إن هذه النماذج تستخدم في المشاريع الكبيرة و قد أثبتت فعاليتها إذ أنها تعتمد على أسس هندسة البرمجيات السليمة و أهمها مفهوم الفصل و التلاحم أي أن أقسام البرنامج مفصولة عن بعضها البعض و لكل قسم مسؤولياته و مهامه, كما أن هناك طريقة منظمة تتصل فيها هذه الأقسام مع بعضها البعض. وأحد هذه النماذج هو : MVC -Model.View.Control والذي يحقق المفهوم السابق. هذا النموذج معتمد من قبل معظم أطر العمل الخاصة بالـ PHP كما أنه يستخدم بشكل واسع في معظم لغات البرمجة و بمعظم التطبيقات و حتى عند بناء المكاتب البرمجية.
    سأطرح الآن أمثلة عن هذا النموذج :
    المثال الأول في الجافا: فكل من يعرف مكاتب الـ UI في الجافا يعرف أن أحدها هي مكتبة الـ Swing وهي مكتبة قوية جداً وتملك الكثير من عناصر الواجهات الغنية, هذه المكتبة مبنية داخلياً باستخدام النموذج MVC. فمثلاً أنت تريد عرض معطيات معينة فيجب أن تخزنها بـ Model ومن ثم تحدد طريقة عرضها فمثلاً يمكنك عرضها ضمن جدول أو ضمن قائمة أو… نلاحظ إن تغيير طريقة العرض View لا يؤثر على المعطيات, فهي موجودة و معالجة, ما بقي هو عرضها بالطريقة الأنسب.
    المثال الثاني عام ولا يخص لغة معينة : هناك الآن ما يسمى بالـ Multi Layers Application أي الأنظمة متعددة الطبقات و التي تتبناها برأيي الـ J2EE بكل جدارة. هذه الأنظمة تحوي عدة طبقات غالباً تكون ثلاثة إحداها مسؤولة عن جلب المعطيات من ( قاعدة المعطيات, Web Service أو أي نظام آخر) ومعالجة هذه المعطيات وغالباً تدعى بالـ Data Layer, الطبقة الثانية مسؤولة عن عدة أمور منها الـ Security و بقية المعالجات على المعطيات كما أنها مسؤولة عن الربط بين الطبقتين الأخريتين والمزيد المزيد من المهام. أما الطبقة الثالثة فهي طبقة العرض View وهي المسؤولة عن عرض المعطيات.
    نلاحظ من الطبقات الثلاث أننا يمكنا بناء تطبيق كبير و متماسك وبناء الطبقتين الأولتين مرة واحدة و من ثم بناء عدة طبقات للعرض حسب الحاجة فمثلاً يمكننا بناء طبقة عرض على أساس الويب و أخرى للعرض على الموبايل و أخرى كـ Web Service و و و , فهنا لم نعيد كتابة بقية الطبقات من أجل كل نوع من التطبيقات و إنما إعادة الاستخدام مع الوصل بين الطبقات.
    وهناك الكثير الكثير من الأمثلة التي تعاملت معها في حياتي البرمجية
    فإخواني أرجو أن تكون هذه لمحة بسيطة عن أهمية التعامل مع الأطر البرمجية

    شكراً على الإطالة


  44. خالد: 7, فبراير 2009 في 8:45 م

    بارك الله فيك، معلومات قيمة جداً.


  45. أحمد سليمان: 17, فبراير 2009 في 4:38 م

    السلام عليكم

    شكراً علي الموضوع أستاذ خالد و مدونتك أعجبتني و نقاش شيق الحقيقة لم أستخدم أطر العمل في مشروعات و إن كنت قد جربت بعض الأمثلة بالزيند و الـ codeigniter و أجد البعض ينصح بالأخيره و أنها سهله و قوية فما رأيك .. كما قال بعض الإخوة “أريد أن أختصر وقت التجارب الكاملة”

    تحياتي لك ..

    أحمد


  46. خالد: 17, فبراير 2009 في 4:56 م

    وعليكم السلام ورحمة الله وبركاته

    لايمكن اختصار الوقت بهذه الأمور عليك أن تمنح هذه الإطارات بعض الوقت وتجرب ثم تقرر فكل هذه الإطارات جيدة وتقوم بالغرض ولكن تختلف ببعض الميزات عن بعضها.


  47. حمدان كامل: 6, أبريل 2010 في 8:20 م

    السلام عليكم ,
    يبدو cakephp للوهلة الاولى سهلا وممتعاً
    ان الحاجز الفاصل بين ان يكون cakephp ممتعا وسهلا او يكون صعبا ومعقدا هو الفترة التي ستقضيها في تعلم هذا الاطار .

    متى يحق لك الحكم على استخدام cakephp او لا
    1- اقرأ التوثيق الخاص cakephp.com كاملاً ولا تلقى بالا للاشياء التي تراها صعبة الفهم , فقط حاول تصل الى لب فكرة العمل .
    2- شاهد الدورات التدريبية tutorials عن cakephp ابدا من الاسهل للاصعب
    3- بالتوافق مع الخطوة السابقة ينصح بتنزيل الاطار والبدأ بتطبيق الامثلة وحاول الفخر بالنجاح .
    4- حاول اختلاق افكار جديدة تبدأ من الابسط للاعقد .
    5- ادا كنت تعمل على البرمجة الكلاسيكية ولك انجازات برمجية مثل موقع شخصي او موقع للاخبار او حتى سوق الكتروني , جرب اضافة cakephp اليه وحاول ان تطور نفسك .

    بعد كل هذا يمكنك بكل براعة الادلاء برأيك وسأضمن لك ان سيكون مفيدا ً للغير ,
    وفوق كل هذا للنظر الى الناحية العلمية التي ستستفيدها من تعلم هذا الشيء

    على فكرة ..
    في phpclasses.com عندما تعبئ بياناتك الشخصية هناك خانة للذين يستطيعون البرمجة تحت اطار العمل cakephp هؤلاء الذين يستخدمون اطر العمل الحديثة خصوصا لديهم فرص اكبر من المبرمجين الكلاسيكيين

    وشكرا جزيلا لكاتب الموضوع


شاركنا برأيك؟

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

  • الأكثر قراءة
  • الأحدث
  • الأرشيف
  • تعلم الكيك وتطوير المواقع بالبيت
  • تنظيم الوقت البرمجي
  • أفكار ومواقع ويب 2 شهيرة
  • مقدمة في CakePHP
  • لماذا غوغل شريرة!
  • الخطوط العربية
  • تصميم قاعدة البيانات
  • هل تريد أن تكسب 1000 دولار؟
  • مواقع عربية بالدروبال
  • موقع الجزيرة الجديد
    1. غوغل، جوجل، كوكل أو قوقل!
    2. دروبال تعلمه بالعربي
    3. تحديثات بالجملة
    4. صفحة 404
    5. مدونة الويب 2.0 في 2010
    6. عن غيوم
    7. وحدة Scrollable Content لدروبال
    8. موقع بدون قاعدة بيانات
    9. دول العالم باللغة العربية
    10. ثيم خفيفة للفايرفوكس
    1. أغسطس 2010
    2. مارس 2010
    3. فبراير 2010
    4. يناير 2010
    5. ديسمبر 2009
    6. سبتمبر 2009
    7. أغسطس 2009
    8. يوليو 2009
    9. يونيو 2009
    10. مايو 2009
    11. مارس 2009
    12. فبراير 2009
    13. يناير 2009
    14. ديسمبر 2008
    15. نوفمبر 2008
    16. أكتوبر 2008
    17. سبتمبر 2008
    18. أغسطس 2008
    19. يوليو 2008
    20. يونيو 2008
    • اشترك بآخر الأخبار RSS

      Feeds Counter

      أو

    • الاستبيان

      هل طورت أو ساعدت بتطوير مشروع مفتوح المصدر؟

      مشاهدة النتيجة

      Loading ... Loading ...
    • أوسمة

      Ajax css IDE jQuery php SEO TinyMCE أخبار المدونة أذكار أطر العمل أفكار إدارة المحتوى إدارة محتوى إضافات استبيان الأجاكس الأمان الاختبارات الآلية الكيك برمجة تحديثات تحميل تدوينات رمضان تصميم تطوير تعريب تعلم الكيك وتطوير المواقع بالبيت تكتيك تنظيم الوقت جوائز حديث دروبال دعاية فايرفوكس فرص عمل كتب مسابقات مهمات مواقع نصائح هندسة برمجيات وورد بريس

    حول المدونة

    • جميع الحقوق محفوظة © 2008-2010 مدونة الويب 2.0.
    • يمكنك نقل المحتويات أو اقتباس أي جزء منها ويفضل ذكر المصدر.
    • من الممكن أن تساعدك خريطة الموقع.

    عروض العمل

    • يمكنك أن تناقشني حول عروض العمل للمدونات أو لمواقع الويب 2.0.
    • أيضاً يمكنك استشارتي في وضع التفاصيل لمدونة أو لفكرة مشروع جديد.
    • سيرتي الذاتية على My Linkedin Profile

    تواصل معي

    • خالد الحوراني مطور ويب 2.0
    • دمشق - سوريا
    • تابع أخباري على My Twitter account
    • أو راسلني فوراً