Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Martin Fowler (software engineer)

From Wikipedia, the free encyclopedia
American software developer, author and public speaker (born 1963)

Martin Fowler
Fowler in 2015
Born (1963-12-18)18 December 1963 (age 62)
Walsall, England, UK
EducationUniversity College London(BSc, 1986)[1]
OccupationsSoftware developer, author, public speaker
EmployerThoughtWorks
Websitemartinfowler.com

Martin Fowler (18 December 1963) is a Britishsoftware developer,[2] author and international public speaker on software development, specialising inobject-oriented analysis and design,UML,patterns, andagile software development methodologies, includingextreme programming.

His 1999 bookRefactoring popularised the practice ofcode refactoring.[3] In 2004 he introduced a newarchitectural pattern, called Presentation Model (PM).[4]

Biography

[edit]

Fowler was born and grew up inWalsall, England, where he went toQueen Mary's Grammar School for his secondary education. He graduated atUniversity College London in 1986. In 1994, he moved to the United States, where he lives nearBoston,Massachusetts in the suburb ofMelrose.[1]

Fowler started working with software in the early 1980s. Out of university in 1986 he started working in software development forCoopers & Lybrand until 1991.[5] In 2000 he joinedThoughtWorks, a systems integration and consulting company,[1] where he is Chief Scientist.[6][1]

Fowler has written nine books on the topic of software development. He is a member of theAgile Alliance and helped create theManifesto for Agile Software Development in 2001, along with 16 fellow signatories.[7] He maintains abliki, a mix ofblog andwiki. He popularised the termDependency Injection as a form ofInversion of Control.[8][9]

Publications

[edit]
  • 1996.Analysis Patterns: Reusable Object Models. Addison-Wesley.ISBN 0-201-89542-0.
  • 1997.UML Distilled: A Brief Guide to the Standard Object Modeling Language. Addison-Wesley.ISBN 978-0-201-32563-8.
  • 1999.Refactoring: Improving the Design of Existing Code, WithKent Beck, John Brant,William Opdyke, and Don Roberts (June 1999). Addison-Wesley.ISBN 0-201-48567-2.
  • 2000.Planning Extreme Programming. WithKent Beck. Addison-Wesley.ISBN 0-201-71091-9.
  • 2002.Patterns of Enterprise Application Architecture. With David Rice, Matthew Foemmel, Edward Hieatt, Robert Mee, and Randy Stafford. Addison-Wesley.ISBN 0-321-12742-0.
  • 2010.Domain-Specific Languages. With Rebecca Parsons. Addison-Wesley.ISBN 978-0-321-71294-3.
  • 2012.NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence. With Pramod Sadalage. Addison-Wesley.ISBN 978-0-321-82662-6.
  • 2013.Refactoring: Ruby Edition. WithKent Beck, Shane Harvie, and Jay Fields. Addison-Wesley.ISBN 978-0-321-98413-5.
  • 2018.Refactoring: Improving the Design of Existing Code, Second Edition. Kent Beck, and Martin Fowler. Addison-Wesley.ISBN 978-0-134-75759-9.

Domain-specific languages

[edit]

Fowler’sDomain-specific languages discusses small, composable programming languages focused on an individual domain.[10]: 27  He argues that domain-specific languages increase productivity by removing the need for the programmer to understand a full programming language, by improving communication withdomain experts, and by separating the execution of a task from its definition.[10]: 33  These benefits are set against the cost of learning a new language and building the tools for this language.[10]: 39 

Fowler introduces the concept ofinternal (orembedded) andexternal domain-specific languages. An internal language is a subset of another language and can be executed by the tools for this outer language.Ruby andLisp are given as an example of languages where internal domain-specific languages are common. Fowler also introduces the idea ofSemantic Model.[10]: 14  Various domain-specific languages are presented includinggraphviz, a language for specifyinggraphs to be rendered; JMock, a java mocking framework;CSS, a language to specify stylistic elements of a website;HQL, anobject relational mapper;XAML, a language used to specify and changegraphical user interfaces; FIT, a language to express testing scenarios; andmake, a tool to build software[10]: 147 

The book discusses implementing an external domain-specific language usingparsers,lexers,abstract syntax trees andcode generation referred to as "syntax-driven translation"[10]: 219  This is contrasted with "delimiter-driven translation" which is simpler but less powerful. Here the language is simple enough to beinterpreted by splitting on delimiters and switching logic based on individual entries.[10]: 201 

Ways of implementing internal domain-specific languages are discussed, with attention to nested function calls,[10]: 357  sequences of function calls,[10]: 351  ormethod chaining[10]: 373 .[citation needed]

References

[edit]
  1. ^abcdMartin Fowler at martinfowler.com. Retrieved 2012-11-15.
  2. ^"About Martin Fowler".martinfowler.com. Retrieved1 May 2021.
  3. ^Stephane Faroult; Pascal L'Hermite (2008).Refactoring SQL Applications. O'Reilly Media. p. 8.ISBN 978-0-596-55177-3.
  4. ^Stephen Chin; Dean Iverson; Oswald Campesato; Paul Trani (2011).Pro Android Flash. Apress. p. 300.ISBN 978-1-4302-3232-2.
  5. ^James A. Highsmith (2002).Agile Software Development Ecosystems. Addison-Wesley Professional. p. 133.ISBN 978-0-201-76043-9.
  6. ^Martin Fowler | ThoughtWorks. Retrieved 2015-03-30.
  7. ^Manifesto for Agile Software Development. Retrieved 2012-12-10.
  8. ^Kamil Piętak; Marek Kisiel-Dorohinicki (2013). "Agent-Based Framework Facilitating Component-Based Implementation of Distributed Computational Intelligence Systems". In Ngoc-Thanh Nguyen; Joanna Kołodziej; Tadeusz Burczyński et al.Transactions on Computational Collective Intelligence X. Springer. p. 38.ISBN 978-3-642-38496-7.
  9. ^Martin Fowler (2004) "Inversion of Control Containers and the Dependency Injection pattern". Retrieved 2012-11-15.
  10. ^abcdefghijFowler, Martin (2011).Domain-specific languages. Upper Saddle River, N.J.: Addison-Wesley.ISBN 978-0-13-210754-9.OCLC 686709295.

External links

[edit]
Wikimedia Commons has media related toMartin Fowler.
Wikiquote has quotations related toMartin Fowler.
Fields
Concepts
Orientations
Models
Developmental
Other
Languages
Related fields
International
National
Academics
People
Other
Retrieved from "https://en.wikipedia.org/w/index.php?title=Martin_Fowler_(software_engineer)&oldid=1336467936"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp