thoughtbot (with a small letter) is one of the leading American consulting firms focused on web development using Ruby on Rails. thoughtbot exploits the business model prevalent in this environment, and earns not only through consulting, but also through its
large contributions to Open Source , active participation in the community (for example, the
Giant Robots podcast Smashing into Other Giant Robots ), educational activities (
workshops ,
mentoring ), domestic products and
literature .
Until now, they have two full books on their account:
The Playbook is an exhaustive guide to the internal routine and thoughtbot labor tricks (free to learn on their website), and
Backbone.js on Rails is an equally comprehensive guide to using the JS framework Backbone along with Ruby on Rails.
An interesting feature of their approach to the publication of books. This is not a static work, written once, printed on paper and outdated over the years, but a product that supports versioning, developed under the influence of readers and accompanied by various electronic buns, including ready-to-use code examples. The “sources” of the book are stored on github, which means that at any time the reader has the opportunity to get the latest release, report a problem, discuss any part of the text, etc.
')
Today they
announced the start of work on a new book entitled “Ruby Science. The reference for writing fantastic Rails applications. Moreover, you can start reading the book and take part in its development now.

People come to Ruby on Rails in search of a framework that will allow you to make truly fast, interesting and supported applications. But over time, any project becomes overgrown with a thick layer of the most diverse code that becomes more and more difficult, more expensive and more painful to maintain.
The authors of the book offer you their view on the nature of such problems, as well as a collection of recipes for their detection, elimination and prevention.
The currently claimed content is a very,
very juicy selection of various best practices that can greatly help you and your team.
An asterisk indicates unwritten chapters. A short preview of the book can be found here .Content
Introduction
Code Smells
- Long method
- Large class
- Feature Envy *
- Case Statement
- High fan-out *
- Shotgun surgery
- Divergent Change *
- Long Parameter List
- Duplicated code
- Uncommunicative Name *
- Parallel Inheritance Hierarchies *
- Comments *
- Mixin *
- Callback *
Solutions
- Replace Conditional with Polymorphism
- Replace conditional with Null Object
- Extract method
- Extract Class *
- Extract Value Object *
- Extract Decorator *
- Extract Partial
- Extract Service Object *
- Introduce Observer *
- Introduce Parameter Object
- Use class as Factory *
- Move method *
- Inline class *
- Inject dependencies *
- Replace mixin with composition *
- Use convention over configuration *
- Introduce Visitor *
Principles
- DRY *
- Single responsibility principle *
- Tell, Don't Ask *
- Law of Demeter *
- Composition over inheritance *
- Open closed principle *
- Dependency inversion principle *
Thoughtbot love to research and documenting your own workflow has been influencing me for a long time, and it started with the use of a couple of their gems and reading Backbone.js on Rails. They are able to provide a dry squeeze from their daily work, allowing the reader not to step on various painful rakes. Therefore, I could not get past this announcement just like that.
I strongly recommend that
all rubists follow this fiction, and indeed thoughtbot activities. By the way, until the end of January a 20% discount will be on the book.