Распределенные системы. Паттерны проектирования - страница 8

стр.

Глава 1. Введение

Паттерны в объектно-ориентированном программировании

Если появление книг Кнута стало важной вехой в теории ком-пьютерного  программирования, то  алгоритмы  —  ключевой  составляющей  его  развития.  Однако  по  мере  роста  сложности  компьютерных программ и увеличения численного состава раз-

рабатывающих их команд с единиц до сотен и тысяч стало ясно,  что языков процедурного программирования и алгоритмов уже  недостаточно  для  решения  насущных  задач.  Эти  изменения  привели  к  появлению  и  развитию  объектно-ориентированных  языков  программирования, которые  уравняли  в  правах  с  алго-ритмами данные, повторное использование и расширяемость. В  ответ  на  эти  изменения  в  компьютерном программирова-нии  изменениям  подверглись  также  паттерны  и  практики  программирования.  В  начале  и  середине  1990-х  годов  про-изошел  взрывной  рост  количества  книг  об  объектно-ориен-тированном  программировании.  Наиболее  известна  из  них  книга «банды четырех» «Приемы объектно-ориентированного  проектирования»> 1 .

«Паттерны проектирования» привнесли в работу программи-стов инфраструктуру и общий язык. В этой книге описывается  набор интерфейсных паттернов, которые можно использовать  в различных контекстах. Благодаря развитию объектно-ориен-

тированного программирования в целом и интерфейсов в част-ности  появилась  возможность  реализовать  такие  паттерны  в  виде  повторно  используемых  библиотек.  Эти  библиотеки  можно написать единожды и затем многократно использовать,  экономя тем самым время и повышая надежность. Глава 1. Введение 23

Расцвет программного обеспечения с открытым исходным кодом

Делиться  исходным  кодом  с  другими  разработчиками было  принято со времен появления вычислительной техники. Фор-мальные  организации  в  поддержку  свободного  программно-го  обеспечения  существовали  с  середины  1980-х.  Но  именно 

в  конце  1990-х  —  начале  2000-х  резко  возросло  количество  разработчиков и потребителей программного обеспечения с от-крытым исходным кодом. Хотя движение open source лишь от-носительно  связано  с  разработкой  паттернов  проектирования 

распределенных систем, его заслуга состоит в том, что именно  сообщества open source показали миру: создание программного  обеспечения  в  целом  и  распределенных  систем  в  частности  —  труд коллективный.

Здесь  важно  отметить,  что  все  технологии  контейнеров,  ле-жащие  в  основе  паттернов  проектирования  из  этой  книги,  разрабатывались  и  выпускались  именно  как  программное  обеспечение с открытым исходным кодом. Ценность паттер-

нов  для  документирования  и  усовершенствования  практик  разработки распределенных программных систем становится  наиболее  очевидной  именно  с  точки  зрения  коллективной  разработки.

MEAN> 1 ) есть свои правила установки. Но когда я говорю о паттернах, я имею в виду обобщенные схемы организа-ции распределенных систем, не зависящие от конкретных технологий или приложений.

24 Глава 1. Введение

Цель паттерна — предоставить общие предложения по ар-хитектуре системы, задать ее ориентировочную структуру. Надеюсь, что эти паттерны направят ход ваших мыслей в верную сторону и окажутся применимы в широком спек-

тре приложений и программных сред.

Ценность паттернов, практик и компонентов

Прежде  чем  тратить  ценное  время  на  чтение  книги  о  набо-ре  паттернов,  которые,  с  моих  слов,  усовершенствуют ваши  подходы  к  работе,  научат  вас  новым  приемам  разработки  и — давайте посмотрим правде в глаза — изменят вашу жизнь,  имеет смысл спросить: «А зачем?» Что такого есть в паттернах  и методиках разработки, что может поменять подход к проек-

тированию и компоновке программного обеспечения? В этом  разделе я объясню, почему считаю их важными. Надеюсь, мои  доводы убедят вас прочесть книгу полностью. Стоя на плечах гигантов> 1

Начнем с того, что паттерны проектирования распределенных  систем позволяют, образно говоря, стоять на плечах гигантов.  Задачи, которые мы решаем, или системы, которые мы создаем,  нечасто становятся действительно уникальными. В конечном  итоге собранные воедино компоненты и общая бизнес-модель,  которую  позволяет  организовать  разрабатываемое  программ-ное  обеспечение,  являются  чем-то  новым.  Но  то,  как  система  построена, и те проблемы, с которыми она сталкивается в сво-ем  стремлении  быть  надежной  и  масштабируемой,  отнюдь  не  Глава 1. Введение