Проектирования больше нет


   http://chapurin.kiev.ua/kontrastnaya_dieta/          

Паттерны и ХР


Пример JUnit постоянно наводит меня на размышление о паттернах. Вообще, отношение, существующее между ХР и паттернами, довольно интересно и часто обсуждается. Так, Джошуа Кериевски считает, что ХР отводит паттернам недопустимо маленькую роль. Его аргументация настолько красноречива, что я воздержусь от пересказа. Однако хочу заметить: многим кажется, что использование паттернов противоречит принципам ХР.

Суть в том, что часто паттерны используются чересчур активно. Известна история о программисте, который, прочитав в первый раз книгу Банды Четырех (издана на русском языке в издательстве "Питер" под названием "Паттерны проектирования" - прим. переводчиков), ухитрился использовать 16 паттернов в 32 строчках кода. Помню замечательный вечер, подогретый всего-навсего одним стаканчиком солода, когда мы с Кентом набрасывали статью под названием "Не паттерны проектирования: 23 дешевых трюка", где рассказали о таких вещах, как использование оператора "if" вместо паттерна "стратегия". В каждой шутке есть доля правды. Паттерны нередко используются там, где без них вполне можно было бы обойтись, однако это не делает хуже саму идею. Весь вопрос в том, как вы их используете.

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

Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий