stringtranslate.com

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

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

Его книга 1999 года «Рефакторинг» популяризировала практику рефакторинга кода . [3] В 2004 году он представил новый архитектурный шаблон , названный «Презентационная модель» (PM). [4]

Биография

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

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

Фаулер написал девять книг по теме разработки программного обеспечения. Он является членом Agile Alliance и помог создать Манифест Agile Software Development в 2001 году вместе с 16 другими подписавшими его людьми. [7] Он поддерживает bliki , смесь блога и вики . Он популяризировал термин Dependency Injection как форму Inversion of Control . [8] [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 , язык для выражения сценариев тестирования; и make , инструмент для создания программного обеспечения [10] : 147 

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

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

Ссылки

  1. ^ abc Мартин Фаулер на martinfowler.com. Получено 15.11.2012.
  2. ^ "О Мартине Фаулере". martinfowler.com . Получено 1 мая 2021 г. .
  3. ^ Стефан Фарулт; Паскаль Л'Эрмит (2008). Рефакторинг SQL-приложений. O'Reilly Media. стр. 8. ISBN 978-0-596-55177-3
  4. ^ Стивен Чин; Дин Айверсон; Освальд Кампесато; Пол Трани (2011). Pro Android Flash . Apress. стр. 300. ISBN 978-1-4302-3232-2
  5. ^ Джеймс А. Хайсмит (2002). Экосистемы гибкой разработки программного обеспечения . Addison-Wesley Professional. стр. 133. ISBN 978-0-201-76043-9
  6. ^ Мартин Фаулер | ThoughtWorks. Получено 30.03.2015.
  7. ^ Манифест гибкой разработки программного обеспечения. Получено 10 декабря 2012 г.
  8. ^ Камил Пентак; Марек Кисель-Дорохиницкий (2013). «Агентная платформа, облегчающая компонентную реализацию распределенных систем вычислительного интеллекта». В Нгок-Тхань Нгуене; Джоанна Колодзей; Тадеуш Бурчинский и др. Труды по вычислительному коллективному разуму X . Спрингер. п. 38. ISBN 978-3-642-38496-7
  9. ^ Мартин Фаулер (2004) «Инверсия контейнеров управления и шаблон внедрения зависимости». Получено 15 ноября 2012 г.
  10. ^ abcdefghij Фаулер, Мартин (2011). Языки, специфичные для предметной области. Upper Saddle River, NJ: Addison-Wesley. ISBN 978-0-13-210754-9. OCLC  686709295.

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