Мартин Фаулер
Мартин Фаулер — британский инженер-программист, автор и международный консультант в области разработки программного обеспечения. Наиболее известен как один из ведущих идеологов и пропагандистов рефакторинга, экстремального программирования (XP) и гибких методологий разработки (Agile). Фаулер является автором нескольких книг, ставших классикой в области проектирования и архитектуры программного обеспечения, а также главным научным сотрудником (Chief Scientist) компании ThoughtWorks.
Биография
Мартин Фаулер родился в 1963 году в Уолсолле, Англия. Получил образование в области электротехники и вычислительной техники в Лондонском университете (University College London). В 1980-х годах работал в различных компаниях, занимаясь разработкой систем на Smalltalk, C++ и других языках. В 1990-х годах он начал активно публиковать статьи и книги по объектно-ориентированному проектированию, рефакторингу и шаблонам проектирования.
В 2000 году Фаулер присоединился к компании ThoughtWorks, глобальной консалтинговой фирме в области разработки ПО, где впоследствии занял должность главного научного сотрудника. Находясь в ThoughtWorks, он консультировал крупные корпорации по вопросам внедрения гибких практик, архитектуры корпоративных приложений и микросервисов. Фаулер продолжает активную деятельность: пишет блог, выступает на конференциях и участвует в разработке стандартов.
Вклад в разработку программного обеспечения
Рефакторинг
Мартин Фаулер считается основоположником современного понимания рефакторинга — процесса изменения внутренней структуры программы без изменения её внешнего поведения, направленного на улучшение читаемости, поддерживаемости и расширяемости кода. Его книга «Рефакторинг: улучшение существующего кода» (1999, второе издание — 2018) стала настольной для поколений разработчиков. В ней он систематизировал каталог из десятков техник рефакторинга (например, «Извлечение метода», «Замена условного оператора полиморфизмом»), описал принципы их применения и ввёл понятие «запаха кода» (code smell) — признаков потенциальных проблем в коде.
Гибкие методологии (Agile)
Фаулер был одним из 17 авторов Манифеста гибкой разработки программного обеспечения (Agile Manifesto), опубликованного в 2001 году. Он активно пропагандирует итеративную разработку, тесное взаимодействие с заказчиком, самоорганизующиеся команды и техническое совершенство. В отличие от многих других адептов Agile, Фаулер подчёркивает важность инженерных практик (непрерывная интеграция, тестирование, рефакторинг) как основы для гибкости.
Экстремальное программирование (XP)
Фаулер является одним из главных популяризаторов экстремального программирования, методологии, созданной Кентом Беком. Он написал несколько книг и статей, разъясняющих практики XP (парное программирование, разработка через тестирование, простой дизайн), и активно защищал их от критики, особенно в контексте крупных проектов.
Архитектура корпоративных приложений
В книге «Архитектура корпоративных программных приложений» (2002) Фаулер систематизировал шаблоны проектирования, характерные для многоуровневых бизнес-приложений. Он описал такие паттерны, как «Модель-Представление-Контроллер» (MVC), «Активная запись» (Active Record), «Репозиторий» (Repository) и «Единица работы» (Unit of Work). Эта работа стала стандартным справочником для архитекторов и разработчиков, работающих с Java, .NET и другими платформами.
Микросервисная архитектура
В середине 2010-х годов Фаулер, совместно с Джеймсом Льюисом, ввёл в широкий обиход термин «микросервисы» (microservices). В своём блоге и на конференциях они сформулировали определение микросервисной архитектуры как подхода, при котором приложение строится как набор небольших, независимо развёртываемых сервисов, взаимодействующих по лёгким протоколам (обычно HTTP/REST). Фаулер подчеркнул, что микросервисы — это не панацея, а архитектурный стиль, применимый для сложных, быстро меняющихся систем, но требующий зрелой инфраструктуры и культуры DevOps.
Domain-Driven Design (DDD)
Фаулер активно поддерживает и популяризирует идеи Эрика Эванса по предметно-ориентированному проектированию (DDD). Он написал ряд статей, разъясняющих такие концепции DDD, как «Ограниченный контекст» (Bounded Context), «Агрегат» (Aggregate) и «Событие предметной области» (Domain Event), и часто использует их в своих консультациях.
Книги
Основные книги Мартина Фаулера, переведённые на русский язык:
- «Рефакторинг: улучшение существующего кода» (1999, 2018) — каталог техник рефакторинга.
- «Архитектура корпоративных программных приложений» (2002) — шаблоны проектирования для бизнес-приложений.
- «UML. Основы» (2003) — краткое руководство по языку моделирования UML.
- «Планирование экстремального программирования» (2000, в соавторстве с Кентом Беком) — практики планирования в XP.
- «NoSQL: новая методология разработки нереляционных баз данных» (2012, в соавторстве с Прамодкумаром Садаладжем) — обзор и классификация NoSQL-баз данных.
Критика и влияние
Мартин Фаулер неоднократно подвергался критике со стороны сторонников более формальных подходов к разработке (например, методологии RUP или Waterfall) за излишнюю, по их мнению, гибкость и недостаток документации. Некоторые критики утверждают, что его идеи о рефакторинге и микросервисах могут привести к чрезмерному усложнению архитектуры, если применять их без должного понимания контекста.
Тем не менее, влияние Фаулера на индустрию разработки ПО огромно. Его книги и статьи являются обязательными для изучения во многих университетах и на курсах повышения квалификации. Он внёс значительный вклад в систематизацию знаний о рефакторинге, шаблонах проектирования и архитектуре, сделав их доступными для широкого круга разработчиков. Фаулер остаётся одним из самых цитируемых и уважаемых авторов в области программной инженерии.
Источники
- Мартин Фаулер. «Рефакторинг: улучшение существующего кода». — Вильямс, 2019.
- Мартин Фаулер. «Архитектура корпоративных программных приложений». — Вильямс, 2006.
- Мартин Фаулер, Прамодкумар Садаладж. «NoSQL: новая методология разработки нереляционных баз данных». — Вильямс, 2013.
- Кент Бек, Мартин Фаулер. «Планирование экстремального программирования». — Питер, 2001.
- Martin Fowler. «Microservices» (блог martinfowler.com, 2014).
- Agile Manifesto (agilemanifesto.org).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →