Rails hurts…

Rails itself doesn't do anything to help programmers organize code in large applications.

If you don't do anything as well, you're screwed up - everything gets intertangled and fragile. The development process, previously agile, becomes clunky.

…but we're aware!

Most of us aware of the problem and take actions to resist:

  1. We have empirically figured out that certain features of Rails should be avoided, but we're not sure why are they so harmful
  2. We keep our controllers skinny, although our models often become junk drawers :(
  3. We read about SOLID and design patterns, but it is not clear if they are applicable to Ruby and Rails at all
  4. We look for salvation in OOP. Assuming we don't know it enough, we read books from recognized gurus of the industry, but our resulting solutions appear to be bulky and not as beautiful, as we expected
  5. We introduce additional abstractions, but they result in overhead, and, often, even in more complicated code

The worst is that everyone has a different approach. Therefore, where you expect to see a more or less unified approach, everyone comes up with its own solution.

Rails community is like ancient Babylon – everyone speaks its own language

This contradicts the central idea of engineering - to develop a single optimal solution for every problem, and to stick to it.

What if there is a simple consistent approach which solves the major problems of Rails application growth, and it brings almost no overhead?

Painless Rails approach

I write a book called "Painless Rails", where I describe such an approach. It has some quite interesting characteristics:

This book is here to help you achieve these things:

  1. Identify and fix most harmful flaws in your current Rails application
  2. Establish a solid foundation for your next Rails project
  3. Learn to look beyond code and realize how to organize concepts, not classes and methods

The roots of the Painless Rails approach

The author of the approach described in the book is Kirill Mokevnin - CTO of Hexlet.io - a major online-learning platform for programmers (not only) in Russia.

Their platform is a six years old Rails application with:

Kirill has managed to develop an efficient approach to web development using Rails, so that through the whole life of the project there were only 1-2 active developers.

I learned about that approach three months ago. The most enchanting discovery for me was that you don't have to fight against the framework. Even if you're introducing additional abstractions.

I was so impressed that I decided to share it with those who love Rails but are not satisfied with what it suggests out of the box today.

Table of contents*

Chapter 1: Controversial smoothness of Rails way approach

  1. Masking complexity with callbacks and conditional validations
  2. Mixing internal with external
  3. Ignoring layers in Rails
  4. Mixing Application Logic and Business Logic
  5. The time-bomb effect

Chapter 2: Painless Rails foundation

  1. Shapes
  2. Services
  3. Mutators
  4. Repositories
  5. Domain Models

Chapter 3: Painless Rails frame

  1. Hierarchy of models
  2. The key part of REST
  3. Hierarchy of controllers
  4. Testing
  5. Service Locator

Chapter 4: Painless Rails approach in practice

* The book structure and titles might differ in the final version

Who is this book for?

  1. You know that vanilla Rails is not enough for big projects
  2. You have tried multiple alternaive approaches
  3. You are still not happy with what you get

If all of the above applies to you, then you will not regret buying this book.

Get it now:

The price is $29, but it will go up, once more content is added.
If you buy now, you get all the future updates of course.

Buy the book

This is prerelease, although the book is already doing its job pretty well.

What do I get?

Expected outcomes

This book is going to help you to:

Samples

Meet the author: Ivan Nemytchenko

Still in doubts?