Блог

Обзор книги “Tidy First?” Kent Beck

Книга доступна по ссылке - https://www.amazon.com/Kent-Beck/e/B000APC0EY/

Часто вы видите книги со знаком вопроса в названии? А про разработку? Думаю что никогда :) Название книги - “Tidy First?”("Прибираемся сначала?”) - очень точно передает её суть. В книге помимо практических советов содержится список вопросов на которые нужно ответить читателю. Задумываться и отвечать каждый день, при работе с кодом.

Это первая книга автора из серии об организации структуры и дизайна кода.

Кенту Бэку кажется снова удалось изобрести колесо! Прошло уже почти четверть века с выпуска первой книжки про рефакторинг. Если вы читали эту книгу, то знаете что она была написана под впечатлением того, как работает с кодом именно Кент Бэк. Идея книги о том насколько маленькие шаги могут быть в рефакторинге, уже явно потерялась, что сейчас только разработчики не называют рефакторингом…

Автор вводит новый термин tyding, приборка [кода] - кажется удачный “мостик” к “Чистому коду” дяди Боба Мартина. Я дума, это хорошая идея - потому, что термин “рефакторинг” перегружен значениями и теперь его нужно объяснять. Что это очень маленькое изменение структуры кода без изменения поведения, и весь процесс конечно же должео происходить при “зеленых” тестах, которые дают вам обратную связь по коду - он всё еще делает то, что мы от него ожидаем. Думаю, со временем, слово “тайдинг” войдёт в профессиональный слэнг разработчиков наравне со словом “рефакторинг”.

Так что же в книге?

Первая части книги содержит 15 приборок, 15 отличных практических советов, применяя которые, вы уже сегодня, сделаете дизайн вашей системы значительно проще. Но нужно ли делать это немедленно?

Во второй части книги описан процесс приборки, когда нужно вычищать код: сначала? после? а может быть совсем потом? или никогда?

Прибирайтесь в коде сначала если:

  • это окупится немедленно, либо в повышении понимания, либо более дешевых изменениях поведения
  • вы знаете что и как очищать

Прибирайтесь в коде после если:

  • ожидание следующего раза для очистки сначала будет более дорогое
  • у вас нет чувства завершенной работы без очистки кода

Прибирайтесь в коде позже если:

  • у вас большая порция очисток без немедленной выигрыша
  • возможно когда-то и будет выигрыш
  • вы можете провести очистку маленькими порциями

Никогда не прибирайтесь коде если:

  • вы никогда потом не будете править этот код
  • вы ничему не научитесь, если вы займетесь улучшением дизайна кода

Почему так? В третьей, теоретической, части книги автор говорит, что чистка кода - это экономическая задача - можно приводить код к прекрасному состоянию очень долго, но если это не даёт возможность зарабатывать больше сегодня, то существует иллюзорная вероятность, что вы сможете заработать на нём завтра. Доллар сегодня стоит больше, чем доллар завтра. Зарабатывать на коде можно только внося необходимые изменения. Именно поэтому, прежде чем делать структурные изменения нужно подумать “можем ли мы сделать такие изменения дешевле, сначала сделав очистку?” Если ответ “да”, то проведите очистку сейчас же, если нет, то отложите до более удачного момента.

Ещё один из важных инсайтов по дизайну кода в том, что ценность кода в том чтобы иметь как можно больше открытых опций, вариантов внесения изменений.

Мой вердикт: однозначно рекомендую, замечательная книга: минимум воды, прекрасный, как обычно, слог автора, практическая, процессная и мотивационные части книги даст вам уверенность в принятии дизайн-решений.

PS: в ходе написания этого поста я несколько раз менял перевод слова tydy/tyding, в итоге остановился на варианте прибраться/прибока. Как вы думаете насколько удачно вышло? может быть выбрать другой перевод? Или, как в случае с рефакторингом лучше оставить тайдинг? Напишите ваши варианты в комментариях.

Published by
Инженерные практики Сергей