What's this about?
We'd like to show you one path to write Rails apps that are a joy to understand and change, even as your team and codebase grows. This book describes a complete toolbox that has served us well for all requirements that we have encountered.
But before we do that, we need to let you in on an inconvenient secret: Large applications are large. The optimal implementation of a large application will always be more complex than the optimal representation of a smaller app. We cannot make this go away. What we can do is to organize a codebase in a way that "scales logarithmically". Twice as many models should not mean twice as many problems.
To accomplish this, you don't necessarily need to change the entire way your application is built. You don't necessarily need to introduce revolutionary architectures to your code. You can probably make it with the tools built into Rails, if you use them in a smarter way.
Compare this to sorting algorithms. When a sorting function is too slow, our first thought is not "install a Hadoop cluster". Instead we simply look for an algorithm that scales better. In a similar fashion this book is not about revolutionary design patterns or magic gems that make all your problems go away. Instead we will show how to use discipline, consistency and organization to make your application grow more gently.
Henning Koch is the co-founder and CTO of makandra, a large Ruby on Rails consultancy in Germany. In the rest of world, makandra is mostly known for Rails LTS, a commercially supported fork of Rails.
After increasingly failing to stay out of a management at makandra, Henning secretly moonlights as a developer for Holly.
Thomas spent a decade building and operating things for the Web in multiple languages and frameworks. Thomas is co-founder and CEO of makandra, a Ruby on Rails consultancy from Germany. makandra developed, maintains and operates a plenty of web applications today. At makandra, Thomas was actively involved in multiple large projects over the past years.