нов для документирования и усовершенствования практик разработки распределенных программных систем становится наиболее очевидной именно с точки зрения коллективной разработки.
MEAN
> 1 ) есть свои правила установки. Но когда я говорю о паттернах, я имею в виду обобщенные схемы организа-ции распределенных систем, не зависящие от конкретных технологий или приложений.
24 Глава 1. Введение
Цель паттерна — предоставить общие предложения по ар-хитектуре системы, задать ее ориентировочную структуру. Надеюсь, что эти паттерны направят ход ваших мыслей в верную сторону и окажутся применимы в широком спек-
тре приложений и программных сред.
Ценность паттернов, практик и компонентов
Прежде чем тратить ценное время на чтение книги о набо-ре паттернов, которые, с моих слов, усовершенствуют ваши подходы к работе, научат вас новым приемам разработки и — давайте посмотрим правде в глаза — изменят вашу жизнь, имеет смысл спросить: «А зачем?» Что такого есть в паттернах и методиках разработки, что может поменять подход к проек-
тированию и компоновке программного обеспечения? В этом разделе я объясню, почему считаю их важными. Надеюсь, мои доводы убедят вас прочесть книгу полностью. Стоя на плечах гигантов> 1
Начнем с того, что паттерны проектирования распределенных систем позволяют, образно говоря, стоять на плечах гигантов. Задачи, которые мы решаем, или системы, которые мы создаем, нечасто становятся действительно уникальными. В конечном итоге собранные воедино компоненты и общая бизнес-модель, которую позволяет организовать разрабатываемое программ-ное обеспечение, являются чем-то новым. Но то, как система построена, и те проблемы, с которыми она сталкивается в сво-ем стремлении быть надежной и масштабируемой, отнюдь не Глава 1. Введение 25
В этом, стало быть, состоит первая ценность паттернов: они позволяют учиться на чужих ошибках. Возможно, вы нико-гда раньше не разрабатывали распределенные системы. Воз-можно, вы никогда раньше не разрабатывали определенный
вид распределенных систем. Вместо того чтобы надеяться на опыт вашего коллеги в этой области или учиться на ошибках, которые совершали другие, вы можете обратиться за помощью к паттернам.
Изучение паттернов проектирования распределенных систем — то же самое, что изучение любых других передовых практик компьютерного программирования. Оно ускоряет разработку программного обеспечения, не требуя наличия непосредствен-ного опыта разработки систем, исправления ошибок и набива-ния собственных шишек.