Открыть сервис

Эрих Гамма

Эрих Гамма — швейцарский учёный в области информатики, один из четырёх авторов фундаментального труда «Design Patterns: Elements of Reusable Object-Oriented Software» (1994), известного как «банда четырёх» (GoF). Гамма внёс значительный вклад в популяризацию объектно-ориентированного проектирования и разработку шаблонов проектирования (паттернов), которые стали стандартом в индустрии программного обеспечения.

Биография

Эрих Гамма родился в 1961 году в Швейцарии. Получил высшее образование в области компьютерных наук в Швейцарской высшей технической школе Цюриха (ETH Zürich). В 1991 году защитил докторскую диссертацию на тему «Объектно-ориентированное проектирование на основе шаблонов» (Object-Oriented Software Development Based on Patterns), которая заложила основу для его дальнейшей работы.

После защиты диссертации Гамма работал в исследовательском центре IBM в Цюрихе, где занимался разработкой инструментов для объектно-ориентированного программирования. В 1990-х годах он присоединился к компании Taligent (совместное предприятие Apple, IBM и Hewlett-Packard), где вместе с Ричардом Хелмом, Ральфом Джонсоном и Джоном Влиссидесом начал работу над книгой о шаблонах проектирования.

В 1998 году Гамма перешёл в компанию Microsoft, где работал над платформой .NET и средами разработки, включая Visual Studio. Он участвовал в создании библиотеки классов .NET Framework и инструментов для рефакторинга кода. В 2011 году покинул Microsoft и присоединился к компании Google, где занимался разработкой инструментов для разработчиков, в частности, работал над проектами, связанными с автоматизацией тестирования и анализом кода.

Вклад в информатику

«Банда четырёх» (GoF)

Основной вклад Эриха Гаммы в информатику связан с его участием в создании книги «Design Patterns: Elements of Reusable Object-Oriented Software», опубликованной в 1994 году. Книга была написана в соавторстве с Ричардом Хелмом, Ральфом Джонсоном и Джоном Влиссидесом, которые вместе стали известны как «банда четырёх» (Gang of Four, GoF). Этот труд стал одним из самых цитируемых в области программной инженерии и оказал огромное влияние на развитие объектно-ориентированного проектирования.

В книге было описано 23 шаблона проектирования, разделённых на три категории:

  • Порождающие шаблоны (Creational patterns): Абстрактная фабрика, Строитель, Фабричный метод, Прототип, Одиночка.
  • Структурные шаблоны (Structural patterns): Адаптер, Мост, Компоновщик, Декоратор, Фасад, Приспособленец, Заместитель.
  • Поведенческие шаблоны (Behavioral patterns): Цепочка обязанностей, Команда, Интерпретатор, Итератор, Посредник, Хранитель, Наблюдатель, Состояние, Стратегия, Шаблонный метод, Посетитель.

Каждый шаблон был описан по единой схеме: название, назначение, мотивация, применимость, структура, участники, взаимодействия, следствия, пример реализации, известные применения и связанные шаблоны. Такой подход позволил разработчикам систематизировать решения типовых задач проектирования и создать общий язык для обсуждения архитектуры программного обеспечения.

Шаблоны проектирования

Шаблоны проектирования, описанные Гаммой и его коллегами, стали неотъемлемой частью образования программистов и практики разработки. Они предоставляют проверенные решения для часто встречающихся проблем, таких как создание объектов, организация взаимодействия между классами и управление сложностью системы. Например, шаблон «Наблюдатель» используется в системах событийной обработки, а «Стратегия» — для выбора алгоритма во время выполнения программы.

Влияние GoF-шаблонов распространилось на многие языки программирования, включая Java, C++, C#, Python и другие. В Java, например, шаблоны «Итератор» и «Наблюдатель» встроены в стандартные библиотеки (интерфейсы Iterator и Observer). В C# шаблон «Декоратор» реализован через механизм атрибутов, а «Стратегия» — через делегаты и лямбда-выражения.

Другие работы

Помимо книги о шаблонах, Гамма внёс вклад в развитие инструментов для рефакторинга кода. В Microsoft он участвовал в создании функций автоматического рефакторинга в Visual Studio, таких как извлечение метода, переименование и перемещение членов класса. Эти инструменты позволяют разработчикам улучшать структуру кода без изменения его поведения, что соответствует принципам, заложенным в шаблонах проектирования.

В Google Гамма работал над проектами, связанными с анализом кода и автоматизацией тестирования. Он также участвовал в разработке инструментов для статического анализа, которые помогают выявлять потенциальные ошибки и нарушения стиля кодирования.

Критика и влияние

Критика

Несмотря на широкое признание, работа «банды четырёх» подвергалась критике. Некоторые специалисты отмечали, что шаблоны проектирования могут приводить к излишней сложности кода, особенно если их применять без необходимости. Критики утверждали, что многие шаблоны являются следствием ограничений языков программирования, таких как C++ и Java, и в более современных языках (например, в Python или Ruby) они реализуются проще или вообще не требуются.

Также высказывалось мнение, что книга GoF слишком ориентирована на статически типизированные языки и не учитывает особенности динамического программирования. Однако эти замечания не снизили общего влияния работы, которая остаётся обязательной для изучения в большинстве университетских курсов по программной инженерии.

Влияние

Влияние Эриха Гаммы на индустрию программного обеспечения трудно переоценить. Шаблоны проектирования стали стандартом в разработке, а термин «банда четырёх» прочно вошёл в лексикон программистов. Книга GoF переведена на десятки языков, включая русский, и используется как учебное пособие в ведущих технических вузах мира.

Работа Гаммы также способствовала развитию других направлений, таких как архитектурные шаблоны (например, Model-View-Controller, MVC) и антипаттерны. Многие современные фреймворки, такие как Spring (Java), .NET (C#) и Django (Python), явно или неявно используют принципы, описанные в книге.

Интересные факты

  • Название «банда четырёх» (Gang of Four) было выбрано в шутку, по аналогии с китайской политической группировкой 1970-х годов.
  • Изначально книга GoF должна была содержать около 30 шаблонов, но в итоге было отобрано 23.
  • Эрих Гамма является соавтором нескольких патентов в области программного обеспечения, связанных с рефакторингом и объектно-ориентированным проектированием.
  • После ухода из Google в 2015 году Гамма отошёл от активной публичной деятельности, но его работы продолжают оказывать влияние на новые поколения разработчиков.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →