Б Бёрнс - Распределенные системы. Паттерны проектирования
- Название:Распределенные системы. Паттерны проектирования
- Автор:
- Жанр:
- Издательство:Питер
- Год:2019
- ISBN:978-5-4461-0950-0
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Б Бёрнс - Распределенные системы. Паттерны проектирования краткое содержание
Распределенные системы. Паттерны проектирования - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
К счастью, современные технологии упрощают разработку рас-пределенных систем. В последние годы контейнеры, их образы и оркестраторы стали популярными в силу того, что являются неотъемлемыми составными частями надежных распределен-
ных систем. Взяв за основу контейнеры и оркестраторы кон-тейнеров, мы можем создать набор повторно используемых Глава 1. Введение 21
компонентов и паттернов проектирования. Такие паттерны и компоненты составляют инструментарий, необходимый для разработки более эффективных надежных систем. Краткая история паттернов проектирования в разработке ПО Чтобы лучше понять, как паттерны, практики и повторно ис-пользуемые компоненты изменили разработку систем, имеет смысл взглянуть на то, как подобные трансформации проис-ходили в прошлом.
Формализация алгоритмического программирования
Люди писали программы задолго до опубликования Дональдом Кнутом сборника «Искусство программирования» 1. Тем не ме-нее это событие стало важной вехой в развитии информатики. В частности, описанные в книгах Кнута алгоритмы не ориенти-рованы на какой-либо компьютер, а предназначены для обуче-ния читателя алгоритмическому мышлению. Эти алгоритмы могут быть адаптированы к конкретной компьютерной архи-тектуре или к конкретной задаче, решаемой читателем. Такая формализация была важна не только потому, что предоставляла разработчикам общий инструментарий для написания про-грамм, но и потому, что демонстрировала существование уни-версальных идей, которые можно применять в разнообразных контекстах. Понимание алгоритмов имеет ценность само по себе, безотносительно к какой-либо решаемой с их помощью задаче. 22Глава 1. Введение
Паттерны в объектно-ориентированном программировании
Если появление книг Кнута стало важной вехой в теории ком-пьютерного программирования, то алгоритмы — ключевой составляющей его развития. Однако по мере роста сложности компьютерных программ и увеличения численного состава раз-
рабатывающих их команд с единиц до сотен и тысяч стало ясно, что языков процедурного программирования и алгоритмов уже недостаточно для решения насущных задач. Эти изменения привели к появлению и развитию объектно-ориентированных языков программирования, которые уравняли в правах с алго-ритмами данные, повторное использование и расширяемость. В ответ на эти изменения в компьютерном программирова-нии изменениям подверглись также паттерны и практики программирования. В начале и середине 1990-х годов про-изошел взрывной рост количества книг об объектно-ориен-тированном программировании. Наиболее известна из них книга «банды четырех» «Приемы объектно-ориентированного проектирования» 1.
«Паттерны проектирования» привнесли в работу программи-стов инфраструктуру и общий язык. В этой книге описывается набор интерфейсных паттернов, которые можно использовать в различных контекстах. Благодаря развитию объектно-ориен-
тированного программирования в целом и интерфейсов в част-ности появилась возможность реализовать такие паттерны в виде повторно используемых библиотек. Эти библиотеки можно написать единожды и затем многократно использовать, экономя тем самым время и повышая надежность. Глава 1. Введение 23
Расцвет программного обеспечения с открытым исходным кодом
Делиться исходным кодом с другими разработчиками было принято со времен появления вычислительной техники. Фор-мальные организации в поддержку свободного программно-го обеспечения существовали с середины 1980-х. Но именно
в конце 1990-х — начале 2000-х резко возросло количество разработчиков и потребителей программного обеспечения с от-крытым исходным кодом. Хотя движение open source лишь от-носительно связано с разработкой паттернов проектирования
распределенных систем, его заслуга состоит в том, что именно сообщества open source показали миру: создание программного обеспечения в целом и распределенных систем в частности — труд коллективный.
Здесь важно отметить, что все технологии контейнеров, ле-жащие в основе паттернов проектирования из этой книги, разрабатывались и выпускались именно как программное обеспечение с открытым исходным кодом. Ценность паттер-
нов для документирования и усовершенствования практик разработки распределенных программных систем становится наиболее очевидной именно с точки зрения коллективной разработки.
MEAN 1) есть свои правила установки. Но когда я говорю о паттернах, я имею в виду обобщенные схемы организа-ции распределенных систем, не зависящие от конкретных технологий или приложений.
24Глава 1. Введение
Цель паттерна — предоставить общие предложения по ар-хитектуре системы, задать ее ориентировочную структуру. Надеюсь, что эти паттерны направят ход ваших мыслей в верную сторону и окажутся применимы в широком спек-
тре приложений и программных сред.
Ценность паттернов, практик и компонентов
Прежде чем тратить ценное время на чтение книги о набо-ре паттернов, которые, с моих слов, усовершенствуют ваши подходы к работе, научат вас новым приемам разработки и — давайте посмотрим правде в глаза — изменят вашу жизнь, имеет смысл спросить: «А зачем?» Что такого есть в паттернах и методиках разработки, что может поменять подход к проек-
тированию и компоновке программного обеспечения? В этом разделе я объясню, почему считаю их важными. Надеюсь, мои доводы убедят вас прочесть книгу полностью. Стоя на плечах гигантов 1
Начнем с того, что паттерны проектирования распределенных систем позволяют, образно говоря, стоять на плечах гигантов. Задачи, которые мы решаем, или системы, которые мы создаем, нечасто становятся действительно уникальными. В конечном итоге собранные воедино компоненты и общая бизнес-модель, которую позволяет организовать разрабатываемое программ-ное обеспечение, являются чем-то новым. Но то, как система построена, и те проблемы, с которыми она сталкивается в сво-ем стремлении быть надежной и масштабируемой, отнюдь не Глава 1. Введение 25
В этом, стало быть, состоит первая ценность паттернов: они позволяют учиться на чужих ошибках. Возможно, вы нико-гда раньше не разрабатывали распределенные системы. Воз-можно, вы никогда раньше не разрабатывали определенный
вид распределенных систем. Вместо того чтобы надеяться на опыт вашего коллеги в этой области или учиться на ошибках, которые совершали другие, вы можете обратиться за помощью к паттернам.
Изучение паттернов проектирования распределенных систем — то же самое, что изучение любых других передовых практик компьютерного программирования. Оно ускоряет разработку программного обеспечения, не требуя наличия непосредствен-ного опыта разработки систем, исправления ошибок и набива-ния собственных шишек.
Читать дальшеИнтервал:
Закладка: