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

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

Кайл Браун (Kyle Brown) просматривал первый черновик рукописи и проявил отменное понимание вопроса. Кен Шириф (Ken Shirriff) и Джон Тангни Oohn Tangney) дали исчерпывающие содержательные замечания на версии рукописи.

Кен Томасес (Ken Thomases) указал на критическую ошибку в старых версиях описания механики Replace Type Code with Class.

Роберт Хершфилд (Robert Hirshfeld) помог прояснить механику в самых ранних версиях Move Embellishment to Decorator.

Рон Джеффрис (Ron Jeffries) помог мне четко выделить основную тему этой книги, будучи вовлеченным в бесчисленные дискуссии на extremeprogramming@yaho ogroups.com.

Дмитрий Кериевски (Dmitri Kerievsky) выполнил литературную обработку текста введения.

По ходу дела полезные советы мне давали коллеги Гунджан Доши (Gunjan Doshi), Джеф Григ (Jeff Grigg), Каору Хосокава (Kaoru Hosokawa), Дон Хинтон (Don Hinton), Эндрю Сван (Andrew Swan), Эрик Миде (Erik Meade), Крейг Демьянович (Craig Demyanovich), Дэйв Гувер (Dave Hoover), Роб Ми (Rob Мее) и Алекс Чеффи (Alex Chaffee).

Я также благодарен за отзывы коллегам, обсуждавшим методы реорганизации из этой книги на ref actoring@yahoogroups. com.

Я хотел бы поблагодарить тех слушателей Industrial Logic, семинара по шаблонам проектирования The Design Patterns Workshop и семинара по тестированию и реорганизации кода The Testing & Refactoring Workshop, которые дали отзывы на методы реорганизации кода из этой книги. Многие из вас помогли мне понять, что в книгу необходимо добавить, а что убрать из нее. Особая благодарность моему редактору Полу Петралиа (Paul Petralia) и его команде (Лиза Ярковски (Lisa larkowski), Файе Джеммелларо (Faye Gemmellaro), Джон Фуллер (John Fuller), Ким Арни Малкахи (Kim Arney Mulcahy), Криста Мидоубрук (Chrysta Meadowbrooke), Ребекка Райдер (Rebecca Rider) и Ричард Эванс (Richard Evans)). Когда издатели соперничали за публикацию этой книги, Пол отчаянно боролся, чтобы право издать ее досталось Addison-Wesley. Я очень рад, что именно так и произошло. Многие годы я читал великие книги Addison-Wesley, а теперь и я удостоен чести стать членом этой семьи. За время написания книги Пол стал моим другом. Когда он не произносил патетические речи о том, что надо поскорее заканчивать книгу, мы много разговаривали о наших детях, играли в теннис, смеялись и даже иногда выпивали. Спасибо, Пол. Я рад, что ты был моим редактором.

Глава 1

Почему я написал эту книгу

Важная роль шаблонов программного обеспечения состоит в том, что они выражают много полезных конструкторских идей. Следовательно, если вы изучите пакет таких шаблонов, то станете достаточно хорошим разработчиком программного обеспечения, правильно? Я начал себя уважать только тогда, когда выучил и использовал дюжину шаблонов. Они помогли мне проектировать гибкие схемы и разрабатывать надежные и расширяемые программные системы. Однако через пару лет я обнаружил, что мои знания шаблонов и способ их использования зачастую приводили меня к избыточному проектированию (over-engineer) в процессе работы.