duminică, 19 mai 2013

Tools of the trade

I've been asked by a friend what are the "screwdrivers" and the "hammers" in a Ruby and Rails developer toolbelt. Basically, here's the ones which can be found in mine:
  • A fairly decent shell: I happen to work on a Windows box (that's why this is a problem :-)), so I prefer PowerShell. For Ubuntu or Mac, this problem auto-magically disappears... Talking about PowerShell, I strongly recommend you install Posh-Git in order to make sense of the git-related info available in your environment, as well as ANSICON, for getting colored information in your shell
  • The text editor - Sublime Text 2 does everything I ever needed and a bit more than that. Here too, there are a number of packages that would make your life easier (first, you will need the Package Control itself, and then I have installed the CoffeeScript and Git packages)
  • The core stuff - the ruby interpreter (and irb), as well as the rails command line (mostly the console)
  • A GUI for SQLite - I use SQLite Expert Personal Edition
  • The browser - I prefer Google Chrome with its built-in Developer Tools
  • A number of "smaller", but crucially important tools for the normal dev cycle:
    • git for version control (of course, when I said "small" I was kidding...)
    • gem for ruby gems management
    • the bundler for managing application dependencies
    • heroku toolbelt for pushing the app to the cloud
    • and, the ultimate "Swiss army knife", rake for a wide-range of admin commands
A few notes to the above:
  • This is by no means a complete list of the Ruby and Rails applications landscape/ecosystem - I will try to sketch this particular picture in a future post (things like the web/app server stacks, the Ruby interpreters, the available IDEs, the tools used for TDD and BDD, frontend dev options, deployment tools, cloud options for Ruby and Rails developers etc.)
  • I think the "smaller" tools are generally overlooked, but in fact due to poorly understanding them the beginner programmers end up spending countless hours with arcane error messages, when in fact the issues are simple/standard (yep, I've been there many times...). That's why I will have a series of posts for each of these tools, trying to explain the basic lifecycle and the most important commands for each of them (I have already did that for git, and the others will soon follow).

Niciun comentariu:

Trimiteți un comentariu