17 June 2010

0 Ruby on Rails as an Agile Framework

        Here we will discuss about the characteristics of Rails framework that make it most suitable for Agile methodologies.

Scaffolding – Most database backed Web applications must provide a user interface to do CRUD operations – Create, Read, Update, and Delete – for nearly every major table in the system. Building these user interfaces should be automated, not repeated. Rails eliminates some of the CRUD operation repetitions through scaffolding. With Rails, you can build a full scaffold application from scratch in just a few simple operations.

Convention over Configuration – A developer needs to specify only the unconventional aspects of the application. For example, if there's a class Sale in the model, the corresponding table in the database is called sales by default. It is only if one deviates from this convention, such as calling the table "products_sold", that one needs to write code regarding these specific deviations from conventions. Also the well formed set of conventions alleviates the need of detailed configuration files providing mapping between objects and tables etc.

Don't Repeat Yourself (DRY) – Information is located in a single, unambiguous place. DRY principle means that settings only need to be specified in one place. Rails ensures that these definitions are visible to all the other web components that need them. For example, the developer does not need to specify database column names in class definitions. Instead, Ruby can retrieve this information from the database.

Portable programming skills – Managers will appreciate the fact that Rails minimizes configuration and encourages standardization. This feature enables programming skills to be more portable.

Rapid feedback loop – In Rails, you get nearly-instant feedback as you code. Hence results of the changes made can be immediately seen, improving the overall client experience. Changes can be made promptly as well.

Easy migration with vendor neutral implementation – Command pattern has been applied in Ruby to enable migrations using the ActiveRecord migration facility. Database schemas can be defined in a database-vendor neutral way.

Meta Programming – The most useful application of dynamic features, such as adding methods to objects, is meta programming. Such features allow developers to create a library that adapts to the environment. An example application of this is swapping proxies to easily change protocols from SOAP to XMLRPC.



0 comments:

Feeds Comments

Please give your valuable comments.