thoughtbot (с маленькой буквы) — одна из ведущих американских консалтинговых фирм, ориентированных на веб разработку с помощью Ruby on Rails. thoughtbot эксплуатирует распространенную в этой среде бизнес-модель, и зарабатывает не только за счет консалтинга, но и за счет своих больших вкладов в Open Source, активного участия в жизни сообщества (например, подкаст Giant Robots Smashing into Other Giant Robots), образовательной деятельности (воркшопы, менторство), внутренних продуктов и литературы.
На их счету до сегодняшнего дня числилось две полноценных книги: The Playbook — исчерпывающий справочник по внутреннему распорядку и трудовым хитростям thoughtbot (бесплатна для изучения на их сайте), и Backbone.js on Rails — не менее исчерпывающее руководство по использованию JS фреймворка Backbone вместе с Ruby on Rails.
Интересна особенность их подхода к публикации книг. Это не статичный труд, написанный однажды, напечатанный на бумаге и устаревающий с годами, а продукт, поддерживающий версионность, развивающийся под влиянием читателей и сопровождающийся различными электронными плюшками, в том числе и готовым к использованию кодом примеров. «Исходники» книги хранятся на github, а это значит, что в любой момент читатель имеет возможность получить самый свежий релиз, сообщить о проблеме, обсудить какую-либо часть текста и т.п.
Сегодня они объявили о начале работы над новой книгой, под названием «Ruby Science. The reference for writing fantastic Rails applications». Более того, начать чтение книги и принять участие в её развитии можно уже сейчас.
Люди приходят к Ruby on Rails в поисках фреймворка, который позволит делать по-настоящему быстрые, интересные и поддерживаемые приложения. Но с течением времени любой проект обрастает толстым слоями самого разнообразного кода, который становится все сложнее, дороже и болезненнее поддерживать.
Авторы книги предлагают Вам свой взгляд на сущность подобных проблем, а также сборник рецептов по их обнаружению, устранению и предупреждению.
Заявленное на данный момент содержание представляет собой очень, очень сочную подборку разнообразных best practices, способных сильно помочь Вам и Вашей команде. Звездочкой помечены ненаписанные главы. Короткое превью книги можно найти здесь.
Содержание
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 к исследованию и документированию собственного рабочего процесса уже очень давно оказывает на меня влияние, и началось это с использования пары их гемов и прочтения Backbone.js on Rails. Они умеют предоставлять сухую выжимку из своей ежедневной работы, позволяя читателю не наступать на различные болезненные грабли. Поэтому я и не смог пройти мимо этого анонса просто так. Настоятельно рекомендую всем рубистам следить за этим чтивом, да и вообще за деятельностью thoughtbot. К слову, до конца января на книгу будет висеть скидка 20%.
Автор: shebanoff