Мартин Фаулер | |
---|---|
Выступление в Университете Сан-Паулу, Бразилия, 2015 г. | |
Родился | ( 1963-12-18)18 декабря 1963 г. (57 лет) Уолсолл, Англия |
Образование | Университетский колледж Лондона ( бакалавр, 1986) |
Занятие | Разработчик программного обеспечения, автор, оратор |
Работодатель | ThoughtWorks |
Веб-сайт | martinfowler.com |
Мартин Фаулер (18 декабря 1963 г.) - британский разработчик программного обеспечения, проживающий в США, автор и международный публичный оратор по разработке программного обеспечения, специализирующийся на объектно-ориентированном анализе и проектировании, UML, шаблонах и методологиях гибкой разработки программного обеспечения, включая экстремальное программирование.
Его книга 1999 года « Рефакторинг» популяризировала практику рефакторинга кода. В 2004 году он представил архитектурный паттерн Presentation Model (PM).
Фаулер родился и вырос в Уолсолле, Англия, где получил среднее образование в гимназии королевы Марии. В 1986 году он окончил Университетский колледж Лондона. В 1994 году он переехал в Соединенные Штаты, где живет недалеко от Бостона, штат Массачусетс, в пригороде Мелроуз.
Фаулер начал работать с программным обеспечением в начале 1980-х годов. После окончания университета в 1986 году он начал заниматься разработкой программного обеспечения в Coopers amp; Lybrand до 1991 года. В 2000 году он присоединился к ThoughtWorks, компании по системной интеграции и консалтингу, где он занимает должность главного научного сотрудника.
Фаулер написал девять книг по теме разработки программного обеспечения (см. Публикации). Он является членом Agile Alliance и вместе с 16 подписавшими сторонами помог создать Манифест гибкой разработки программного обеспечения в 2001 году. Он поддерживает блики, смесь блога и вики. Он популяризировал термин « внедрение зависимостей» как форму инверсии контроля.
В своей книге « Доменные языки» Фаулер обсуждает предметно-ориентированные языки, DSL. Говорят, что DSL определяются как составной язык программирования, ориентированный на отдельную область и имеющий выразительные ограничения. Утверждается, что DSL могут повысить производительность, устраняя требование от программиста понимать полный язык программирования, предоставляя средства связи с экспертами в предметной области и отделяя способ выполнения задачи от определения самой задачи. Эти преимущества сопоставлены с затратами на изучение нового языка и создание инструментов для этого языка, что приводит к тому, что разные языки и абстракции, используемые в DSL, не подходят для решения конкретной задачи.
Фаулер вводит концепцию внутреннего (или встроенного) и внешнего DSL, причем внутренний DSL представляет собой DSL, который является подмножеством другого языка и может выполняться инструментами для этого внешнего языка. Ruby и Lisp приведены в качестве примеров языков, в которых широко распространены внутренние DSL. Он также вводит идею семантической модели, которая определяет выполнение DSL. Представлены различные примеры DSL, включая graphviz, язык для определения графов, которые должны отображаться; JMock - фреймворк для фиксации Java; CSS - язык для определения стилистических элементов веб-сайта; HQL - объектно-реляционный преобразователь в Java ; XAML - язык, используемый для определения и изменения графических пользовательских интерфейсов ; FIT, язык для выражения сценариев тестирования; и сделать инструмент для создания программного обеспечения
В книге обсуждается реализация внешнего DSL с использованием таких инструментов, как синтаксические анализаторы, лексеры, абстрактные синтаксические деревья и генерация кода, называемые «переводом на основе синтаксиса». Это контрастирует с «переводом на основе разделителей», который считается более простым, но менее мощным. Здесь язык достаточно прост, чтобы его можно было интерпретировать путем разделения по разделителям и логики переключения на основе отдельных записей.
Обсуждаются способы реализации внутренних DSL с уделением внимания вызовам вложенных функций, последовательностям вызовов функций или цепочкам методов среди других методов.