المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : [تعريف] روبي أون ريلز Ruby On Rails



Chakira
11-02-2013, بتوقيت غرينيتش 01:00 AM
السلام عليكم ورحمة الله وبركاتة

حينما تكتب في سيرفر SERVERك و انت داخل مجلد root الامر :

رمز Code:
ls
لعرض الملفات و المجلدات الموجوده قد تجد مجلد يحمل أسم ruby فما هي قصه هذا المجلد و ما هي قصه ruby مع اللينوكس .. ؟

هذا ما يجيب عليه هذا الموضوع فتابع معنا ...

ماهي Ruby On Rails؟

Ruby On Rails وتدعى اختصارا بـ ROR أو Rails, هي عبارة عن منصة عمل Framework مفتوحة المصدر لبرمجة تطبيقات الويب, وهي مكتوبة أساسا بلغة روبي Ruby المبنية وفق نظام Model-View-Controller (MVC). (سنتكلم لاحقا عن ماهي الـ MVC وماهي لغة روبي أساسا). قام بكتابة هذه المنصة الدنماركي David Heinemeier Hansson.
يقول مطوروا Ruby On Rails بأن الهدف الأكثر أهمية لهذه اللغة هو بناء تطبيقات ويب متنوعة بأقل كود code code ممكن. بمعنى آخر أنت تستطيع بناء تطبيقات ويب أكثر تعقيدا بشكل أبسط وأسرع من المعتاد وبعمل برمجي أقل وبالتالي بأخطاء برمجية أقل ومدة تنفيذ أسرع بكثير.

إنتاجية عالية, ووقت تطوير قياسي.

في الواقع هذا يعتبر أحد أهم الفروق بين روبي أون ريلز ولغات برمجة الويب اﻷخرى. فعندما تستطيع أن تنجز تطبيقاً بسيطاً للويب في أيام بدل أسابيع أو تطبيقاً معقداً في أسابيع بدل أشهر فهذا يعني أننا أمام لغة تفتح عصراً جديداً في مجال التطوير للويب.
لو كانت اﻻنتاجية العالية والسرعة في التنفيذ في روبي أون ريلز مصحوبة بإنتاج تطبيقات معقدة الكود code أو صعبة الصيانة والتطوير لما لقيت الريلز هذه الشعبية, لكن في الحقيقة تعتمد الريلز على مبدأ (نظافة) الكود code وحسن ترتيبه وقوته, بمعنى آخر أنت لن تستطيع البرمجة في الريلز إن لم تتبع مقاييس جودة معينة في الكود code الخاص بك.

أيضاً لما كانت الريلز قد حظيت بهذه الشعبية لو كانت محدودة. أي مناسبة للتطبيقات الصغيرة فقط وغير مناسبة للتطبيقات الضخمة. في الواقع ﻻ يوجد شيء ﻻ تستطيع عمله بالروبي أون ريلز. لدرجة أن هذه اللغة* لديها بعض قدرات الذكاء الصناعي Artificial Intelligence بحيث تستطيع كتابة كود code يستطيع هو بدوره كتابة كود code أثناء وقت التنفيذ A code that write code !!!
* ليس دقيقاً وصف الروبي اون ريلز بأنها (لغة), بل هي منصة عمل تعمل على لغة روبي لكن من أجل السهولة سوف أستعمل التعبير (لغة روبي أونريلز) في هذه المقالة.

قد يقول قائل بأنه ﻻ بد أن تكون للغة بهذه المواصفات بعض المساوىء أو المصاعب اﻷخرى. حسناً يمكنك أن تجرب بنفسك وأنصحك بالمقالة التالية لو كان لديك بعض الوقت لبناء تطبيق ويب كامل باستخدام الروبي أونريلز.

http://www.onlamp.com/pub/a/onlamp/2.../20/rails.html (http://www.onlamp.com/pub/a/onlamp/2014/01/20/rails.html)




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

حسناً, كل هذا جميل لكن ماهو سر روبي أون ريلز؟ كيف تستطيع هذه اللغة عمل كل هذا؟

هذه هي مقادير الوصفة التي أكسبت ريلز كل هذه القوة والشعبية:

لغة روبي Ruby:

