Справочник тем чистого кода
Структуры в коде — Структуры данных; persistence — ORM.
Страница для быстрого поиска: вы видите симптом в коде — открываете тему в энциклопедии. Теория MAPPER; каталог приёмов Фаулера — Методы рефакторинга.
Маршрут по разделу 7.10
| Шаг | Статья | Темы |
|---|---|---|
| 1 | Культура написания | Имена, стиль, комментарии, стандарты |
| 2 | Цикломатическая сложность | Ветвления, длина методов |
| 3 | MAPPER | Модель и предметная область |
| 4 | Модель и примитивы | Анемичность, value objects |
| 5 | Изменяемость | const, побочные эффекты |
| 5a | Декларативный код | "Что" и "как", async |
| 6 | Условия и null | Fail fast, if, Optional |
| 7 | Связанность | Singleton, god object |
| 8 | YAGNI и долг | Объём кода, техдолг |
| 9 | Тесты | Качество assert |
| 10 | Исключения | try/catch |
| 11 | Итоги, Чек-лист | Закрепление |
Темы и статьи
Симптом → куда идти
| Вы видите в коде | Энциклопедия |
|---|---|
string для email, денег, дат | Анемичные модели и примитивная одержимость, Примитивы, value objects и маленькие типы |
| Сервис на 500 строк, сущность пустая | Анемичные модели и примитивная одержимость |
if по типу / коду статуса | Условия, null и явные контракты |
?. и null повсюду | Условия, null и явные контракты |
Utils.*, static mutable state | Связанность, глобалы и запахи модульности |
| Один баг — правки в 8 файлах | Связанность, глобалы и запахи модульности, 7-12/2 |
| Закомментированный код | Культура написания и поддержки кода, YAGNI, быстрый провал и техдолг в коде |
assertTrue(x) | Тесты как часть культуры кода |
Пустой catch | Исключения и обработка ошибок в читаемом коде |
| Фича + рефакторинг в одном PR | YAGNI, быстрый провал и техдолг в коде, 7-11/3 |
Пирамида .then / callback | Декларативный код — что и как |
| Где правило X? | Utils / Manager |
Фаулер и практики раздела
| Каталог Фаулера | Статьи 7.10 | |
|---|---|---|
| Фокус | Именованные приёмы рефакторинга | Запахи, модель домена, процесс ревью |
| В энциклопедии | Методы рефакторинга программного кода | этот раздел |
На ревью: запах из Методы рефакторинга программного кода → приём Фаулера → проверка по MAPPER.