Проектирования больше нет?
Мартин Фаулер, Chief Scientist, ThoughtWorks
Перевод: К.Максимов, А.Максимова, http://maxkir.com/
Original text at martinfowler.com
Тем, кто успел кратко познакомиться с принципами Extreme Programming (ХР), порой кажется, что в этой методологии нет места процессу проектирования программных продуктов. При этом высмеиваются не только "Большое и Подробное Предварительное Проектирование", но и такие техники как UML и гибкие каркасы приложений. Даже значение паттернов либо принижается, либо напрочь отрицается. На самом же деле, в ХР много проектирования, но подается оно по-другому, нежели в обычных устоявшихся процессах разработки ПО. Методология XP оживила эволюционное проектирование новыми техниками, благодаря которым его теперь можно считать вполне жизнеспособной стратегией. Кроме того, в ХР перед проектировщиком ставятся новые трудные задачи, требующие немалого мастерства. Во-первых, это необходимость проектировать максимально простым образом, во-вторых, рефакторинг, и наконец, использование паттернов в эволюционном стиле.
(Эта статья была написана для моего доклада на конференции XP 2000 и опубликована в ее материалах.)
Последнее обновление текста - май 2004 г.- Проектирование предварительное и проектирование эволюционное
- Основополагающие практики XP
- Преимущества простого дизайна
- "Простой дизайн" - что же это за зверь такой?
- Нарушает ли рефакторинг принцип YAGNI?
- Паттерны и ХР
- Наращивание архитектуры
- UML и XP
- О метафоре
- Малыш, хочешь быть архитектором, когда вырастешь?
- Обратимость решений
- Желание проектировать
- Задачи, плохо поддающиеся рефакторингу
- Проектирование это или нет?
- Так что же, проектирования больше нет?
- Благодарности
Методология Extreme Programming (XP) бросила вызов многим устоявшимся представлениям о разработке программного обеспечения. Пожалуй, наиболее противоречивой идеей является отказ от предварительного проектирования в пользу более эволюционного подхода. Для тех, кто всячески чернит ХР, это возврат к разработкам типа "code and fix" ("пишем и правим"). Для приверженцев новой методологии, это отказ от техник проектирования (например, UML), их принципов и паттернов. Незачем беспокоиться о проектировании, считают они. Достаточно внимательно "вслушиваться" в свой код, и проектирование образуется само собой.
Что касается меня, то я нахожусь непосредственно в эпицентре этих споров. Большая часть моей карьеры была посвящена графическим языкам моделирования - UML (Унифицированный язык моделирования) и его предшественникам, а также паттернам. Более того, я писал книги про UML и про паттерны. Раз я теперь принимаю ХР, не значит ли это, что я отрекаюсь от всего, что писал до сих пор?
Не буду испытывать ваше терпение, и заставлять вас ждать, затаив дыхание, ответа на этот драматический вопрос. Краткий ответ - нет. Подробный ответ содержится в оставшейся части этой статьи.