This version of Vestibule is read only. It represents an archive of the community effort to produce content for Ruby Manor 4.

A Rails Criticism

updated over 7 years ago; latest suggestion over 7 years ago

A deep insight on why Ruby on Rails has revolutionized web development.

This talk will focus its attention on the Rails "Golden Path", the reasons to its success, the most common problems, and how its API can be improved.

We will learn to benefit from a tool as powerful as it is dangerous, how to mitigate architectural, design and testability implications for your applications and how to improve the quality of your code.


  • The proposal author responds over 7 years ago

    My idea is to expose how the Rails API are impacting the way we build applications. Specifically, the mixup of domain models and persistance, lack of a "real" view layer (ActionView only uses templates and not view objects), callbacks.

    In general, Rails encourage certain OOP/SOLID violations, like SRP for controllers, Demeter's Law while navigating AR associations, Encapsulation for AR models which are exposing their state via public accessors (and the related Tell Don't Ask problems), AV helpers who are mixing up functional paradigm.

    All these things are causing problems for maintaing medium to large projects (it's no just about legacy, as Kerry suggested), problems to jump into a newer major Rails release, or to test in isolation (AR and AC aren't unit tests, because they involve SQL or HTTP interactions).

  • D12fc99faf2e85ed38c254fb7e14b332 Kerry Buckley suggests over 7 years ago

    This sounds like it shares some common ground with Legacy Rails Apps: A Collection of Antipatterns and Sustainable productivity: Rails vs OOP. I think there's probably only room for one "how to do Rails better" talk – any possibility of combining the best parts of each?

  • Acd62030df551952268e84c8fff26a5b James Adam suggests over 7 years ago

    As it stands, this proposal is a bit too vague - everyone will be imagining their own ideas about the "successful" and "problematic" aspects.

    I'd find it really useful if you could outline a couple of examples of what you mean by "reasons to its success", and at least a couple of the specific "problems" you're going to engage with.

    There could definitely be a great talk here, but we need to figure out how to differentiate the proposal from other "how to work better with Rails" talks. What do you think?