В 1977 году британский ученый Кристофер Александер (Christopher Alexander), изучавший математику и архитектуру в Кембридже и получивший первую в Гарварде степень кандидата наук в области архитектуры, опубликовал книгу под названием «Язык шаблонов. Города, здания, строительство» (A Pattern Language: Towns, Buildings, Construction). Эта книга изменила мир архитектуры, но что более удивительно — серьезно повлияла на то, как сегодня пишутся программы.
Александер описал правила строительства безопасных зданий: от пространства, вмещающего 8 000 000 человек, до формы и размера каминов внутри частных домов. Сегодня его работа, которая содержит 253 шаблона проектирования, по-прежнему входит в тройку бестселлеров по архитектуре.
Программист или самозванец: как определить уровень кандидата?
Архитектура и программирование
Спустя 10 лет с момента выхода в свет «Языка шаблонов», Кент Бек (Kent Beck) и Вард Каннингам (Ward Cunningham) — два американских инженера программного обеспечения преобразовали идеи Александера, опубликовав статью «Использование языка шаблонов для объектно-ориентированных программ» (Using Pattern Languages for Object Oriented Programs).
Статья стала катализатором перехода к шаблонам программирования, позволявшим решать имеющиеся проблемы последовательным путем. Это вдохновило «Группу Четырех» (Gang of Four) на написание труда по информатике «Шаблоны проектирования» (Design Patterns), в котором были сформулированы такие понятия, как:
- WYSIWYG (What You See Is What You Get, «Что вижу, то и есть» — технология, позволяющая представлять редактируемые цифровые данные, приблизительно в том же виде, в котором они будут получены в готовом издании или продукте)
- Итераторы (Iterator — интерфейс, предоставляющий доступ к элементам массива или контейнера и навигацию по ним)
- Фабричный метод (Factory Method — шаблон проектирования, позволяющий создавать объекты различных типов одним интерфейсом), и др.
С того времени шаблоны проектирования вошли в учебные программы и лексикон компьютерных специалистов. Они по-прежнему продолжают получать широкое распространение — например, в менеджменте они считаются лучшими практическими методами.
Секреты юзабилити: разница между информационной и архитектурной навигацией сайта
Будущее шаблонов проектирования
Так как одержимость информацией внутри компаний растет, и все больше организаций переходят к культуре анализа данных, шаблоны проектирования будут распространяться дальше — на менеджмент, архитектуру и компьютерные науки. Некоторые из них уже известны, но в течение последующих лет они будут формализованы и улучшены.
Looker со своим релизом «Блоков» (Blocks) сделал важный шаг в этом направлении. Blocks представляют собой шаблоны проектирования, позволяющие отслеживать поведение и опыт пользователя, так что вы можете анализировать его действия, а не просто веб-трафик.
Шаблоны проектирования данных были протестированы на сотнях клиентов и подробно задокументированы. Они создавались как обобщенные, гибкие к различным источникам информации — таким, как Salesforce, Marketo, Zendesk — и адаптированные к потребностям каждой организации.
Упростив задачи программистов и архитекторов, шаблоны проектирования также облегчают жизнь специалистов по обработке данных и гарантируют, что каждый пользователь в любой момент времени использует правильные данные.
Создание и сохранение новых типов данных внутри компаний, несомненно, будет провоцировать изменения шаблонов и разработку новых аналитических методов, с целью понять тенденции внутри них. Они будут иметь столь же фундаментальное значение для науки о данных и анализа, какое имеют разработки Кристофера Александера и «Банды четырех» для архитектуры и программирования соответственно.
По материалам tomtunguz.comimage source wojtekwowra