Перейти к основному содержимому

Справочник тем чистого кода

Разработчику Архитектору
Теория данных (раздел 3)

Структуры в коде — Структуры данных; persistence — ORM.

Страница для быстрого поиска: вы видите симптом в коде — открываете тему в энциклопедии. Теория MAPPER; каталог приёмов Фаулера — Методы рефакторинга.


Маршрут по разделу 7.10

ШагСтатьяТемы
1Культура написанияИмена, стиль, комментарии, стандарты
2Цикломатическая сложностьВетвления, длина методов
3MAPPERМодель и предметная область
4Модель и примитивыАнемичность, value objects
5Изменяемостьconst, побочные эффекты
5aДекларативный код"Что" и "как", async
6Условия и nullFail fast, if, Optional
7СвязанностьSingleton, god object
8YAGNI и долгОбъём кода, техдолг
9ТестыКачество assert
10Исключенияtry/catch
11Итоги, Чек-листЗакрепление

Темы и статьи

ТемаСтатьяСмежные материалы
Запахи, рефакторингМетоды рефакторинга программного кода, Культура написания и поддержки кодаЛегаси
MAPPER, биекцияMAPPER — модель кода и предметная областьDDD 114
Анемичные модели, DTOАнемичные модели и примитивная одержимостьООП
Примитивы, value objectsАнемичные модели и примитивная одержимость, Примитивы, value objects и маленькие типыФаулер: Replace Data Value with Object
ИзменяемостьИзменяемость, побочные эффекты и неизменяемые данныеПараллелизм
ДекларативностьДекларативный код — что и какAsync
Имена, стандарты, комментарииКультура написания и поддержки кода614 однострочники
Сложность, DRY, feature flagsЦикломатическая сложность и читаемость кода, YAGNI, быстрый провал и техдолг в кодеWhite-box
Fail fast, if, nullУсловия, null и явные контрактыМетоды рефакторинга программного кода
Связанность, глобалы, иерархииСвязанность, глобалы и запахи модульности7-12/2
YAGNI, оптимизация, техдолгYAGNI, быстрый провал и техдолг в коде4-06/1
Тестовый кодТесты как часть культуры кода7-05
ИсключенияИсключения и обработка ошибок в читаемом коде8-03
Безопасность ввода8-03

Симптом → куда идти

Вы видите в кодеЭнциклопедия
string для email, денег, датАнемичные модели и примитивная одержимость, Примитивы, value objects и маленькие типы
Сервис на 500 строк, сущность пустаяАнемичные модели и примитивная одержимость
if по типу / коду статусаУсловия, null и явные контракты
?. и null повсюдуУсловия, null и явные контракты
Utils.*, static mutable stateСвязанность, глобалы и запахи модульности
Один баг — правки в 8 файлахСвязанность, глобалы и запахи модульности, 7-12/2
Закомментированный кодКультура написания и поддержки кода, YAGNI, быстрый провал и техдолг в коде
assertTrue(x)Тесты как часть культуры кода
Пустой catchИсключения и обработка ошибок в читаемом коде
Фича + рефакторинг в одном PRYAGNI, быстрый провал и техдолг в коде, 7-11/3
Пирамида .then / callbackДекларативный код — что и как
Где правило X?Utils / Manager

Фаулер и практики раздела

Каталог ФаулераСтатьи 7.10
ФокусИменованные приёмы рефакторингаЗапахи, модель домена, процесс ревью
В энциклопедииМетоды рефакторинга программного кодаэтот раздел

На ревью: запах из Методы рефакторинга программного кода → приём Фаулера → проверка по MAPPER.