Читать «Рефакторинг с использованием шаблонов» онлайн - страница 5

Джошуа Кериевски

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

— Ральф Джонсон (Ralph Johnson)

Предисловие

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

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

Джошуа Кериевски находится в сердце этого наложения. Впервые я встретил его, когда в Нью-Йорке он организовал имевшие большой успех группы по изучению шаблонов. Эти группы совместно изучали разрастающуюся литературу по шаблонам проектирования. Я быстро выяснил, что у Джошуа непревзойденное понимание шаблонов проектирования, и, слушая его, стал лучше разбираться в предмете. Джошуа раньше усвоил реорганизацию кода и был чрезвычайно полезным рецензентом моей книги. Его работа по шаблонам и экстремальному программированию на первой ХР-конференции — одна из наиболее любимых мною.

Итак, если кто и подходит для того, чтобы написать о взаимодействии шаблонов и рефакторинга, так это Джошуа. Эту область я немного исследовал в книге Refactoring, но не заходил слишком далеко, поскольку хотел сконцентрироваться на основах рефакторинга. Книга Джошуа значительно расширяет область, обсуждая в мельчайших деталях, как применять большинство наиболее популярных шаблонов, использованных в книге Design Patterns [12], и демонстрируя, что нет никакой нужды в том, чтобы встраивать их в систему заранее — они могут быть использованы по мере роста системы.

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

Я рад возможности представить вам эту книгу. Я долго уговаривал Джошуа ее написать, а затем работал над ней вместе с ним. Я восхищен результатом, и, думаю, вы также будете от него в восторге.

— Мартин Фаулер (Martin Fowler)