«Чистый дизайн. Практика эмпирического проектирования ПО», Кент Бек

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

«Хороший» код — вообще штука очень неоднозначная. Есть некоторые общепринятые правила и нормы, а дальше начинается система уровня «Легенды и мифы Древней Греции» — каждый верит в свой пантеон убеждений.

Мне всегда доставляло удовольствие эти убеждения изучать и разбирать: в IT работают умные люди, у которых много умных идей, и зачастую убеждения человека на чем-то основаны (кроме «Чистой архитектуры» — это прям вольные фантазии теоретика ПО). С целью разбора таких подходов я и взял почитать книжку Кента Бека — ветерана разработки ПО, приложившего руку к ряду важных вещей в индустрии.

⭐️ О чем книга

Книга представляет собой методичку с концентрированным опытом Бека в области очистки кода. Он приводит примеры «грязи» в коде и рассказывает, как и зачем их удалять в весьма прагматичном стиле.

В книге раскрываются следующие темы: ➡️ 15 «маленьких пушистых» рефакторингов по улучшению кода. ➡️ Как выбрать подходящий момент для очистки кода. ➡️ Взгляд на очистку кода через призму финансов и ценности для бизнеса.

⭐️ 3 идеи из книги 🟡Очистка помогает перенести в код понимание, полученное с трудом. Больше всего времени в разработке занимает не написание кода, а его чтение. В процессе чтения мы накапливаем понимание, поэтому будет весьма выгодно потратить немного времени, чтобы зафиксировать свой труд — перенести это понимание в листинги проекта.

🟡Иногда для проведения хорошей очистки нужно сначала свалить всё в кучу. Есть такой антипаттерн — дробление кода на излишне мелкие части (это еще Мартин в «Чистом коде» пропагандировал, кстати). Так вот, иногда подобные осколки кода нормально порефакторить просто невозможно, потому что понимание в голове не складывается. В таком случае можно просто заново собрать их в одну кучу, понять и переделать нормально.

🟡Программистам платят не только за реализацию текущего поведения, но и за те возможности, которые открываются дальше. Вспомните свою работу: фичи едут «паровозиком», одна за другой, опираясь на предыдущие реализации. Так вот, программный дизайн дает возможность проще и быстрее менять поведение системы в будущем, что ускоряет поставку новых фич.

⭐️ Мои впечатления

Эта книжка (я бы ее скорее методичкой назвал) — маленький, но крайне интересный концентрат взглядов Кента Бека на программный дизайн. При этом автор явно лишен перфекционизма и смотрит на мир шире: например, он аргументированно показывает, что вкладываться в защиту от багов может быть невыгодно с точки зрения как разработки, так и бизнеса.

Несмотря на небольшой объем, книга дает много классных рекомендаций, которые можно применить на практике. Но основной посыл заключается в том, что очистка кода и поддержание его в порядке — это постоянный процесс. Если с рефакторингами обычно всё сложно (впихнуть техдолг между фичами — всегда нетривиальная задача), то очистку можно и нужно делать постоянно.

Считаю эту небольшую книжечку обязательной к прочтению всем инженерам. Затрат мало, профита много.

Все мои обзоры книг доступны по тегу #обзор_книги и в этом посте.

А для тех, кто хочет читать с большей пользой, у меня есть статья с описанием моего процесса чтения и упражнениями.

➖➖➖➖➖➖➖➖➖➖➖ 📝 @ulshinblog 💬 Бэкап канала в Max


В этом посте были ссылки, но мы их удалили по правилам Сетки

«Чистый дизайн | Сетка — социальная сеть от hh.ru «Чистый дизайн | Сетка — социальная сеть от hh.ru