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

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

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

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

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

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

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

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

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

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

Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.

Пожалуйста, оцените запись

УжасноПлохоТак себеХорошоОтлично (Количество голосов: 1, средняя оценка: 5,00)
Загрузка...

комментариев 8

  1. Kirill:

    Откуда скачивали эту книгу?

  2. Jenyay:

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

  3. Kirill:

    Ясно, спасибо.

  4. Sergey:

    Не встречал еще такую книжечку! Нужно поискать, вроде бы должно быть интересно!

  5. Olga:

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

  6. cler:

    Дамс такую книгу нужно прочесть

  7. 444:

    Автор, вы не читали Фаулера????? Да это же классика, которую обязан знать каждый сознательный программист!

  8. Jenyay:

    Теперь уже Фаулера читал. Но эту книгу читал раньше него.

Leave a comment

Subscribe without commenting