Мартин Фаулер (инженер-программист)
Мартин Фаулер | |
---|---|
![]() Фаулер в 2015 году | |
Рожденный | Уолсолл , Англия, Великобритания | 18 декабря 1963 г.
Образование | Университетский колледж Лондона ( бакалавр наук , 1986 г.) [1] |
Род занятий | Разработчик программного обеспечения, автор, оратор |
Работодатель | МысльВоркс |
Веб-сайт | ласточка |
Мартин Фаулер (18 декабря 1963 г.) — британский разработчик программного обеспечения . [2] автор и международный оратор по разработке программного обеспечения, специализирующийся на объектно-ориентированном анализе и проектировании , UML , шаблонах и гибких методологиях разработки программного обеспечения, включая экстремальное программирование .
Его книга «Рефакторинг» 1999 года популяризировала практику рефакторинга кода . [3] В 2004 году он представил новый архитектурный шаблон , названный Моделью Представления (PM). [4]
Биография [ править ]
Фаулер родился и вырос в Уолсолле , Англия, где он пошел в гимназию королевы Марии, чтобы получить среднее образование. Он окончил Университетский колледж Лондона в 1986 году. В 1994 году он переехал в США, где живет недалеко от Бостона , штат Массачусетс, в пригороде Мелроуз . [1]
Фаулер начал работать с программным обеспечением в начале 1980-х годов. Окончив университет в 1986 году, он начал работать в сфере разработки программного обеспечения в Coopers & Lybrand до 1991 года. [5] В 2000 году он присоединился к ThoughtWorks , компании по системной интеграции и консалтингу. [1] где он был главным научным сотрудником. [6]
Фаулер написал девять книг по теме разработки программного обеспечения. Он является членом Agile Alliance и помог создать Манифест гибкой разработки программного обеспечения в 2001 году вместе с 16 другими подписавшими его сторонами. [7] Он поддерживает блики , смесь блога и вики . Он популяризировал термин «внедрение зависимостей» как форму инверсии контроля . [8] [9]
Публикации [ править ]
- 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 определяются как составные языки программирования, ориентированные на отдельную область и имеющие ограниченную выразительность. [10] : 27 Утверждается, что DSL могут повысить производительность, устраняя требование к программисту понимать полный язык программирования, предоставляя средства общения с экспертами в предметной области и отделяя способ выполнения задачи от определения самой задачи. [10] : 33 Эти преимущества сравниваются с затратами на изучение нового языка и создание инструментов для этого языка, что приводит к разрознению различных языков и абстракциям, используемым в DSL, которые не подходят для конкретной задачи. [10] : 39
Фаулер вводит концепцию внутреннего (или встроенного ) и внешнего DSL, причем внутренний DSL — это DSL, который является подмножеством другого языка и может выполняться инструментами этого внешнего языка. Ruby и Lisp приведены в качестве примеров языков, в которых распространены внутренние DSL. Он также представляет идею семантической модели , которая определяет выполнение DSL. [10] : 14 Представлены различные примеры DSL, включая Graphviz , язык для указания графов отображаемых ; JMock, среда для создания макетов Java; CSS — язык для определения стилистических элементов веб-сайта; HQL , реляционный преобразователь объектов в Java ; XAML — язык, используемый для определения и изменения графических пользовательских интерфейсов ; FIT — язык для описания сценариев тестирования; и создайте инструмент для создания программного обеспечения [10] : 147
В книге обсуждается реализация внешнего DSL с использованием таких инструментов, как парсеры , лексеры , абстрактные синтаксические деревья и генерация кода, называемая «синтаксически-ориентированным переводом». [10] : 219 Это контрастирует с «переводом на основе разделителей», который считается более простым, но менее эффективным. Здесь язык достаточно прост, чтобы его можно было интерпретировать путем разделения по разделителям и логики переключения на основе отдельных записей. [10] : 201
Обсуждаются способы реализации внутренних DSL, уделяя внимание вложенным вызовам функций. [10] : 357 последовательность вызовов функций, [10] : 351 или цепочка методов [10] : 373 среди других методов.
Ссылки [ править ]
- ^ Jump up to: Перейти обратно: а б с Мартин Фаулер на martinfowler.com. Проверено 15 ноября 2012 г.
- ^ «О Мартине Фаулере» . martinfowler.com . Проверено 1 мая 2021 г.
- ^ Стефан Фару; Паскаль Л'Эрмит (2008). Рефакторинг SQL-приложений. О'Рейли Медиа. п. 8. ISBN 978-0-596-55177-3 .
- ^ Стивен Чин; Дин Айверсон; Освальд Кампесато; Пол Трани (2011). Про Android Flash . Апресс. п. 300. ISBN 978-1-4302-3232-2 .
- ^ Джеймс А. Хайсмит (2002). Гибкие экосистемы разработки программного обеспечения . Аддисон-Уэсли Профессионал. п. 133. ISBN 978-0-201-76043-9 .
- ^ Мартин Фаулер | МысльВоркс . Проверено 30 марта 2015 г.
- ^ Манифест гибкой разработки программного обеспечения . Проверено 10 декабря 2012 г.
- ^ Камил Пентак; Марек Кисель-Дорохиницкий (2013). «Агентная платформа, облегчающая компонентную реализацию распределенных систем вычислительного интеллекта». В Нгок-Тхань Нгуене; Джоанна Колодзей; Тадеуш Бурчинский и др. Труды по вычислительному коллективному разуму X . Спрингер. п. 38. ISBN 978-3-642-38496-7 .
- ^ Мартин Фаулер (2004) « Инверсия контейнеров управления и шаблон внедрения зависимостей ». Проверено 15 ноября 2012 г.
- ^ Jump up to: Перейти обратно: а б с д и ж г час я дж Фаулер, Мартин (2011). Языки, специфичные для предметной области . Река Аппер-Сэддл, Нью-Джерси: Аддисон-Уэсли. ISBN 978-0-13-210754-9 . OCLC 686709295 .
Внешние ссылки [ править ]


- Официальный сайт
- Веннерс, Билл (9 декабря 2002 г.). «Разговор с Мартином Фаулером» . Артима . В шести частях.
- Живые люди
- 1963 года рождения
- Выпускники Университетского колледжа Лондона
- Британские инженеры-программисты
- Британские блоггеры
- Британские писатели-технологи
- Экстремальное программирование
- Люди из Уолсолла
- Инженеры из Уэст-Мидлендса (графство)
- Люди, получившие образование в гимназии королевы Марии
- Британские эмигранты в США
- Гибкая разработка программного обеспечения