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.
- 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.