Открыть сервис

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 →