Portland Pattern Repository
Portland Pattern Repository (Портлендское хранилище шаблонов) — это веб-сайт, созданный в 1995 году, который стал первым в мире вики-сайтом (программным обеспечением, позволяющим пользователям совместно редактировать содержимое страниц). Хранилище посвящено документированию и обсуждению шаблонов проектирования (patterns) в области разработки программного обеспечения, а также смежным темам, включая методологии разработки, архитектуру и философию программирования. Сайт известен не только как пионер вики-технологии, но и как место зарождения многих ключевых идей в сообществе разработчиков, таких как «Экстремальное программирование» (XP) и «Рефакторинг».
История
Предпосылки и создание
Идея создания репозитория для шаблонов проектирования возникла в среде участников «Банды четырёх» (GoF) — авторов книги «Design Patterns: Elements of Reusable Object-Oriented Software» (1994). Однако конкретный проект был инициирован Уордом Каннингемом (Ward Cunningham) и его коллегами. В 1995 году Каннингем, работая в компании «Cunningham & Cunningham» (C2), разработал программное обеспечение, которое назвал WikiWikiWeb (от гавайского «wiki-wiki» — «быстро-быстро»). Первоначально сайт был задуман как инструмент для совместного документирования шаблонов, используемых в объектно-ориентированном программировании.
Развитие и влияние
В 1995—2000 годах Portland Pattern Repository стал центром притяжения для сообщества разработчиков, интересующихся шаблонами, рефакторингом и гибкими методологиями. На сайте активно обсуждались идеи, которые впоследствии легли в основу «Экстремального программирования» (XP) и «Agile-манифеста» (2001). Многие страницы хранилища содержат ранние версии концепций, позже ставших стандартными в индустрии — например, «Тестирование через разработку» (TDD) и «Непрерывная интеграция» (CI).
Технические аспекты
Сайт работал на собственном движке WikiWikiWeb, написанном на языке Perl. Он поддерживал простую разметку (Wiki-разметку), позволявшую создавать гиперссылки на другие страницы путём написания слов с заглавными буквами (CamelCase). Эта особенность стала стандартом для многих ранних вики-систем. Хранилище не имело базы данных в современном понимании — все страницы сохранялись в виде текстовых файлов, что делало его крайне лёгким и быстрым.
Современное состояние
К началу 2020-х годов Portland Pattern Repository сохранился как исторический ресурс, но его активное использование сократилось. Основной причиной стало появление более современных вики-движков (например, MediaWiki, используемой в Википедии) и смещение интереса сообщества к другим платформам (GitHub, Stack Overflow). Тем не менее, сайт остаётся доступным для чтения и редактирования, хотя большая часть его содержимого не обновлялась с середины 2000-х годов. В 2023 году Уорд Каннингем объявил о планах по сохранению архива сайта в неизменном виде.
Содержание и тематика
Шаблоны проектирования
Основной контент хранилища — это описания шаблонов проектирования. Каждый шаблон представлен на отдельной странице, где указаны:
- Название и контекст применения.
- Проблема, которую шаблон решает.
- Решение (структура классов, взаимодействие объектов).
- Примеры кода (часто на Java, Smalltalk, C++).
- Связанные шаблоны и ссылки на обсуждения.
На сайте представлены как классические шаблоны GoF (например, «Одиночка», «Наблюдатель», «Фабричный метод»), так и множество менее известных, предложенных участниками сообщества.
Методологии и практики
Значительная часть страниц посвящена методологиям разработки, в том числе:
- Экстремальное программирование (XP): практики парного программирования, TDD, коротких итераций.
- Рефакторинг: техники улучшения кода без изменения его поведения.
- Agile-принципы: обсуждение идей, позже формализованных в Agile-манифесте.
- Управление проектами: концепции «канбан», «скрам», «бережливое производство» (Lean).
Философия и культура
Хранилище также содержит обсуждения более общих тем, таких как:
- Экономика программирования: стоимость ошибок, ценность рефакторинга.
- Психология разработки: мотивация, командная работа, преодоление сопротивления изменениям.
- Этика и ответственность: влияние программного обеспечения на общество.
Ключевые участники и вклад
Уорд Каннингем
Создатель сайта и движка WikiWikiWeb. Каннингем также известен как соавтор книги «The Wiki Way» (2001) и один из авторов «Экстремального программирования». Его вклад в развитие сообщества разработчиков трудно переоценить — именно он ввёл в обиход термин «рефакторинг» в контексте программирования.
Мартин Фаулер
Британский программист и автор книг по рефакторингу (например, «Refactoring: Improving the Design of Existing Code», 1999). Фаулер активно участвовал в обсуждениях на Portland Pattern Repository, где публиковал ранние версии своих идей. Его работы по рефакторингу и шаблонам корпоративных приложений во многом опирались на материалы хранилища.
Кент Бек
Американский программист, создатель методологии «Экстремальное программирование» (XP). Бек был одним из первых активных участников хранилища, где он публиковал и обсуждал практики XP, такие как парное программирование и TDD. Его книга «Extreme Programming Explained: Embrace Change» (1999) содержит ссылки на обсуждения на Portland Pattern Repository.
Другие участники
Среди других значимых фигур, внёсших вклад в хранилище, можно назвать:
- Ральф Джонсон (соавтор GoF) — обсуждал шаблоны и их применение.
- Джон Влиссидес (автор книг по шаблонам) — публиковал описания шаблонов для корпоративных приложений.
- Брайан Фут — участник обсуждений по рефакторингу и тестированию.
Значение и наследие
Пионер вики-технологии
Portland Pattern Repository стал первым вики-сайтом в истории. Его создание продемонстрировало возможность совместного редактирования контента в реальном времени, что впоследствии привело к появлению таких проектов, как Википедия (2001) и множество других вики-систем. Концепция «вики» была популяризирована именно через этот сайт.
Влияние на разработку ПО
Хранилище сыграло ключевую роль в формировании современной культуры разработки программного обеспечения. Многие идеи, которые сегодня считаются стандартными (рефакторинг, тестирование через разработку, непрерывная интеграция), впервые получили широкое обсуждение и формализацию именно на страницах Portland Pattern Repository. Сайт стал местом, где сообщество разработчиков могло свободно обмениваться опытом и вырабатывать общие подходы.
Архивная ценность
На сегодняшний день Portland Pattern Repository представляет собой ценный исторический архив. Его страницы содержат ранние версии концепций, которые позже были развиты в книгах и статьях. Изучение материалов хранилища позволяет проследить эволюцию идей в области объектно-ориентированного программирования и гибких методологий.
Критика и ограничения
Устаревание контента
Значительная часть материалов хранилища не обновлялась с 2000-х годов. Многие шаблоны и практики, описанные на сайте, устарели или были заменены более современными подходами. Это делает сайт менее полезным для практического применения, но сохраняет его историческую ценность.
Отсутствие модерации
Как и многие ранние вики-сайты, Portland Pattern Repository не имел строгой системы модерации. Это привело к появлению большого количества страниц с неполной, противоречивой или ошибочной информацией. Некоторые обсуждения содержат личные мнения и споры, что снижает объективность контента.
Техническая устарелость
Движок WikiWikiWeb, на котором работает сайт, не поддерживает современные возможности (например, загрузку изображений, сложную разметку, версионирование). Это делает навигацию и редактирование менее удобными по сравнению с современными вики-системами.
Источники
- Cunningham, Ward. «The Wiki Way: Quick Collaboration on the Web». Addison-Wesley, 2001.
- Fowler, Martin. «Refactoring: Improving the Design of Existing Code». Addison-Wesley, 1999.
- Beck, Kent. «Extreme Programming Explained: Embrace Change». Addison-Wesley, 1999.
- Gamma, Erich, et al. «Design Patterns: Elements of Reusable Object-Oriented Software». Addison-Wesley, 1994.
- Leuf, Bo, and Cunningham, Ward. «The Wiki Way: Collaboration and Sharing on the Internet». Addison-Wesley, 2001.
- Официальный сайт Portland Pattern Repository (c2.com).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →