DHH · 2025-07-12 · source ↗ · whole document (12)
Доктрина Rails: девять принципов
## 4. Монолит и «не распределяй»
> «When you apply that pattern to a team of 20 programmers working on a code base of half a million lines of code, you're an idiot. You just don't need to turn method invocations into network calls. It is the first rule of distributed programming. Do not distribute your programming.» — [2:06:51](https://youtu.be/vagyIcmIGOQ?t=7611)
Basecamp и HEY — по ~100 000 строк Ruby. Basecamp — примерно 420 экранов. HEY при запуске отправляла в браузер 40 килобайт JavaScript; Gmail — 28 мегабайт несжатого. Та же задача.
Разделение фронтенда и бэкенда он называет «одним из великих преступлений против веб-разработки».
## 5. Ни одной парадигмы
Ruby в ядре объектный, но заимствует функциональное: цепочки блоков, неизменяемые строки. Rails — ремикс: он не придумывал ни ActiveRecord, ни MVC.
## 6. Возвышай красивый код
`class Project < ApplicationRecord; belongs_to:account; has_many:participants` — Лекс прочитал это вслух, ничего не меняя. Хайку.
ActiveRecord — «жемчужина короны». Паттерн из книги Фаулера «Patterns of Enterprise Application Architecture» (2001), одной из немногих, которые он читал много раз. Суть: таблицы становятся классами, строки — объектами. Не прячет SQL, а убирает из него утомительное. SQL знать надо — он пережил десятилетие NoSQL и остался.
## 7. Острые ножи
> «Here's a dull butter knife. Cut your damn steak, right? That's a very frustrating experience. You want a sharp knife even though you might be able to cut yourself.» — [2:19:10](https://youtu.be/vagyIcmIGOQ?t=8350)