PDA

View Full Version : Ruby on Rails پدیده ای در توسعه نرم افزارهای تحت Web



Hibernate
یک شنبه 09 اردیبهشت 1386, 12:24 عصر
[(http://www.rubyonrails.org) Ruby on Rails یک محیط کاری (Framework) است که طراحی، توسعه و نگهداری نرم افزارهای تحت web را آسان کرده است. rails در طول چندین ماه از یک ابزار ناشناحته تبدیل به یک ابزار شناخته شده جهانی تبدیل شد. این ابزار (Framework) جایزه های مختلفی را برنده شده و مهمتر اینکه به عنوان یکی از ابزارهای طراحی و توسعه Web 2.0 انتخاب شده است به طوریکه شرکتهای چند ملیتی مختلفی، از Rails برای تولید نرم افزارهای تحت Web استفاده میکنند.
چرا؟ به نظر میرسد علتهای مختلفی وجود دارد.
اول اینکه به نظر میرسید تعداد زیادی از توسعه دهنده ها وجود داشته باشند که از ابزارهای موجود برای توسعه نرم افزارهای تحت Web نا امیدند. و به نظر نمیرسید که اهمیت داشته باشد که آنها از Java، PHP و یا .NET استفاده میکنند. و ناگهان Rails متولد شده و کارها بسیار آسان شد.
]ما در مورد توسعه دهندگان واقعی صحبت میکنیم که نویسندگان Site های بزرگ هستند. بنابراین این توسعه دهندگان شروع به توسعه نرم افزارهای خود با [/]Rails] کرده و فهمیدند که آن فقط یک ابزار برای توسعه نرم افزارهای [/]Web[] نیست. برای مثال تمام نرم افزارهای توسعه داده شده با [/]Rails] با استفاده از معماری [/FONT]MVC(Model - View - Controller) پیاده سازی میشود. توسعه گرهای Java مثل Tapestry و Struts از سیستم MVC استفاده میکند اما در Rails بسیار فراتر است:
هنگامیکه شما نرم افزاری را در Rails توسعه میدهید برای هر بخش از کد محلی وجود دارد و همه بخشهای نرم افزار با یک روش استاندارد در رابطه هستند.
برنامه نویسان حرفه ای تست های نرم افزار خود را مینویسند اما در Rails نرم افزارها از واحدهای تست به صورت داخلی پشتیبانی میکنند. همانطور که شما نرم افزار را توسعه میدهید، Rails به صورت خودکار واحدهای تست را برای بخشهای توسعه داده شده ایجاد میکند. محیط کار، عملیات تست را آسان میکنند. نرم افزارهای Rails در محیط Ruby که یک محیط پیشرفته با زبان Object Oriented نوشته میشود. Ruby مختصر و کوتاه و بدون پیچیدگی میباشد. شما میتوانید عقاید خود را به صورت طبیعی و روشن در کدهای Ruby بیان نمایید. و این باعث میشود برنامه هایی تولید شوند که نوشتن آنها آسان بوده و همینطور خواندن آن نیز ماه ها بعد آسان میباشد.
Rails به صورت محدود Ruby را به کار گرفته و به روشهای جدیدی آنرا گسترش می دهد به طوریکه کار را برای برنامه نویس آسان میکند. این باعث میشود برنامه ما کوتا هتر و خوانا تر شود. آن همچنین ما را قادر می سازد که کارهایی مثل ایجاد فایلهای تنظیم (Configuration files) را به صورت کد نویسی در داخل برنامه انجام دهیم. که البته این کارها به صورت طبیعی در خارج از برنامه انجام میگردد. و این باعث میشود دیدن رخدادها بسیار آسان گردد. کدی که در پایین آمده است یک Model Class را نشان میدهد:

