Pull to refresh

Книга Джошуа Кериевски «Рефакторинг с использованием шаблонов»

Reading time3 min
Views4.2K
Дочитал на днях сабжевую книжку. Вышла она еще в 2008 году (а предыдущее издание и того раньше), но мне она попалась только недавно. По идее, читать ее надо было бы после книги Фаулера «Рефакторинг. Улучшение существующего кода», на которую Кириевски постоянно ссылается, но до Фаулера я пока не добрался, хотя это и не особо затруднило чтение. Вторая книга, которую лучше всего прочитать заранее, это «Приемы объектно-ориентированного проектирования. Паттерны проектирования» банды четырех.

Суть книги «Рефакторинг с использованием шаблонов» состоит в том, что в книге автор собрал 27 довольно сложных рефакторингов, большинство которых предназначены для того, чтобы как можно более безболезненно ввести в архитектуру программы паттерны, описываемые в книге банды четырех. Как пишет в начале Кириевски, часто он начинает программировать без использования паттернов до тех пор пока этот участок кода не надо расширять, тогда он принимается за рефакторинг. Правда, в книге есть еще один рефакторинг, который наоборот избавляет код от использования синглтонов (автор называет болезнь, когда используют синглтоны по любому поводу, синглтонизмом и предлагает открыть общество анонимных синглтоников).

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

По ходу чтения часто замечал, что в книге мне интересны даже не сами рефакторинги, а интересно просто почитать про то, как строят архитектуру программ другие программисты – практически все примеры рефакторингов показываются на коде из реальных проектов. Заодно полезно почитать и про ошибки в проектировании.

При описании рефакторингов Кериевски сначала использует UML-диаграммы, чтобы показать что было и что стало, потом пишет где этот рефакторинг может понадобиться, что он может улучшить, а что ухудшить. После этого описывает основные шаги рефакторинга и показывает эти самые шаги на примере переделки реального кода.

Все примеры, как и у Фаулера, приводятся на языке Java, но он не использует какие-то особенности языка, поэтому язык абсолютно не важен.

Не сказал бы, что книга читается легко, правда, ближе к середине книги у меня чтение заметно ускорилось, уж не знаю с чем это связано. Книга очень странно переведена, причем я даже не знаю со знаком «плюс» или «минус». Дело в том, что многие выражения остались без перевода, в том числе названия рефакторингов. С одной стороны, хорошо, что не надо по переводу ломать себе голову, чтобы догадаться какой именно термин имел в виду автор, а с другой уж названия рефакторингов можно было бы и перевести. Получается, что читаешь такой англо-русский текст. Где-то попадались места, когда термин приводился и по-русски, и по-английски, почему так нельзя было сделать во всей книге не понятно.

В целом, книга любопытная, почитать можно. Судя по всему ее надо рассматривать как продолжение книги Фаулера, но тут я могу ошибаться, потому что, как я уже говорил, в полной мере книгу Фаулера еще не читал (она у меня следующая на очереди).

Кстати, может быть посоветуете еще хорошие книжки по проектированию? И заодно, может быть кто-то уже читал книгу Эффективная работа с унаследованным кодом, стоит за нее браться?
Tags:
Hubs:
+48
Comments26

Articles

Change theme settings