فریم ورک Ruby on Rails
اگر یادتان باشد، زبان 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