tools (7) programming (5) cluj (4) misc (4) rails (4) productivity (3) startups (3) internet (2) meetup (2) software (2) emberjs (1) hack (1) science (1) zencash (1)

Saturday, June 28, 2014

The inflexion point of programming confidence (or an outline to the benefits of Rails)

I've been working as Rails developer at a startup for more than a year. It was quite a change from working at an outsourcing company, on a mammoth written in Fortran/C/C++, with legacy code coming back from the 80s.

When I started working with Rails it felt like "starting to watch a soap opera in the 7th season." I was reluctant to blog about the new things I was learning because I felt I'm not yet at a point in which I'm capable of insights into this world.

I recently watched a talk by Yehuda Katz and I was glad to see that I've came across most of the things which make the Rails approach to web development so beneficial. The following are taken from the said talk.

Trivial choices
  • naming
  • asset compilation
  • to test or not to test
  • routing HTTP to controllers
  • file structure and architecture

Wins of REST
  • early support for rich HTTP semantics
  • powerful router (request constraints, …)
  • content negotiation (Accept, $getJSON)
  • baked-in MIME types
  • HTTP caching (“Conditional GET”)
  • JSON parameters
  • security (e.g. IP spoofing)

Before Rails (DB architecture choices)
  • primary key: chosen per table
  • table name: chosen per table
  • timestamps: chosen per timestamp
  • polymorphic tables: ad hoc setup
  • foreign keys: chosen per relationship
  • camel/underscore: chosen per field

I consider this as point of inflexion for my confidence as a developer. The last year has also been very professionally rewarding, which in turn inspired me to try out new languages and get more involved with the local community. Overall, I'm glad I had faith in this approach, the accompanying workflow and methodologies which it proposes.

Stay tuned!