16. Послесловие
Что вы думаете об этой книге? Нашли ли вы паттерны полезными и интересными? Надеюсь, что да. Но я также надеюсь, что осталось некоторое чувство неудовлетворения — вам есть что сказать и что еще предстоит понять. Этот раздел о том, куда двигаться дальше.
Одна вещь, которую вы можете сделать — это попробовать некоторые из этих шаблонов. Чтение книги с шаблонами дает лишь представление о том, какие шаблоны существуют.
Когда я прочитал книгу «Банды четырех», она дала мне представление об их идеях. Однако, чтобы понять, как работают паттерны, мне нужно было попробовать их на практике. После прочтения книги я все еще не совсем понимаю многие аспекты паттернов «Банды четырех», но знаю, что практика и дальнейшее чтение помогут понять их лучше.
Когда вы опробуете шаблоны из этой книги, пожалуйста, сообщите мне о своих находках и впечатлениях. Есть ли в паттернах детали, которые плохо объяснены? Есть ли другие варианты, которые я должен рассмотреть? Пожалуйста, пришлите мне электронное письмо и сообщите об этом, чтобы я мог и дальше распространять эту информацию. (Мой адрес электронной почты — martinfowlercom @ gmail.com.) Addison-Wesley предоставляет веб-сайт http://www.aw.com/cseng/categories/oo.html для этой книги, на котором я предполагаю публиковать дополнительную информацию о паттернах анализа и давать дополнительные объяснения и заметки о том, что я и другие узнали об использовании паттернов.
(прим.пер.: Сайт не работает, да и права находятся у издательства Pearson.)
Одна из самых больших проблем этой книги заключается в том, что в ней очень много пробелов. Я описал паттерны из нескольких областей, но существует множество других областей с паттернами, которые нужно понять. Даже в тех областях, которые описаны, можно найти еще больше паттернов. И описанные мною паттерны неполны; еще многое предстоит узнать о том, как их использовать, какие существуют вариации, какие возникают проблемы с реализацией, как их можно протестировать и как добиться наилучшей производительности.
Эта книга отражает неполный объем моих знаний. Чтобы продвинуться дальше, вам нужно обратиться к растущему объему работ, создаваемых сообществом паттернов. Выходят и другие книги по паттернам, и еще больше книг быстро появятся в ближайшие несколько лет. Хотя пока таких книг по паттернам анализа не так много, я надеюсь, что эта книга послужит стимулом для появления большего количества подобных книг. Во многих отношениях самой большой пользой от этой книги будет то, что она остановит бесконечную череду книг по анализу и проектированию и начнет новую череду книг по паттернам.
Одним из лучших мест для получения информации о шаблонах является всемирная паутина. Домашняя страница Ральфа Джонсона (http://st-www.cs/uiuc.edu/users/patterns/patterns.html) является центральным источником информации по паттернам. Портлендский репозиторий паттернов Уорда Каннингема (http://c2.com/ppr/index.html) также содержит много ценной онлайн информации.
В настоящее время ряд конференций включает в себя доклады и сессии по шаблонам. Однако наиболее специализированной конференцией о них является Pattern Language of Programming (PLoP), которая проводится каждый сентябрь в парке Аллертон в Иллинойсе. Конференция является уникальным событием, прежде всего, по способу представления докладов. Вместо официальной презентации каждый доклад критикуется на писательском семинаре другими авторами. В результате происходит увлекательное обсуждение каждой работы, в ходе которого авторы узнают много нового о том, как другие люди относятся к их работе.
Следующий шаг — написать несколько собственных шаблонов. Это не такой уж пугающий опыт. Я обнаружил, что сообщество разработчиков паттернов открыто для новых идей и стремится поощрять больше людей к написанию паттернов. PLoP — это отличный форум для представления паттернов и первоклассное место, где можно увидеть всю область развития паттернов. Вы также можете публиковать паттерны в сети — Portland Patterns Repository специально создан для этой цели. Я также намерен публиковать чужие аналитические паттерны на веб-сайте этой книги. Очень надеюсь, что будущие издания этой книги будут содержать паттерны других авторов, а моя роль станет скорее редакторской, чем авторской.
Я написал эту книгу, потому что в начале моего профессионального пути, мне хотелось прочитать подобную книгу. И до сих пор хочу. Надеюсь, что эта книга и те, что последуют за ней, означают, что будущие поколения программных проектов не будут начинать с чистых листов бумаги.