April 11, 2008

Styleguide for Rails Projects

2  comments

Principles

DRY - Don't Repeat yourself. http://www.jensjaeger.com/2008/04/das-dry-prinzip/ (german) http://en.wikipedia.org/wiki/DRY KISS - Keep it Simple Stupid http://www.jensjaeger.com/2008/04/das-kiss-prinzip/ (german) http://en.wikipedia.org/wiki/KISS_principle

General

General Ruby Styleguide http://rubygarden.org/ruby/page/show/RubyStyleGuide General Rails Styleguide: http://wiki.rubyonrails.org/rails/pages/CodingStandards

Language

Everything in the source code must be written in english. Including comments, variable names and function names.

Encoding

All files must be encoded with UTF-8.

Methods

Every method should have a meaningful name. For a procedure name use a strong verb. Example:
Report.print
  For a function name use a description of the return value Example:
Report.publishing_date
  Avoid meaningless or wishy-washy verbs. Descripe everything the method does. Make names of routines as long as necessary. The average length of methods should be from 15 to 20 characters.

Variables

Every variable should have a meaningful name. The most consideration in naming is that the name fully and accurately descripe the entity the variable represents. The average length of a variable should be from 8 to 15 characters. Use shorter name only for iterators in really short scopes. Example:
reports.each do |r|
  r.print
end
  The scope of a variable should be as short as possible. Arrays should have a plural name. Example:
reports = Report.find(:all)
  Everything else should have a singular name. Example:
report = Report.find_by_id(1)

Constants

Naming like variables. There should be no numbers in the sourcecode. Every number should be a constant defined in environment.rb. Example:
PAG_PAGES = 10 #items per page for pagination

Comments

Comment as much as possible. You shouldn't comment WHAT your code does (this would be hurt the DRY-Principle), you should comment WHY your code does something.

Stay DRY

If you are doing something more than once, extract it into a method. This is especially the case when it comes to conditional queries. So instead of writing:
@reports = Report.find(:all, :conditions => ["deleted = ", 1])
you should write a method:
class Report  ["deleted = ", 1])
  end
end

Paranthesis

Use paranthesis with "standard" method calls and no paranthesis for helper-style hash arguments. Example:
Report.find_by_id(1)
#instead of
Report.find_by_id 1
but
ink_to "view", { :action =>; "view" }
#instead of
link_to("view", { :action => "view" })

Acknowledgments

Thanks to Florian Gilcher for the helpful comments.

Tags

coding standards, DRY, KISS, Ruby on Rails, Styleguide


You may also like

Blog url changed to https

I just changed the url of this blog to https://jensjaeger.com. TLS encryption is now the default for all request to this page. It might be possible that some image links on some articles are hard coded http. If you find such an error it would be nice if you leave me comment so i can

Read More

Format date and time in java with prettytime

Prettytime is a nice java library to format a java Date()s in a nice humanized ago format, like: moments ago 2 minutes ago 13 hours ago 7 months ago 2 years ago Prettytime is localized in over 30 languages. It’s super simple to use Add the dependency to your maven pom: org.ocpsoft.prettytime prettytime 3.2.7.Final or

Read More