كما قلنا فإن روبي أون ريلز هي منصة عمل Framework قائمة أساساً على لغة روبي. ولغة روبي هي من كتابة الياباني العبقري يوكيهيرو ماتسوموتو Yukihiro Matsumoto. وقد تم إطلاقها في العام 1995 لكنها لم تلق الشهرة عالميا وكانت شهيرة في اليابان فقط والسبب أن جميع ما يتعلق بها كان مكتوباً باللغة اليابانية فقط! وكانت اللغة بانتظار ذلك الشجاع الذي سيقوم بترجمة وثائق اللغة من اليابانية إلى الانكليزية وجاء ذلك الشجاع بعد بضعة سنوات وتم ***** اللغة بشكل عالمي وكسبت الشهرة بسرعة عالية جداً. إن روبي مصممة بطريقة ذكية جداً بحيث جعلتها أقرب إلى طريقة التفكير البشري في بناء البرامج منها إلى طريقة عمل الكمبيوتر. فأنت إن أردت مثلاً كتابة برنامج لإدارة مدرس مفصلة فكل ما عليك التفكير به هو الـ Objects فتقول نحن لدينا طلاب وصفوف وأساتذة وكتب .. الخ وتقوم بالبناء على أساس الفهم البشري الطبيعي للقضايا دون أن تشغل بالك ووقتك بالتفكير كيف يمكن تحويل كل هذا لعبارات يفهمها الكمبيوتر ويستطيع التعامل معها.
حتى إن اللغة Syntax المستخدم هو أقرب ما يمكن للغة البشرية المحكية, على سبيل المثال لو أردت تكرار عبارة معينة لثلاثة مرات في روبي يكفي أن تكتب: 3.times do something
أما في اللغات الأخرى فعليك استعمال حلقة for وتعريف متحول بمثابة عداد كي يقوم بالعد لعدد من المرات ثم ينهي العد بحسب شرط تقوم بتحديده!!! هذا مثال بسيط وقس على هذا من اﻷمثلة الأكثر تعقيداً.

روبي أون ريلز مبنية وفق نظام MVC أو ما يعرف Model, Viewer, Controller

ماذا يعني هذا؟ ببساطة هذا يعني أنك تقوم ببناء التطبيق وفق طبقات منفصلة Layers أي أن التصميم منفصل تماماً عن الكود code البرمجي وهذان السابقان منفصلان تماماً عن التعامل بشكل مباشر مع قاعدة البيانات.
أي أن تصميمك ﻻ يحتوي على كود code برمجي (كما هو الحال في PHP حيث يكون برنامجك عن مزيح مزعج من الكود code والتصميم في نفس الصفحة!) .. كما أن الكود code البرمجي ﻻ يتعامل بشكل مباشر مع قاعدة البيانات, أي ﻻ داعي هناك لإقحام عبارات الـ SQL أو الـ SQL Queries داخل الكود code البرمجي بشكل مباشر بل هذا من مهمة الـ Model.
إن هذا يعني سهولة التعديل والتطوير المستقبلي لبرنامجك, وسهولة الصيانة أيضاً.

فلسفة Convention over configuration:

لا أدري ما أفضل ترجمة حرفية للعبارة السابقة لكن الترجمة المعنوية لها هي أن ﻻ وجود في روبي أونريلز لملفات إعداد Configuration معقدة. بل تستخدم الريلز بضعة تعابير اصطلاحية كافية لجعلها تفهم كل شيء عن برنامجك بنفسها.
كل شيء في الريلز يعمل كما لك أن تتوقعه دون أية إعدادات مسبقة تسبق عملك الفعلي في البرنامج.

كود code أقل:

تستطيع روبي أونريلز التعامل بشكل أوتوماتيكي مع التفاصيل ذات المستوى المنخفض low level دون حتى أن تخبرها أنت كيف عليها أن تفعل ذلك. هذا يعني أنك ستكتب عدداً أقل من السطور لتنفيذ برنامجك. وإن الكود code اﻷقل يعني وقت تنفيذ أسرع وأخطاء أقل, مما يجعل الكود code أسهل للقراءة والصيانة والفهم.

التوليد التلقائي Generators:

تقدم روبي اون ريلز مجموعة من المولّدات Generators التي تقوم عنك بمهمة توليد كميات كبيرة من الكود code! إن لم تصدق شاهد الفيديو التالي الذي يظهر كيف تستطيع بناء برنامج مدونة blog Blog من الصفر خلال ربع ساعة باستخدام تقنية توليد اﻷكواد:
http://media.rubyonrails.org/video/r...with_sound.mov (http://media.rubyonrails.org/video/rails_take2_with_sound.mov)

