マーティン・ファウラー(1963年12月18日生まれ)は、イギリスのソフトウェア開発者、[ 2 ]、ソフトウェア開発に関する著者および国際的な講演者であり、オブジェクト指向分析と設計、UML、パターン、エクストリームプログラミングを含むアジャイルソフトウェア開発手法を専門としています。
彼の1999年の著書『リファクタリング』は、コードリファクタリングの実践を普及させた。[ 3 ] 2004年には、プレゼンテーションモデル(PM)と呼ばれる新しいアーキテクチャパターンを導入した。[ 4 ]
ファウラーはイングランドのウォルソールで生まれ育ち、クイーン・メアリー・グラマー・スクールで中等教育を受けた。1986年にユニバーシティ・カレッジ・ロンドンを卒業。1994年にアメリカに移住し、現在はマサチューセッツ州ボストン近郊のメルローズ郊外に住んでいる。[ 1 ]
ファウラーは1980年代初頭にソフトウェアの仕事に携わり始めました。1986年に大学を卒業後、1991年までクーパーズ&ライブランドでソフトウェア開発の仕事に従事しました。 [ 5 ] 2000年には、システム統合およびコンサルティング会社であるThoughtWorksに入社し、[ 1 ]チーフサイエンティストを務めています。[ 6 ] [ 1 ]
ファウラーはブログとウィキをミックスしたblikiを運営しており、そこで自身を「サンプルを集めることに熱心な一種のソフトウェア植物学者」と表現している。[ 7 ]彼はソフトウェア開発に関する9冊の本を執筆している。彼はアジャイルアライアンスのメンバーであり、 2001年に16人の署名者とともにアジャイルソフトウェア開発マニフェストの作成に貢献した。 [ 8 ]彼は依存性注入という 用語を制御の反転の一形態として普及させた。[ 9 ] [ 10 ]
ファウラーの「ドメイン固有言語」では、個々のドメインに焦点を当てた、小さく構成可能なプログラミング言語について論じている。[ 11 ]: 27 彼は、ドメイン固有言語は、プログラマが完全なプログラミング言語を理解する必要性をなくし、ドメインエキスパートとのコミュニケーションを改善し、タスクの実行をその定義から分離することによって生産性を向上させると主張している。[ 11 ]: 33これらの利点は、新しい言語を学習し、その言語のためのツールを構築するコストと比較される。[ 11 ]: 39
ファウラーは、内部(または埋め込み)ドメイン固有言語と外部ドメイン固有言語の概念を導入しています。内部言語は別の言語のサブセットであり、その外部言語用のツールで実行できます。内部ドメイン固有言語が一般的な言語の例として、 RubyとLispが挙げられています。ファウラーはまた、セマンティックモデルの概念も導入しています。[ 11 ] : 14グラフをレンダリングするための言語であるgraphviz 、 JavaモックフレームワークであるJMock、Webサイトのスタイル要素を指定する言語であるCSS 、オブジェクトリレーショナルマッパーであるHQL、グラフィカルユーザーインターフェイスを指定および変更するために使用される言語であるXAML、テストシナリオを表現する言語であるFIT 、およびソフトウェアを構築するためのツールであるmakeなど、さまざまなドメイン固有言語が紹介されています。 [ 11 ] : 147
本書では、構文解析器、字句解析器、抽象構文木、コード生成を用いて外部ドメイン固有言語を実装する「構文駆動型翻訳」[ 11 ] : 219について論じている。これは、より単純だが機能の劣る「区切り文字駆動型翻訳」とは対照的である。区切り文字駆動型翻訳では、言語は区切り文字で分割し、個々のエントリに基づいてロジックを切り替えることで解釈できるほど単純である。[ 11 ] : 201
内部ドメイン固有言語を実装する方法が議論されており、ネストされた関数呼び出し[ 11 ] : 357、関数呼び出しのシーケンス[ 11 ] : 351、またはメソッドチェーン[ 11 ] : 373に注目しています。[ 12 ]