Ehsan Valinouri
دوشنبه 30 مهر 1386, 12:29 عصر
سلام دوستان.
این تاپیک رو برای آشنایی بیشتر با فریم ورک جدیدی که برای توسعه وب ایجاد شده زدم.خود من امروز باهاش آشنا شدم.هر اطلاعاتی که داشته باشم هم میزارم اینجا.البته با اطلاع از قوانین فروم اول Search کردم و دیدم 3 تا موضوع مرتبط با Ruby on Rails وجود داره با این تفاوت که در تالارهای دیگه ی برنامه نویس مطرح شده بود بنابرین لازم دیدم با توجه به اینکه Ruby on Rails به این تالار بیشتر مربوط میشه این تاپیک را ایجاد کردم.
Ruby on Rails چیست؟
اگر یادتان باشد، زبان PHP که حدوداً سال 1997 به وجود آمد، تقریباً پنج سال بعد توانست خود را نشان دهد و برنامهنویسان زیادی را به خود جلب کند. به نظر میآید چنین اتفاقی برای RoR یا Roby on Rails نیز خواهد افتاد و تا مدتی دیگر تعداد برنامهنویسان این فریمورک به سرعت زیاد، خواهد شد.
RoR تقریباً سه سال پیش از پروژهای به نام Basecamp که برای مدیریت پروژههای طراحی وب بود، اقتباس شد.RoR در واقع فریمورکی رایگان برای برنامههای تحت وب است که با هدف سرعت بخشیدن و آسانترشدن کدها به وجود آمد. زبان اصلی این فریمورک، Ruby است که تقریباً هفده سال قبل در ژاپن تولید شده بود ولی تا قبل از Rails قدرت زیادی نداشت.
http://shabakeh-mag.com/data/gallery/s80_note07.jpg
الگوی طراحی برنامههای این فریمورک نیز MVC یا Model View Controller است. (شکل1)
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
قطعه کد زیر نمونهای از کدهای RoR را نشان میدهد که عبارت Hello World را نمایش میدهند:
http://shabakeh-mag.com/data/gallery/s80_note06.jpg
منبع: ماهنامه شبکه
برای اطلاعات بیشتر به لینکهای زیر برین:
http://www.rubyonrails.org/
http://barnamenevis.org/forum/showthread.php?t=81678&highlight=ruby
http://barnamenevis.org/forum/showthread.php?t=81892&highlight=ruby
http://barnamenevis.org/forum/showthread.php?t=82129&highlight=ruby
این تاپیک رو برای آشنایی بیشتر با فریم ورک جدیدی که برای توسعه وب ایجاد شده زدم.خود من امروز باهاش آشنا شدم.هر اطلاعاتی که داشته باشم هم میزارم اینجا.البته با اطلاع از قوانین فروم اول Search کردم و دیدم 3 تا موضوع مرتبط با Ruby on Rails وجود داره با این تفاوت که در تالارهای دیگه ی برنامه نویس مطرح شده بود بنابرین لازم دیدم با توجه به اینکه Ruby on Rails به این تالار بیشتر مربوط میشه این تاپیک را ایجاد کردم.
Ruby on Rails چیست؟
اگر یادتان باشد، زبان PHP که حدوداً سال 1997 به وجود آمد، تقریباً پنج سال بعد توانست خود را نشان دهد و برنامهنویسان زیادی را به خود جلب کند. به نظر میآید چنین اتفاقی برای RoR یا Roby on Rails نیز خواهد افتاد و تا مدتی دیگر تعداد برنامهنویسان این فریمورک به سرعت زیاد، خواهد شد.
RoR تقریباً سه سال پیش از پروژهای به نام Basecamp که برای مدیریت پروژههای طراحی وب بود، اقتباس شد.RoR در واقع فریمورکی رایگان برای برنامههای تحت وب است که با هدف سرعت بخشیدن و آسانترشدن کدها به وجود آمد. زبان اصلی این فریمورک، Ruby است که تقریباً هفده سال قبل در ژاپن تولید شده بود ولی تا قبل از Rails قدرت زیادی نداشت.
http://shabakeh-mag.com/data/gallery/s80_note07.jpg
الگوی طراحی برنامههای این فریمورک نیز MVC یا Model View Controller است. (شکل1)
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
قطعه کد زیر نمونهای از کدهای RoR را نشان میدهد که عبارت Hello World را نمایش میدهند:
http://shabakeh-mag.com/data/gallery/s80_note06.jpg
منبع: ماهنامه شبکه
برای اطلاعات بیشتر به لینکهای زیر برین:
http://www.rubyonrails.org/
http://barnamenevis.org/forum/showthread.php?t=81678&highlight=ruby
http://barnamenevis.org/forum/showthread.php?t=81892&highlight=ruby
http://barnamenevis.org/forum/showthread.php?t=82129&highlight=ruby