Veerasundaravel's Ruby on Rails Weblog

February 23, 2010

Check list for Rails application

Filed under: Ruby On Rails — Tags: , , , , , , , , — Veerasundaravel @ 11:34 am

I just surfed through google for good optimized and general check list for a rails application, here I listed some useful tips which will help you lot.

Code formatting:

1. Indentation – The blank space between a margin and the beginning of an indented line. Use 2 space indent, no tabs.

2. Add required comments and reference links where ever possible.

3. Remove unwanted spaces and new lines. That will reduce the size of file and give better readability.

* Use spaces around operators, after commas, colons and semicolons,
around { and before }.

* No spaces after (, [ and before ], ).

* Use two spaces before statement modifiers (postfix

* Use an empty line before the return value of a method (unless it
only has one line), and an empty line between defs.

* Use empty lines to break up a long method into logical paragraphs.

* Keep lines fewer than 80 characters.

* Avoid trailing whitespace.;name=RubyCodingConvention

General App:

1. Try to use maximum of scaffold to generate resources(model, controllers, views)

2. Never put log files or database.yml file into version control systems(git/svn).

3. Never put temporary files and cache files like files under /tmp folder etc into version control systems(git/svn).

4. Unpack all required gems and freeze rails gems.

5. Session data should be stored in the database.

6. Application must have Unit and Functional tests.

7. Use Rspec for testing. Rspec is available as plugin

8. Controller Methods should be no longer than 5-8 lines of code.

9. Try to limit each controller’s actions to: index, new, create, edit, update, destroy. This is not always possible. However, if you notice that a given controller has more than 10 methods, it probably time to refactor.

10. Use custom configuration files

11. Use constants for repeated strings like APP_DOMAIN = ‘’

12. Keep time in UTC format.

13. Keep your controllers and view files Skinny.

Database and Model:

1. Use indexing for applicable table columns.

2. Store big size of data like images contents and bigger text in separate table.

3. Always don’t select all the columns from your table, when it is not required.

4. Design your table with minimum number of columns.

5. Avoid eager loading of active records.

6. Always use model associations to create associated records etc.

7. Use generic names for model association, for example users in our application is going to use email optoins.

Models: User-UserMessage-Message

so the associations will look below is not a good name
user has_many :messages
message belongs_to :user

instead of above try the association names like below:
user has_many :sent_messages
user has_many :received_messages
message belongs_to :sender
message has_many :receivers

8. Try to include associated table in your find query, if you want to use them.

General – Extended

1. Readme file should be application specific and mentions the functionality and usage information
2. Automated deployment with capistrano wherever possible
3. log all exceptions
4. expose API for all models with admin credentials, this would make it easy to populate the data
5. send a release notes for each deployment

%d bloggers like this: