اگر یادتان باشد، زبان PHP که حدوداً سال ۱۹۹۷ به وجود آمد، تقریباً پنج سال بعد توانست خود را نشان دهد و برنامهنویسان زیادی را به خود جلب کند. به نظر میآید چنین اتفاقی برای RoR یا Roby on Rails نیز در حال رخ دادن است و تا مدتی دیگر تعداد برنامهنویسان این فریمورک به سرعت زیاد، خواهد شد.
RoR تقریباً سه سال پیش از پروژهای به نام Basecamp که برای مدیریت پروژههای طراحی وب بود، اقتباس شد.RoR در واقع فریمورکی رایگان برای برنامههای تحت وب است که با هدف سرعت بخشیدن و آسانترشدن کدها به وجود آمد. زبان اصلی این فریمورک، Ruby است که تقریباً هفده سال قبل در ژاپن تولید شده بود ولی تا قبل از Rails قدرت زیادی نداشت.
الگوی طراحی برنامههای این فریمورک نیز MVC یا Model View Controller است.
RoR بر اساس دو اصل مهم استوار است:
- DRY یا Don’t Repeat Yourself به این معنا که اطلاعات، در یک مکان مشخص و منفرد قرار دارد و نیازی نیست که مثلاً برنامهنویس، نام ستون اطلاعات را مشخص کند و به جای آن Ruby میتواند این اطلاعات را از پایگاه داده استخراج کند.
- CoC یا Convention over Configuration به اینمعنا که فریمورک هوشمند است و برنامهنویس فقط باید جنبههای نامشخص برنامه را مشخص کند.
RoR از دو جزء اصلی تشکیل شده است: اول زبانی به نام Ruby با Syntax بسیار تمیز و کاملاً شیءگرا که شاید بتوان Ruby را ترکیبی از مزایای زبانهای برنامهنویسی دیگر دانست؛ مثلاً سادگی Pythons، عملکرد Perl و ظرافت مفهمومی Smaltalk.
جزء دوم، Rails است؛ فریمورکی با منبع باز برای Ruby جهت طراحی برنامههای تحت وب و برنامههایی که به صورت مستقیم با پایگاه داده در ارتباطند یا به قول معروف Database-Driven هستند.
یکی از مزایای Rails نسبت به فریمورکهای دیگر این است که با آن میتوان با سرعت بیشتر، تقریباً ده برابر، برنامهنویسی کرد. علت این سرعت بالا، شاید در استفاده از زبان Ruby و پشتیبانی از دو اصل مهمی است که قبلاً ذکر شد (CoC و DRY).
در RoR، با خطوط کمتری از کد، میتوانیم برنامه تحت وب خود را بسازیم و طبیعتاً از آنجایی که کدهای ما کم است، برای آن بهراحتی قابل درک خواهد بود و خطای کمتری را در خود خواهد داشت و Debugging آسانتر خواهد شد.
در حالت کلی RoR نسبت به دیگر فریمورکهای برنامهنویسی تحت وب چیز جدیدی ندارد و تنها فرق آن با دیگر فریمورکها، تعاملی است که بین Ruby و Rails در آن وجود دارد. تنها قابلیت RoR این نیست که سریعتر از فریمورکهای دیگر است، بلکه کدهای برنامه در آن بسیار واضحترند و قابلیت تعمیرپذیری بالاتری نیز دارند.
Rails فریمورکی است که از مدل MVC پیروی میکند و به صورت جامع، تمامی لایههای این مدل را پشتیبانی میکند. در صورتی که فریمورکهای دیگر معمولاً تنها قسمتی از این مدل را پشتیبانی میکنند و برنامهنویس را مجبور به هماهنگ کردن اجزای سیستم میکنند.
اضافه بر این، همانطور که قبلاً نیز بحث شد RoR به صورت CoC است و به این ترتیب، نیازی نیست که برنامهنویس به صورت دستی، جداول پایگاه داده را به اشیای برنامه، مرتبط کند چراکه برنامه این عمل را به صورت خودکار انجام خواهد داد.
همچنین در Rails، تهیه برنامهها بر خلاف فریمورکهای دیگر فقط یک مرحله دارد. در Rails کافی است برنامه خود را تغییر داده و نتیجه آن را مستقیماً مشاهده کنید.
یکی دیگر از امتیازات Rails درخصوص تهیه برنامههای تحت وب این است که عملیات CRUD یا Delete ،Create – Retrieve – Update و نمایی از پایگاه داده به صورت خودکار آماده میشود.
Rails، خود از اجزایی تشکیل شده است که با همدیگر در ارتباط نزدیک هستند؛ البته این اجزا میتوانند به صورت مستقل نصب شوند.
برخی از این اجزا عبارتند از:
- ORM :Active Record و ارتباطدهنده مدل (model) به جداول بانک اطلاعاتی
- Action Pack: سازنده View و Controller در معماری MVC
- Prototype سازنده اجزای داخل صفحه وب از جمله ایجکس
- Action Mailer: مسئول دریافت و ارسال ایمیل
- Action Web Service: پشتیبان SOAP ،XML و WSDL