كما تستطيع بناء مولدات أكواد خاصة بك!

مواصفات عامة

بعد أن اطّلعنا على بعض المواصفات الخاصة التي تميز الريلز عن غيرها, سنتعرف على بعض المواصفات التي تهيّئها للعمل مع البيئة الخارجية, عن مخدمات الويب وقواعد البيانات التي تستطيع روبي اون ريلز التعامل معها.

مخدّمات الويب Web Servers:

تستطيع الريلز التعامل مع أي ويب سيرفر SERVER يتعامل مع الـ CGI ! إذاً ﻻ تقلق من هذه الناحية, تستطيع اﻻختيار بين مجموعة واسعة من مخدمات الويب لتشغيل الريلز عليها لكن المخدّمين اﻷكثر شيوعاً لتشغيل الريلز هما اﻷباتشي Apache و LightTPD.

قواعد البيانات Databases:

تستطيع الريلز التعامل مع قواعد البيانات التالية:

MySQL
PostgreSQL
SQLite
SQL Server
DB2
Oracle
إذاً كما ترى, مهما كان نظام قواعد البيانات الذي تفضل التعامل معه وتجيده فهو يعمل مع الروبي اون ريلز.

عناوين URLs مفهومة وجميلة:

نعم فإن روبي اونريلز ﻻ تهتم فقط بجمالية الكود code أو مظهر الموقع, بل حتى عناوين الوصلات الخاصة بالموقع, فعلى خلاف الـ PHP أو غيرها التي تنتج وصلات صفحات على غرار:

www.domain.com/show.php?cat=215title=223 (http://www.domain.com/show.php?cat=215title=223)

فإن روبي أونريلز تقدم وصلات مقروءة ومفهومة بحيث تستطيع فهم محتوى الصفحة من مجرد قراءة الوصلة مثلا:
www.domain.com/movies/action/TheRock (http://www.domain.com/movies/action/TheRock)

كما تستطيع بسهولة التحكم بطريقة عرض الوصلات وتغييرها بالشكل الذي ترغب.

جاهزة لبناء تطبيقات Web 2.0:

أيضاً هذه أحد أهم الميزات, إن الويب 2.0 هي الموجة الحالية التي باتت تجتاح مواقع اﻻنترنت المحترمة, لكن للأسف إن تطبيق تقنيات الويب 2.0 لهو أمر على شيء من التعقيد إذ يحتاج إلى كتابة الكثير والكثير من الجافا سكربت المعقدة والتعامل مع ما يعرف بالـ DOM من أجل بناء تطبيقات اﻷجاكس. لكن مع روبي أون ريلز ليس عليك أن تقلق من هذا, تستطيع بسطر واحد تنفيذ تقنيات أجاكس مذهلة يلزمها عشرات بل مئات السطور.

هذه المقالة مجرد مقدمة بسيطة جداً ليست أكثر من رؤوس أقلام … هنالك الكثير والكثير من اﻷمور الجديرة بالحديث عنها لكن من اﻷفضل متابعة القراءة عن لغة العصر الجديد هذه بنفسك عن طريق آﻻف المواقع التي تتحدث عن روبي أون ريلز وسأضع بعض الوصلات الهامة في آخر هذه المقالة.

هذه اللغة تحتاج إلى اهتمام أكبر عربياً, ما يزال المهتمين بها قلائل جداً ﻻ لشيء سوى لأننا اعتدنا -معشر العرب- على الخوف من خوض غمار أي شيء جديد اللهم إﻻ بعد أن يكون قد صار قديماً.

المصادر, ووصلات هامة:

www.rubyonrails.org (http://www.rubyonrails.org)
http://en.wikipedia.org/wiki/Ruby_on_Rails
http://www.onlamp.com/pub/a/onlamp/2..._is_rails.html (http://www.onlamp.com/pub/a/onlamp/2014/10/13/what_is_rails.html)
http://www.onlamp.com/pub/a/onlamp/2.../20/rails.html (http://www.onlamp.com/pub/a/onlamp/2014/01/20/rails.html)
http://en.wikipedia.org/wiki/Ruby_programming_language

B!n http://www.dzbatna.com/images/smilies/cupidarrow.gif




https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-ash4/482113_236967293114455_1193518507_n.png (http://www.dzbatna.com)
©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى (http://www.dzbatna.com)©

استعمل مربع البحث في الاسفل لمزيد من المواضيع


سريع للبحث عن مواضيع في المنتدى