System Design Space
Граф знанийНастройки

Обновлено: 10 марта 2026 г. в 22:14

Tidy First? (Чистый дизайн) (short summary)

hard

Основной источник

Серия book_cube о книге Tidy First?

5 постов: вводная часть, tidyings, управление изменениями и теория (coupling/cohesion, economics).

Открыть пост 1/5

Tidy First?: A Personal Exercise in Empirical Software Design (Чистый дизайн)

Авторы: Kent Beck
Издательство: O'Reilly Media, 2023
Объём: ~170 страниц

Книга Кента Бека о small structural changes: tidyings, separate tidying и экономике решений через coupling, cohesion и optionality.

Оригинал
Перевод

О чем книга и зачем термин tidying

Кент Бек отделяет структурные изменения от поведенческих: сначала делаем код удобнее для следующего шага, потом меняем функциональность. Для этого он использует термин tidying как подмножество рефакторинга.

Центральная идея: дизайн не как академическая теория, а как рабочий инструмент, снижающий риск и стресс при постоянных изменениях в проде.

Оригинал книги доступен на O'Reilly Learning. Русский перевод (издательство Питер): страница книги.

Поведение системы

Что продукт делает для пользователя сегодня. Изменения видны сразу, но их цена может быть высокой при плохой структуре.

Структура системы

Насколько дёшево и безопасно вносить изменения завтра. Эффект не мгновенный, но он определяет скорость команды на длинной дистанции.

Часть I: Tidyings

Автор предлагает множество маленьких техник, которые сами по себе недорогие, но в сумме резко улучшают прозрачность и скорость последующих задач.

Читаемость

  • Guard clauses и ранний возврат
  • Пояснительные переменные и константы
  • Порядок чтения кода и визуальная группировка

Структура

  • New interface, old implementation
  • Сведение declaration + initialization
  • Extract helper и работа с cohesion order

Гигиена

  • Удаление dead code
  • Нормализация симметрий по всему коду
  • Удаление избыточных комментариев

Часть II: Managing

Вторая часть книги про процесс: когда начинать уборку, как не смешивать её с фичами и как выбирать размер изменений.

  • Отделяйте tidying от изменения поведения (лучше отдельный MR).
  • Планируйте цепочки cleanup-изменений, но останавливайтесь до переусложнения.
  • Выбирайте batch size с учётом стоимости review и риска конфликтов.
  • Поддерживайте ритм: маленькая регулярная уборка лучше редкой генеральной.
  • Если изменения запутались, проще откатить и собрать их заново в правильном порядке.

Часть III: Theory

Structure vs Behavior

Поведение даёт ценность сейчас, структура определяет стоимость и скорость следующих изменений.

Time Value + Optionality

Ранние доходы важнее поздних, но дизайн покупает опцион на будущие изменения.

Coupling и Cohesion

Высокий coupling делает дорогими крупные изменения, а хорошая cohesion уменьшает объём затронутого кода.

Reversible vs Irreversible

Структурные изменения чаще обратимы, продуктовые последствия поведения часто необратимы.

В книге отдельно разбирается мысль, близкая к «равенству Константайна»:cost(software) ~ coupling. Чем выше зацепление, тем дороже крупные изменения.

Практический шаблон применения

До фичи

Сделайте 1-2 tidyings, которые убирают явную боль в точке будущего изменения.

Во время фичи

Держите фокус на поведении, не расширяйте рефакторинг без явной экономической причины.

После релиза

Закройте оставшийся технический хвост небольшим tidy-MR, пока контекст в памяти.

Связанные главы

Где найти книгу

Чтобы отмечать прохождение, включи трекинг в Настройки

System Design Space

© 2026 Александр Поломодов