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

Вообще, надо понимать что книга была написана в 1999 году, по этому ссылки на какие-то исследования потеряли свою актуальность, как и на библиография. Какие-то методики еще не были распространены, а каких-то еще не было вовсе. Примерно по той же причине часть шаблонов или приемов, которые описывает автор, сейчас кажутся наивными, что ли. Ну кто не знает о том, как надо именовать переменные?! Или о том, как правильно их переименовывать, надо просто выбрать соответствующий пункт в меню IDE и всё готово! И не надо ничего перекомпилировать, следить за теми местами, где упадет и поправлять… Инструменты уже значительно шагнули вперед и писать код стало значительно удобнее.
Перевод местами бывает слишком академичным, что ли. Все эти “каркасы”, вместо фреймворка, например. У меня книга 2022 года, но скорее всего это репринт какой-то более старой версии перевода. Сейчас “фреймворк” - это уже устоявшийся термин и никого им не удивить. С другой стороны, это не единственное издание, в котором встречается тот же самый “каркас”. Просто надо привыкнуть.
Что в этой книге, что в книге “Пять строк кода”, есть такой прием, как разделение запроса и модификатора. Видимо, я вообще не обращаю на это внимание. Скорее всего это по тому, что сильно не беспокоюсь о побочных эффектах, а должен. Смысл сводится к тому, что чистых функций должно быть как можно больше. И ведь это здравая мысль, которую надо не забывать практиковать.
Автор так же рассуждает о том, какой объем тестов можно считать достаточным. Написание большое количество тестов он считает контрпродуктивным, что разумно. Осталось только определиться, что мы считаем за большое. В очередной раз прочитал байку о том, что профилирование должно быть первым этапом любой оптимизации… А ведь эти темы до сих пор актуальны.
В процессе чтения встречал какие-то приемы, которые уже давно применял сам, до каких-то дошел недавно, а какие-то примы никогда не использовал. И скорее всего, я их не использовал по той простой причине, что мои знания Java еще не настолько хороши, что бы я задумывался о описываемых проблемах. Другими словами, мне до этих проблем предстоит дожить. Что-то вроде вождения автомобиля, когда ты только начинаешь - твое зрение сконцентрировано на дороге перед машиной, со временем ты начинаешь видеть больше и дальше, а спустя какое-то значительное время ты уже разглядываешь людей на тротуаре :)
Но, некоторые новые приемы мне прямо очень понравились. Например, как избавиться от switch. Причем, в книге очень хорошо расписан весь алгоритм действия: - вначале распознаем проблему или, как говорит автор, запах кода. Это расписано в мотивационной части описания паттерна. Вторым этапом реализуем “технику”, которая так же подробно расписана. Что-то вроде “создайте новый класс для кода типа, модифицируйте реализацию, выполните компиляцию и тестрование…” и все такое. Всё описано очень подробно и доступно. А короткие примеры на языке Java, которые идут после технической части, помогают с деталями. В следующих изданиях Фаулер уже использовал JavaScript.
Очень понравилось заключение. Фактически, это должно было быть началом. Что бы человек, который взял книгу в руки, понимал что список методов - это всего лишь инструмент. Как ноты для композитора, одного их знания не достаточно для того, что бы создать мелодию. Так и для рефакторинга, знания самих приемов - не достаточно. Остальное лучше прочитать в книге самому. Причем, я уже давно пишу код и все равно открыл для себя что-то новое. Да и даже если в книге не нашел бы ничего нового, то лишний раз мотивировал бы себя к написаю более компактного и чистого кода. А уж для тех, кто только начинает путь разработчика, так тут будет куча всего полезного.
Что касается качества издания, то это типичное издание “Диалектики”, с твердым переплетом, плотной бумагой, хорошо проклеенным корешком и прекрасной полиграфией. В общем, книга хороша!
Автор(ы):
- Martin Fowler
- Kent Beck
- John Brant
- William Opdyke
- Don Roberts
Год издания: 2022
Количество страниц: 448
Оценка: 5/5
Издатель: Диалектика
Ссылка на страницу книги на сайте издательства: –//–
Оригинальное название: Refactoring: Improving the Design of Existing Code
Год издания оригинала: 1999