Professional Documents
Culture Documents
تمثل هذه الوثيقة تصديرا لنص على موقع أعجوبة ،ولكن رغم ذلك تنويه :
ل يتحمل الموقع أية مسئولية قانونية عن صحة أو خطا ما يرد فيها.
يسمح لك نسخ أو توزيع أو تعديل هذا المستند
وفق شروط الرخصة الحرة المحددة
حقوق النسخ محفوظة ©
مشروع وثائق أعجوبة
أفضل توليفة لتقانات تطوير تطبيقات الويب لعام 2010
جدول المحتويات
أفضل_توليفة_لتقانات_الويب_لعام_http://docs.ojuba.org/2010
مشروع وثائق أعجوبة
أفضل توليفة لتقانات تطوير تطبيقات الويب لعام .12010أفضل توليفة لتقانات
تطوير تطبيقات الويب لعام 2010
أياٌم قليلة تفصلنا عن نهاية العام ،فكانت لي هذه الوقفة مع ما تعّلمتططه خلل هططذه السططنة ومططا رغبططت بمشططاركة مططّوري
الويب به.
كان هذا العام طويل فعل بالنسبة لي ،فقد شاركت خلله بتطوير أربعططة تطبيقططات ويططب عامططة يططتراوح عططدد زائريهططا مططن
قمت بتنفيذه هو موقع مقولة غير الربحي.
عشرة آلف إلى ربع مليون زائر .وكان التطبيق الخير الذي ُ
ت بدراسطة طبيعططة التقانطات 1المثاليطة الطتي يجططدر اسطتخدامها .أي أّننطي وعلططى
قم ُ
ول تستغربوا أّنني وفي كل واحد منها ُ
رأس كل مشروع جديدُ ،أعيططد حسططاب المططور مطن الصططفر ،وأبططذل الجهططد والططوقت فططي تقييططم عططدد مطن التقانططات الططتي ُيمكططن
استخدامها و تجربتها ومن ثم اختيار توليفة معّينة لعتمادها في المشروع.
يقولون ،إذا أردت أن تكتب تطبيقا ناجحا فاتبع هذه المراحل :أول -عليك إن توصل التطبيق لحالة العمل -مهما كانت.
2ثانيا -عليك أن تضمن بأن تطبيقك يعمل بشكل جيد وخال من العيوب 3 .ثالثا -عليك أن تضططمن بططأن تطبيقططك يعمططل
بسرعة! 4ولكن هذه السنة باتت الخطوة الثالثة هي الكثر صعوبة ،خاصة مع وجططود الكططثير مططن التطبيقططات الططتي قمططت
بتطويرها في السنوات الماضية طور النتاج الحي ،5وأنني لم أكن مسرورا ل بسهولة التطوير عليها نظرا لتعقيدها ول
بأدائها .لذلك كان تركيزي على بساطة وسرعة التطوير وتفوق الداء.
ومن نافلة القول ،أنني ل ُأعني في بحطثي وتقييمطي للتقانطات سطوى بالبرمجيطات الحطرة والمفتوحطة المصطدر ،ول اعتمطد
البرمجيات المغلقة أو المحتكرة بتاتا .نظرا لتفوق البرمجيات الحرة الكبير عليها.
وقد آليططت أن أكتططب هططذا المقططال باللغطة العربيططة -بالكامطل -حيططث أّننططي اعتطدت فططي الماضططي علططى التططدوين بالنجليزيطة.
ولمعرفتي أنّ العربية قد تبدو صعبة مططع اسططتخدام بعططض المصطططلحات غيططر المشططهورة؛ لططذلك وضططعت قائمططة فططي ذيططل
المقال بالكلمات العربية وما يقابلها من كلمات ومصطلحات إنجليزية.
وأود أن ألفت النتباه بأن الراء في هذه المقالططة تعّبططر عططن رأيططي الشخصططي البحططت ،و ل أقصططد بططه إثططارة النعططرات بشططأن
التقانات و مقابلتها مع بعضها .وقد تكطون التقانطات الطتي لططم أقطم باختيارهطا أفضططل مطن تلططك الطتي اخترتهطا .لطذلك أرجططو
المعذرة من أي شخص قد ل ُيعجبه ما اخترت وما لم اختر.
أفضل_توليفة_لتقانات_الويب_لعام_http://docs.ojuba.org/2010
مشروع وثائق أعجوبة
أفضل توليفة لتقانات تطوير تطبيقات الويب لعام .12010أفضل توليفة لتقانات
تطوير تطبيقات الويب لعام 2010
المهم ،ما استرعى انتباهي ل بي أتش بي هذه المّرة ،هو وصول اللغة إلى مستويات متقّدمة من النضوج )خصوصا بعططد
الصدارة ،(5.3فمن دعططم ممتططاز للبرمجططة الكائنيططة )أو الشططيئية( 8إلططى تططّور واضططح علططى مسططتوى الداء وخاصططة بعططد
إطلق خاصية تخبئة بي أتش بي البديلة )والمسماة اختصارا بط أي بي سي( .9ولم ي ُ
فتني الخذ في عين العتبططار البططاع
جهي إلططى
فر عدد مهول من المكتبات في كططل مططا يخطططر علططى بططال .ليططس هططذا فقططط ،فتططو ّ
والنتشار الواسع لهذه الّلغة وتو ّ
التعامل مع بي أتش بي ،جاء بعد عوائق كأداء واجهتنططي فططي أداء كطُطل مططن جافططا )والجروفططي والجريلططز( و روبططي وريلططز.
فالحق ،وبعد تجربة مريرة ،أن أي منهما ل يصلح أبدا لتطبيقات الويب العامة ،إلّ إذا كان بحوزتك تمويل ضخم يغططّطي
الحتياج إلى توفير خوادم 10ذات مواصفات جّبارة .أي أّنها فشلت في اختبارات الداء بجدارة.
ن معدتي لم تستسغها .بالمناسبة عند تعاملي مططع لم أغفل عن اعتبار لغة بايثون ،11خاصة أن صيتها قد ذاع مؤ ّ
خرا ،ولك ّ
التقانات الجديدة فإّنني ُأصاب عند التعامل مع بعضها بحالة من عسر الهضم )المعططدة والمعططاء( وأقصططد ذلططك حرفيططا
سبني بالضافة طبعا إلى أسباب تقنية أخرى لست بصدد ذكرها هنا.
وعرفت أن بايثون ل ُتنا ِ
المهم ،أنّ الخيار في باكورة المشاريع بداية هذا العطام وقطع علطى بطي أتطش بطي ،ووضطعتها فطي الختبطار العملطي ،وقمطت
بإعادة كتابة بعض التطبيقات من جافا وجروفي وروبي إلى بي أتش بي ،وخّمنوا ماذا كانت النتيجططة؟! فططاقت توقعططاتي
بكثير! استطاعت تطبيقاتي الجديدة العمل مكان القديمة وبكفاءة تصل إلى عشرة أضعاف .تخّيلوا أنه بطدل مطن اسطتئجار
عشرة خوادم لخدمة عططدد معيطن مطن الُمسططتخدمين ،اكتفيططت بواحططد وبططأداء ممتططاز .فططي تلططك اللحظططة أدركططت خطططأ المقولططة
سرعة التطوير .بل على العكس ،فالتطوير بلغة
الشائعة عن أن بطء لغة جافا وحاجتها إلى المزيد من الخوادم يسُد عنها ُ
وار الموقع.
ح باهر ورضا الزبون ورضا ز ّ
بي أتش بي كان أسرع ،والنتيجة نجا ٌ
Java 1
Groovy 2
Grails 3
Ruby on Rails 4
PHP 5
Spaghetti code 6
Visual Basic 7
Object Oriented Programming 8
Alternative PHP Cache - APC 9
Servers 10
Python 11
أفضل_توليفة_لتقانات_الويب_لعام_http://docs.ojuba.org/2010
مشروع وثائق أعجوبة
أفضل توليفة لتقانات تطوير تطبيقات الويب لعام .12010أفضل توليفة لتقانات
تطوير تطبيقات الويب لعام 2010
.1.2إطار الويب
كر في اعتماد إطار تطوير ويب ،1وقمت بمعاينة الكططثير مطن إطططارات
موجة التطبيقات اللحقة كانت أكثر تعقيدا ،فبدأت أف ّ
تطوير الويب على بططي أتططش بططي ،مططن كيك 2إلططى إجينططاتور 3إلططى سططيمفوني 4إلططى أخيلوسط 5وغيرهططا الكططثير ،وكططان مّمططا
استرعى انتباهي واهتمامي من بينها إطار الويب ييي .6وكان أسلوب العمل عليه وفلسفته وطريقة تصميمه القرب إلي.
حتى أّنني شعرت بعد فترة قصيرة من العمل معططه ،كططأّنني أعرفططه منططذ زمططن بعيططد .أل يحططدث ذلططك معكططم عنططدما تقططابلون
شخصا لول مرة وتشعرون بتناغم معه
ول :أن تكون خفيفة على المعدة … أقصد على المعالططج .ل أريططد أن أتعامططل مططع
ققت لي مجموعة من المتطّلبات أ ّ
ييي ح ّ
طبقات وطبقات من النصوص المصدرية والخوارزميات .بل أردتها بسيطة ومباشططرة .ثانيططا :أن تكططون أرضططيتها ضططحلة
علططى خلف أي إطططار ويططب آخطر ،ففططي ييططي يمكننطي الغططوص بسطرعة داخطل وشفافة ،مثل أرضططية شطواطئ المالططديف
نصوصها وخوارزمياتها وفهم كيفية عملها ،وتعديلها إن احتاج المر .ثالثا :أن تعظم من شأن البرمجططة الشططيئية ،وتعططود
هذه المسألة إلى مزاجي ومحّبتي وسرعة تعاملي مع النظمة الشيئية .رابعا :أن تستفيد ِمططن خصططائص بططي أتططش بططي 5
الجديدة وأن ل تكون متوافقططة مطع بطي أتططش بطي .4فطالتوافق مطع بطي أتططش بطي 4يعنطى اضططرار مطبرمجي الطططار إلطى
طت ييي كافة متطّلباتي ،بل زادت عليها بأن جعلت من تجربططة
استخدام التقنيات القديمة وعدم الستفادة من الجديدة .غ ّ
البرمجة ُمتعة فريدة.
قمت كذلك بتقييم استخدام دروبال ) 7نظام إدارة المحتوى ،8ويوصف الن بططأّنه إطططار إدارة المحتططوى .( 9ولكططن لططم
وقد ُ
يتحّمله جهازي الهضمي لكثر من ساعة ،فالنظام بطئٌ جدا جدا )وأعني ذلك( بالضافة إلى التعقيد الشديد في نصوصططه
المصدرية والصعوبة الكبيرة في تطويعه .لذلك آثرت عدم العتماد عليه .وأظن أنه يصلح لمن ليس لديهم خبرة طويلططة
في البرمجة أو من يحتاج إلى إنشاء موقع أساسي بسرعة كبيرة.
ومن الجدير بالذكر أن إطار الويب ييي يتضمن إطار الجافاسكريبت جيه-كويري 10وإطار السي أس أس بلوبرنت .11
أفضل_توليفة_لتقانات_الويب_لعام_http://docs.ojuba.org/2010
مشروع وثائق أعجوبة
أفضل توليفة لتقانات تطوير تطبيقات الويب لعام .12010أفضل توليفة لتقانات
تطوير تطبيقات الويب لعام 2010
بسيط ،وهو جودة اندماجه مع بي أتش بي .لول ذلك لكان خياري هو ريديس ،1والذي يتفّوق على ميم-كاشد في الكططثير
من الوجه ولكّنه ل يتناغم مع بي أتش بي بشكل أصيل كما يفعل ميم-كاشد.
.1.4قواعد البيانات
بالنسبة لقواعد البيانات العلئقية ،2فقد اعتمدت هذه السنة بوست جريس كيو أل ،3والتي تفّوقت بشططكل كططبير علططى مططاي
أس كيو أل .4طبعا ناهيك عن التخّوف من ماي أس كيو أل الذي أحدثه شراء أوراكل لط صططن .بوسططت جريططس هططي قاعططدة
بيانات ناضجة جدا ،إن لم تكن الفضل والنضج من بين قواعد البيانات الحرة والمفتوحة المصططدر .وفيهططا مططن الوثوقيططة
ما يتفّوق على ماي أس كيو أل وفي أبسط الختبارات .ومع أخذ العتبارات الصحيحة عند التصميم واستخدام العلقططات
والفهارس ،فإن أداءها يكافئ ماي أس كيو أل .وبالضافة إلى بوست جريس فإّنني اعتمططدت كططذلك علططى قاعططدة البيانططات
الشيئية 5الجديدة مونغو ،6والتي ساعدتني في تبسيط أحد التطبيقات وتحسين أدائه لغاية ثلثيططن ضططعفا .ل ،هططذا ليططس
ولكن تبقى لقواعد البيانات الشيئية تطبيقططات محطّددة ،ول أرى أنططه يجططدر اسططتخدامها فططي كططل الحططالت. خطأ مطبعيا.
لذلك أبقيت على استخدام الثنتين وبحسب الحاجة.
.1.5خادم الويب
كان ول زال أباتشي ،7وحاولت كثيرا مع إنجن-أكس 8ذي السططمعة الممتططازة إل أن محططاولتي لططم تنجططح ،خاصططة وأنططه ل
يدعم أتش تي أكسس 9ول تعليمات الباتشي التي تعّودنا عليها وتعّلمناها على مدى السططنين .ولكططن يبقططى إنجططن-أكططس
الرض التالية التي وضعت عيني عليها لكتشفها ،فقد استهوتني كثيرا فكرة اعتماده علططى تططدفق البيانططات اللمططتزامن ،10
بدل من فكرة الخيوط والعمليات 11في أباتشي والتي ل أحّبهططا كططثيرا .وخاصططة أيضططا أّننططي عرفططت أن إنجططن-أكططس يعمططل
بوئام مع تقنية أف بيه أم 12في بي أتش بي والتي تّم إطلقها مع بي أتش بي 5.3.3والتي تقّدم أفضل أداء مقارنة بي
فاست سي جي آي 13أو مود_بي أتش بي.14
Redis 1
Relational Database Management System 2
PostgreSQL 3
MySQL 4
NoSQL, Object Oriented DBMS 5
MongoDB 6
Apache 7
Nginx 8
htAccess. 9
Non-blocking I/O 10
Threads and Processes 11
Fast Process Manager - FPM 12
FastCGI 13
mod_php 14
أفضل_توليفة_لتقانات_الويب_لعام_http://docs.ojuba.org/2010
مشروع وثائق أعجوبة
أفضل توليفة لتقانات تطوير تطبيقات الويب لعام .12010أفضل توليفة لتقانات
تطوير تطبيقات الويب لعام 2010
.1.6نظام التشغيل
حر والمفتوح المصدر فيدورا 1جنو\لينكس) !2اسططتخدم إصططدارة 64بططت فقططط( فكفططاءة عمططل
كان ول زال نظام التشغيل ال ُ
هذا النظام ،ووثوقيته ل تقارن ،بالنسبة لي ،مع أي نظام آخر .أضف إلى ذلك معرفتي الطويلة والُمتراكمة فططي كططل شططبر
كنني كل ذلك ،وخصوصا هذا العام إلى الوصططول إلططى مسططتويات قياسططية فططي الداء،
منه وفي كل ُبرغي وصمولة فيه .م ّ
حزم ،فيما عططدا النططزر اليسططير والططذي
ولي بتجريد النظام من كافة التطبيقات والبرامج وال ُ
حيث أنني أقوم بعد التنصيب ال ّ
يلزم لتشغيل البيئة الساسية بسطر الوامر؛ وكل ما عدا ذلك أقوم بقطعططه وحططذفه .حططتى انتهططى بططي الحططال أن يسططتهلك
النظام الخادم أقل من مئة ميغا بايت من الذاكرة ،وأقل من واحد غيغا من القرص الصلب وعدد عمليات عاملطة )نائمطة فطي
معظم الوقت( يقل عن الثلثين .لن ُتصّدقوا العاجيب التي فعلها هذا العداد ،فمن جهطة المططان العططالي ،نتيجطة عططدم وجططود
أي تطبيقات غير مستخدمة )بالضافة طبعا لعدادات جدار النار آي بططي تططابلز ( 3إلططى الداء المططذهل فططي سططاعات الططذروة.
4
حمططل
كر في ملكوت ال ،حتى في قّمططة سططاعات الططذروة ،فإنهططا ل تسططتهلك معططدل ِ
جلّ وقتها تتف ّ
حيث أن خوادمي تقضي ُ
أكثر من واحد!
Fedora 1
GNU/Linux 2
IP Tables Firewall 3
Load Average 4
Real, dedicated 5
Cloud Computing 6
Virtual Operating Systems 7
Intensive I/O 8
KVM 9
أفضل_توليفة_لتقانات_الويب_لعام_http://docs.ojuba.org/2010
مشروع وثائق أعجوبة
أفضل توليفة لتقانات تطوير تطبيقات الويب لعام .12010أفضل توليفة لتقانات
تطوير تطبيقات الويب لعام 2010
نسططخ و تططدميرها بحسططب الطلططب فيمططا يسططمى بقابليططة التوسططع ،1فبططذلك ل يهططم أداء الواحططد منهططا أو احتماليططة سططقوطها،
واجابتي على ذلك ،هو أن التقانات المتوافرة اليوم ليست ُمعَّدة للعمل في هذا الطور .وسيبقى عنق الزجاجططة فططي بعططض
النقاط المفصلية في التطبيق ،كالحاجة إلى مزامنة المعلومات وقواعد البيانات بشكل عام .ولغاية هذا اليوم ،فطإن وجطود
نظام ليس لديه أية نقطة سقوط وحيدة 2هو مسألة فيها تحدي تقني كبير ،إن لم تكن أقرب للمستحيل .ومعلومة أخيرة
كلفة الحالية لعتماد الحوسبة السحابية هي أكثر بكثير من الحوسبة المعتمططدة علططى خططوادم حقيقططة عنططدما
أضيفها أن ال ُ
يتساويان في مستوى الخدمة التي يتم تقديمها .وهذا أيضا بناء على قراءات عملية ل نظرية.
.1.8بيئة التطوير
ضلها من بين كل ما هو متوفر هي استخدام محرر النصوص “فيم” 4من سطر الوامر .أمطا بالنسطبة
بيئة التطوير 3التي أف ّ
للبيئة الرسومية فقد اعتمدت المحّرر جي-إيديت 5ضططمن بيئة إكططس إف سططي إي) 6وليططس غنططوم 7ول كططي دي إي .( 8ولططم
يرق لي أبدا استخدام نت-بينز 9أو إكليبس 10فهططي بطيئة ومملطّطة .وقططد بططدأت هططذه السططنة باسططتخدام نظططام ضططبط وإدارة
النصوص المصدرية جت 11بديل عن إس في أن 12والذي عمل لسنوات طويلة على أحسن مطا ُيطرام ،ولكطن مطا شطّدني إلطى
جت هو السرعة والداء وصغر مساحة التخزين والتخّلص من مجّلدات إس في إن التي كانت موجودة في كل مكان.
خلصة،
.1.9ال ُ
عدم الهتمام بحسن الداء في تطبيقات الويب العامة سيلقي بتطبيقك في الهاوية ،بغض النظر عططن تميططز الخصططائص أو
المحتوى أو الخراج الفني؛ فكل تلك المور مهمة ولكطن أن يكطون تطبيقطك جطاهزا ليطؤدي مهمطامه فطي ظطروف الزدحطام
الشديد ليس مسألة ثانوية -إل ،طبعا إذا كنت هاويا تقوم بتجريب بعض الفكار.-
كانت توليفة هذه السنة بامتياز توليفة البساطة والسهولة والداء العالي.
Scalability 1
Single Point of Failure 2
Development Environment 3
Vim 4
GEdit 5
XFCE 6
GNOME 7
KDE 8
NetBeans 9
Eclipse 10
git 11
subversion -svn 12
أفضل_توليفة_لتقانات_الويب_لعام_http://docs.ojuba.org/2010
مشروع وثائق أعجوبة
أفضل توليفة لتقانات تطوير تطبيقات الويب لعام .12010أفضل توليفة لتقانات
تطوير تطبيقات الويب لعام 2010
.1.10عن الكاتب
كفاح عيسى ،مستشططار فطي المعلوماتيططة ومبرمطج مخضطرم .يعمطل فطي شططركة تقانططات البرمجيطات الحطرة فططي عّمطان وقطام
بتطوير وتنفيذ العديد من التطبيقات التجارية لشركات كبرى.
جميع حقوق النشر والتوزيع ممنوحة ضمن شروط رخصة وقف العامة.
أفضل_توليفة_لتقانات_الويب_لعام_http://docs.ojuba.org/2010
مشروع وثائق أعجوبة
أفضل توليفة لتقانات تطوير تطبيقات الويب لعام .12010أفضل توليفة لتقانات
تطوير تطبيقات الويب لعام 2010
CakePHP كيك
CodeIgniter إجيناتور
Symfony سيمفوني
Akelos أخيلوس
Caching-system نظام إدارة البيانات المخبئية
memcached ميم-كاشد
Redis ريديس
Database Management System قواعد البيانات
Relational Database Management قواعد البيانات العلئقية
System - RDBMS
)استخدمت المصطلح رغم عدم دقته( Object قواعد البيانات الشيئية
.Relational Database. or NoSQL
PostgreSQL بوست جريس كيو أل
MySQL ماي أس كيو أل
MongoDB مونغو
Web server. Http Server خادم الويب
Apache أباتشي
htAccess. أتش تي أكسس
Nginx إنجن-أكس
Threads and processes الخيوط والعمليات
Fast Process Manager - FPM أف بيه أم
FastCGI فاست سي جي آي
mod_php مود_بي أتش بي
Fedora فيدورا
GNU/Linux جنو\لينكس
Applications التطبيقات
Packages حزم
ال ُ
Command line سطر الوامر
Processes عمليات
Firewall جدار النار
IP Tables آي بي تابلز
أفضل_توليفة_لتقانات_الويب_لعام_http://docs.ojuba.org/2010
مشروع وثائق أعجوبة
أفضل توليفة لتقانات تطوير تطبيقات الويب لعام .12010أفضل توليفة لتقانات
تطوير تطبيقات الويب لعام 2010
أفضل_توليفة_لتقانات_الويب_لعام_http://docs.ojuba.org/2010