Ruby Science: руководство по созданию качественных приложений на Ruby on Rails от thoughtbot

в 22:29, , рубрики: best practices, patterns, ruby, ruby on rails, метки: , , ,

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 Science: руководство по созданию качественных приложений на Ruby on Rails от thoughtbot

Люди приходят к 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

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js