class Project < ActiveRecord::Base
belongs_to :portfolio
has_one :project_manager
has_many :milestones
has_many :deliverables, :through => :milestones
validates_presence_of :name, :description
validates_acceptance_of :non_disclosure_agreement
validates_uniqueness_of :short_name
end
Rails بر اساس دو عقیده کلیدی پیاده سازی شده است DRY و قراردادها در مقابل تنظیمات. DRY (Don't Repeat Yourself) یعنی اینکه هر بخش از دانش در یک سیستم باید فقط در یک مکان قرار داده شود. Rails از قدرت Ruby برای قرارگیری در این موقعیت استفاده میکند. شما میگویید که چه چیزی برای گفتن در یک مکان نیاز خواهید داشت - یک مکان اغلب به وسیله قراردادهای MVC پیشنهاد میشود - و سپس در آنجا قرار میگیرید. برای برنامه نویسانی که از محیطهای دیگر برای توسعه نرم افزارهای Web استفاده میکنند، به طوریکه تغییر کوچکی در DB باعث میشود تقریبا نیمی از کدهای نوشته شده دچار تغییرات شوند، این امکانات در Rails همه چیز را آشکار میکند.[/FONT]
قراردادها به جای تنظیمات یعنی اینکه شما میتوانید با کمترین حجم کدنویسی یک نرم افزار را با Rails توسعه دهید برخلاف توسعه گر Java به وسیله فایلهای تنظیم XML. اگر شما نیاز داشته باشید، باطل کردن (override) قراردادها توسط Rails نیز آسان شده است.
]کسانیکه با Rails شروع به کار میکند متوجه چیز دیگری نیز میشوند و آن اینکه Rails یک فن آوری کاملا جدید بوده و بنابراین امکانات جدید توسعه نرم افزارهای تحت Web در آن دیده شده است. همچنین Rails امکان استفاده از فن آوری AJAX و RESTful را به صورت داخلی فراهم میکند. قرار دادن نسخه نهایی روی هاست در اینترنت نیز کار ساده ای بوده و با استفاده از دستوراتی این کار امکان پذیر میباشد.

]یادگیری آسان ]
راحتی کار با Rails یکی از بخشهای اساسی آن به شمار میرود. Rails به طور کامل براساس ارتباط با مشتری و سفارشی کردن نرم افزار بنیان گذاری شده است. هیچگونه ابزار خاص، تنظیمات خاص و کار پر زحمتی وجود ندارد. چیزی که نیاز است تنها یک شخص (یا گروه) به عنوان توسعه دهنده، یک ویرایشگر مناسب و نوشتن کد به زبان Ruby . چیزی که توسعه دهنده انجام میدهد به سرعت منعکس شده و توسط مشتری قابل دیدن میباشد. این امکان به طور ذاتی یک رابطه متقابل میباشد.
]ایجاد کد HTML توسط Rails کار بسیار آسانی است اما روند توسعه با Rails براساس کد نویسی و تولید مستندات نیست. شما هرگز مقدار زیادی مشخصات در پروژه Rails پیدا نمیکنید به جای آن شما گروهی از توسعه دهنده ها و کاربرانی را میبینید که در کنار هم برای رسیدن به هدفشان تلاش میکنند. شما راهکارهایی را خواهید دید که توسط کاربر و توسعه دهنده پیشنهاد و در پیشرفت پروژه نقش بسزایی خواهند داشت. و شما در نهایت نرم افزاری را که در روند توسعه آماده شده است را در حال تحویل به مشتری میبینید. این نرم افزار ممکن است در آن لحظه ظاهر چشمگیری نداشته باشد اما برای تصمیم گیری و اینکه در آینده چه چیزی تحویل مشتری خواهد شد بسیار مناسب است.
]در این روش Rails مشتری را برای همکاری دلگرم کرده و برای ایجاد تغییرات به سرعت اقدام میکند و توسعه دهنده نیز تغییرات را روی پروژه اعمال میکند...



گروه توسعه نرم افزار مهرزاد
http://www.mehrzadsoft.com




منبع : Agile Web Development with Rails by
Dave Thomas
David Heinemeier Hansson

saeed_Z_F
دوشنبه 10 اردیبهشت 1386, 12:21 عصر
سلام
لطفا برای دستیابی به اطلاعات بیشتر منبع معرفی کنید

Hibernate
دوشنبه 10 اردیبهشت 1386, 16:32 عصر
1- http://rubyonrails.org
Ebooks

2- Agile Web Development with Rails- A Pragmatic Guide

3- Beginning Ruby on Rails E-Commerce- From Novice to Professional

4- Ruby for Rails- Ruby Techniques for Rails Developers

5- Ruby.on.Rails.Made.Easy
.....