Глава 1. Введение
Паттерны в объектно-ориентированном программировании
Если появление книг Кнута стало важной вехой в теории ком-пьютерного программирования, то алгоритмы — ключевой составляющей его развития. Однако по мере роста сложности компьютерных программ и увеличения численного состава раз-
рабатывающих их команд с единиц до сотен и тысяч стало ясно, что языков процедурного программирования и алгоритмов уже недостаточно для решения насущных задач. Эти изменения привели к появлению и развитию объектно-ориентированных языков программирования, которые уравняли в правах с алго-ритмами данные, повторное использование и расширяемость. В ответ на эти изменения в компьютерном программирова-нии изменениям подверглись также паттерны и практики программирования. В начале и середине 1990-х годов про-изошел взрывной рост количества книг об объектно-ориен-тированном программировании. Наиболее известна из них книга «банды четырех» «Приемы объектно-ориентированного проектирования»> 1 .
«Паттерны проектирования» привнесли в работу программи-стов инфраструктуру и общий язык. В этой книге описывается набор интерфейсных паттернов, которые можно использовать в различных контекстах. Благодаря развитию объектно-ориен-
тированного программирования в целом и интерфейсов в част-ности появилась возможность реализовать такие паттерны в виде повторно используемых библиотек. Эти библиотеки можно написать единожды и затем многократно использовать, экономя тем самым время и повышая надежность. Глава 1. Введение 23
Расцвет программного обеспечения с открытым исходным кодом
Делиться исходным кодом с другими разработчиками было принято со времен появления вычислительной техники. Фор-мальные организации в поддержку свободного программно-го обеспечения существовали с середины 1980-х. Но именно
в конце 1990-х — начале 2000-х резко возросло количество разработчиков и потребителей программного обеспечения с от-крытым исходным кодом. Хотя движение open source лишь от-носительно связано с разработкой паттернов проектирования
распределенных систем, его заслуга состоит в том, что именно сообщества open source показали миру: создание программного обеспечения в целом и распределенных систем в частности — труд коллективный.
Здесь важно отметить, что все технологии контейнеров, ле-жащие в основе паттернов проектирования из этой книги, разрабатывались и выпускались именно как программное обеспечение с открытым исходным кодом. Ценность паттер-