Справочник тем чистого кода
НЕ ОБЯЗАТЕЛЬНО
Разработчику
Архитектору
Страница для быстрого поиска: вы видите симптом в коде — открываете тему в энциклопедии. Теория 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 | Итоги, Чек-лист | Закрепление |
Темы и статьи
| Тема | Статья | Смежные материалы |
|---|
| Запахи, рефакторинг | 612, 1 | Легаси |
| MAPPER, биекция | 5 | DDD 114 |
| Анемичные модели, DTO | 6 | ООП |
| Примитивы, value objects | 6, 616 | Фаулер: Replace Data Value with Object |
| Изменяемость | 7 | Параллелизм |
| Декларативность | 14 | Async |
| Имена, стандарты, комментарии | 1 | 614 однострочники |
| Сложность, DRY, feature flags | 2, 10 | White-box |
| Fail fast, if, null | 8 | 612 |
| Связанность, глобалы, иерархии | 9 | 7-12/2 |
| YAGNI, оптимизация, техдолг | 10 | 4-06/1 |
| Тестовый код | 11 | 7-05 |
| Исключения | 12 | 8-03 |
| Безопасность ввода | 8-03 | — |
Симптом → куда идти
| Вы видите в коде | Энциклопедия |
|---|
string для email, денег, дат | 6, 616 |
| Сервис на 500 строк, сущность пустая | 6 |
if по типу / коду статуса | 8 |
?. и null повсюду | 8 |
Utils.*, static mutable state | 9 |
| Один баг — правки в 8 файлах | 9, 7-12/2 |
| Закомментированный код | 1, 10 |
assertTrue(x) | 11 |
Пустой catch | 12 |
| Фича + рефакторинг в одном PR | 10, 7-11/3 |
Пирамида .then / callback | 14 |
| Где правило X? | Utils / Manager |
Фаулер и практики раздела
| Каталог Фаулера | Статьи 7.10 |
|---|
| Фокус | Именованные приёмы рефакторинга | Запахи, модель домена, процесс ревью |
| В энциклопедии | 612 | этот раздел |
На ревью: запах из 612 → приём Фаулера → проверка по MAPPER.
См. также
Другие статьи этого же раздела в боковом меню (как на странице "О разделе").📄️Культура написания и поддержки кода
Именование, форматирование, комментарии, документация в коде и базовые принципы читаемости — практики, которые команда договаривается соблюдать каждый день.
📄️Цикломатическая сложность и читаемость кода
Цикломатическая сложность — одна из наиболее устойчиво применяемых метрик статического анализа программного кода, призванная количественно оценивать логическую структуру исполняемого модуля.
📄️MAPPER — модель кода и предметная область
Правило MAPPER (Model Abstract Partial Programmable Explaining Reality) — как сопоставлять реальность и код один к одному.
📄️Анемичные модели и примитивная одержимость
Богатые объекты предметной области, value objects вместо string/int и антипаттерны DTO-оргии.
📄️Изменяемость, побочные эффекты и неизменяемые данные
const, иммутабельность, ленивая инициализация и побочные эффекты в читаемом коде.
📄️Декларативный код — что и как
Разделение «что» и «как», итерации, магические числа, callback hell и явные ошибки.
📄️Условия, null и явные контракты
Меньше if и switch, отказ от null, быстрый провал и полиморфизм вместо флагов.
📄️Связанность, глобалы и запахи модульности
Singleton, god object, shotgun surgery, feature envy и глобальное состояние — симптомы и приёмы рефакторинга.
📄️YAGNI, быстрый провал и техдолг в коде
Мёртвый код, лишние абстракции, отключённые предупреждения и отложенный рефакторинг.
📄️Тесты как часть культуры кода
Приватные методы, flaky-тесты, assertTrue, моки и данные — качество тестового кода и связь с разделом тестирования.
📄️Исключения и обработка ошибок в читаемом коде
Пустые catch, исключения как goto, узкие try и сообщения для пользователя.
📄️Итоги
Краткие итоги раздела "Культура кода".
Ещё 1 статья в разделе