Мартин Фаулер (инженер-программист) - Martin Fowler (software engineer)

Мартин Фаулер
Webysther 20150414193208 - Мартин Фаулер.jpg
Выступление в Университете Сан-Паулу , Бразилия, 2015 г.
Родился ( 1963-12-18 )18 декабря 1963 г. (57 лет)
Уолсолл , Англия
Образование Университетский колледж Лондона ( бакалавр , 1986)
Занятие Разработчик программного обеспечения, автор, оратор
Работодатель ThoughtWorks
Веб-сайт martinfowler .com

Мартин Фаулер (18 декабря 1963 г.) - британский разработчик программного обеспечения , проживающий в США , автор и международный публичный оратор по разработке программного обеспечения, специализирующийся на объектно-ориентированном анализе и проектировании , UML , шаблонах и методологиях гибкой разработки программного обеспечения , включая экстремальное программирование .

Его книга 1999 года « Рефакторинг» популяризировала практику рефакторинга кода . В 2004 году он представил архитектурный паттерн Presentation Model (PM) .

биография

Фаулер родился и вырос в Уолсолле , Англия, где получил среднее образование в гимназии королевы Марии . В 1986 году он окончил Университетский колледж Лондона . В 1994 году он переехал в Соединенные Штаты, где живет недалеко от Бостона , штат Массачусетс, в пригороде Мелроуз .

Фаулер начал работать с программным обеспечением в начале 1980-х годов. После окончания университета в 1986 году он начал заниматься разработкой программного обеспечения в Coopers & Lybrand до 1991 года. В 2000 году он присоединился к ThoughtWorks , компании по системной интеграции и консалтингу, где он занимает должность главного научного сотрудника.

Фаулер написал девять книг по теме разработки программного обеспечения (см. Публикации ). Он является членом Agile Alliance и вместе с 16 подписавшими сторонами помог создать Манифест гибкой разработки программного обеспечения в 2001 году. Он поддерживает блики , смесь блога и вики . Он популяризировал термин « внедрение зависимостей» как форму инверсии контроля .

Публикации

  • 1996. Шаблоны анализа: многоразовые объектные модели . Эддисон-Уэсли. ISBN  0-201-89542-0 .
  • 1997. UML Distilled: Краткое руководство по стандартному языку моделирования объектов . Эддисон-Уэсли. ISBN  978-0-201-32563-8 .
  • 1999. Рефакторинг: улучшение дизайна существующего кода , с Кентом Беком , Джоном Брантом, Уильямом Опдайком и Доном Робертсом (июнь 1999 г.). Эддисон-Уэсли. ISBN  0-201-48567-2 .
  • 2000. Планирование экстремального программирования . С Кентом Беком . Эддисон-Уэсли. ISBN  0-201-71091-9 .
  • 2002. Паттерны архитектуры корпоративных приложений . С Дэвидом Райсом, Мэтью Феммелем, Эдвардом Хиаттом, Робертом Ми и Рэнди Стаффордом. Эддисон-Уэсли. ISBN  0-321-12742-0 .
  • 2010. Доменные языки . С Ребеккой Парсонс. Эддисон-Уэсли. ISBN  978-0-321-71294-3 .
  • 2012. NoSQL Distilled: Краткое руководство по развивающемуся миру стойкости полиглотов . С Прамодом Садалаге. Эддисон-Уэсли. ISBN  978-0-321-82662-6 .
  • 2013. Рефакторинг: Ruby Edition . С Кентом Беком , Шейном Харви и Джеем Филдсом. Эддисон-Уэсли. ISBN  978-0-321-98413-5 .
  • 2018. Рефакторинг: улучшение дизайна существующего кода, второе издание . Кент Бек и Мартин Фаулер. Эддисон-Уэсли. ISBN  978-0-134-75759-9 .

Доменные языки

В своей книге « Доменные языки» Фаулер обсуждает предметно-ориентированные языки , DSL. Говорят, что DSL определяются как составной язык программирования, ориентированный на отдельную область и имеющий выразительные ограничения. Утверждается, что DSL могут повысить производительность, устраняя требование от программиста понимать полный язык программирования, предоставляя средства связи с экспертами в предметной области и отделяя способ выполнения задачи от определения самой задачи. Эти преимущества сопоставлены с затратами на изучение нового языка и создание инструментов для этого языка, что приводит к тому, что разные языки и абстракции, используемые в DSL, не подходят для решения конкретной задачи.

Фаулер вводит концепцию внутреннего (или встроенного ) и внешнего DSL, причем внутренний DSL представляет собой DSL, который является подмножеством другого языка и может выполняться инструментами для этого внешнего языка. Ruby и Lisp приведены в качестве примеров языков, в которых широко распространены внутренние DSL. Он также вводит идею семантической модели, которая определяет выполнение DSL. Представлены различные примеры DSL, включая graphviz , язык для определения графов, которые должны отображаться; JMock - фреймворк для фиксации Java; CSS - язык для определения стилистических элементов веб-сайта; HQL - объектно-реляционный преобразователь в Java ; XAML - язык, используемый для определения и изменения графических пользовательских интерфейсов ; FIT, язык для выражения сценариев тестирования; и сделать инструмент для создания программного обеспечения

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

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

использованная литература

внешние ссылки