December 24, 2008
Older: The 2008 Smörgåsbord
Newer: Move It To The Model and Use Tiny Methods
The Rails Beatitudes
There is a great gist called “Note to Self” which was, I think, originally started by John Barnette (jbarnette on Twitter and GitHub). I am sharing it here as I thought it was pretty interesting. I added links below to more information, where applicable, and renamed it The Rails Beatitudes since each principle starts with Be.
Be Confident
Tests build confidence. Write ‘em. They’ll save your ass, and they’ll let you take a chainsaw to your code without being afraid of unintended consequences.
- RailsTips articles on testing
- Peepcode has multiple screencasts on testing: test first, RSpec basics, mocks and models, and controllers and tools
- Railscasts testing controllers with RSpec
Be Lazy
If it’s happened more than twice, don’t ever do it by hand again.
- Automating problem resolution
- Use capistrano
- Get to know rake and build custom rake tasks
Be Asynchronous
If it can be done outside the request/response cycle, consider queuing it. Mailers, uploads, audit trails, anything with an external system dependency or a lot of IO.
Be Stateful
If there’s a lifecycle, model it as a real state machine. Beware ad hoc flags.
Be Clear
You’ll write it once, but you’ll read it a lot. Code accordingly. Sometimes simplicity takes a bit longer, but it’ll pay off.
Be Consistent
Inconsistent file names, task names, or coding conventions hurt productivity.
Be Timely (but not too timely)
Keep frameworks, plugins, libraries, and tools up-to-date, but think twice before using a production app to play with the bleeding edge.
Be Certain
Don’t speculate, get data. Act on what you know, not what you suspect. Is that code really faster? Do users really want that feature?
Be Persistent
Find the root cause. Keep asking why, even when you’re tired and under the gun. The guesswork patch you write today will be a nightmare tomorrow.
Be Wrong
If it’s not working, change it, no matter how long it took to write. Don’t throw good money after bad. Admit mistakes early and often.
In one of the forks of this, Evan Phoenix added one more be to the list:
Be Aggressive! Be Be Aggressive!
By a cheerleader for yourself AND others on your team. A positive attitude goes a long way in making people productive.
I think these are some great principles for developing in any language, but are particularly well suited for Ruby and Rails. Anyone have additions that are well suited for the list?
1 Comment
Jan 05, 2009
Thanks for sharing!
Sorry, comments are closed for this article to ease the burden of pruning spam.