Кіріспе

Американдық бағдарламашы, автор және қоғамдық спикер.

Оның 1999 жылғы "Рефакторинг" кітабы кодты рефакторингтеу амалын танымал етті. 2004 жылы ол "Презентация моделі" (ПМ) деп аталатын жаңа архитектуралық үлгіні ұсынды.

Өмірбаян

Фаулер Англияның Уолсолл қаласында туып өскен, орта білімін Queen Mary's Grammar School-да алған. 1986 жылы Лондон университетінің колледжін бітірді. 1994 жылы ол Америка Құрама Штаттарына көшіп, Бостон, Массачусетс штатының маңындағы Мелроуз қаласында тұрады. Фаулер 1980-ші жылдардың басында бағдарламалық жасақтама саласында жұмыс істей бастады. 1986 жылы университетті бітіргеннен кейін 1991 жылға дейін Coopers & Lybrand компаниясында бағдарламалық қамтамасыз етуді әзірлеумен айналысты. 2000 жылы ThoughtWorks жүйелерді интеграциялау және консалтингтік компаниясына қосылды.

Фаулер бағдарламалық қамтамасыз етуді дамыту тақырыбында тоғыз кітап жазды. Ол Agile Alliance мүшесі және 2001 жылы 16 автормен бірге Agile Software Development манифестін жасауға атсалысты. Ол блог пен викидің қосындысы – бликіні жүргізеді. Ол Тәуелділік инъекциясын Бақылауды кері бұрудың бір түрі ретінде танымал етті.

Жарияланымдар

1996 жыл. Талдау үлгілері: Қайта пайдалануға болатын нысандық модельдер. Эддисон Уэсли. 1997 жыл. UML Distilled: Стандартты объектілі модельдеу тіліне қысқаша нұсқаулық. Эддисон Уэсли. 1999 жыл. Рефакторинг: Бар кодтың дизайнын жақсарту, Кент Бек, Джон Брант, Уильям Опдике және Дон Робертспен (1999 жылдың маусымы). Эддисон Уэсли. 2000 жыл. Экстремалды бағдарламалауды жоспарлау. Кент Бекпен бірге. Эддисон Уэсли. 2002 жыл. Кәсіпорын қолданба архитектурасының үлгілері. Дэвид Райс, Мэтью Фоммел, Эдвард Хиатт, Роберт Ми және Рэнди Стаффордпен бірге. Эддисон Уэсли. 2010 жыл. Доменге арналған тілдер. Ребекка Парсонспен бірге. Эддисон Уэсли. 2012 жыл. NoSQL Distilled: Көптілді тұрақтылықтың пайда болуына қысқаша нұсқаулық. Прамод Садаладжмен бірге. Эддисон Уэсли. 2013 жыл. Рефакторинг: Ruby Edition. Кент Бек, Шейн Харви және Джей Филдспен бірге. Эддисон Уэсли. 2018 жыл. Рефакторинг: Бар кодтың дизайнын жақсарту, екінші басылым. Кент Бек және Мартин Фаулер. Эддисон Уэсли. .

Доменге тән тілдер

Фаулер «Domain specific languages» деген кітабында Domain specific languages, DSL туралы баяндайды. DSL-дер құрастырылатын бағдарламалау тілдері ретінде сипатталады, олардың назары нақты бір салаға шоғырланған және шектеулі мүмкіндіктерге ие. DSL бағдарламашының толық бағдарламалау тілін түсіну қажеттілігін жою арқылы өнімділікті арттырады, сала мамандарымен байланыс құралын ұсынып, міндетті орындау жолын міндеттің өзінен ажыратады деп саналады. Бұл артықшылықтар жаңа тілді үйрену және осы тіл үшін құралдар жасау шығындарымен, сондай-ақ әртүрлі тілдерге байланысты оқшауланумен және DSL-де қолданылатын абстракциялар міндетке сәйкес келмеуімен теңдестіріледі. Фаулер ішкі (немесе кіріктірілген) және сыртқы DSL тұжырымдамасын енгізеді, мұнда ішкі DSL басқа тілдің ішкі жиыны болып табылады және сыртқы тілдің құралдарымен орындалуы мүмкін. Ruby және Lisp ішкі DSL-дердің кең таралған мысалдары ретінде келтіріледі. Ол сондай-ақ DSL-дің орындалуын анықтайтын Семантикалық модель туралы идеяны ұсынады. DSL-дің әртүрлі мысалдары келтірілген, соның ішінде graphviz – графиктерді көрсетуге арналған тіл; JMock – Java-дағы мақтау жүйесі; CSS – веб-сайттың стильдік элементтерін анықтауға арналған тіл; HQL – Java-дағы объектілік реляциялық бейнелеуші; XAML – графикалық пайдаланушы интерфейстерін анықтау және өзгерту үшін қолданылатын тіл; FIT – сынақ сценарийларын бейнелеуге арналған тіл; және make – бағдарламалық құралдарды құру құралы. Кітапта сыртқы DSL-ді parser-лер, lexer-лер, абстрактілі синтаксистік ағаштар және кодты құру сияқты құралдарды пайдаланып іске асыру жолдары талқыланады, бұл «синтаксистік басқаруға негізделген аударма» деп аталады. Бұл «делимитерлік басқаруға негізделген аудармамен» салыстырылады, ол қарапайым болғамен, азырақ қуатты. Мұнда тіл жеке жазбаларға негізделген делимитерлерге бөліну және логиканы ауыстыру арқылы түсіндіруге жеткілікті қарапайым. Ішкі DSL-ді іске асыру жолдары талқыланады, соның ішінде ұялы функцияларды шақыру, функцияларды шақыру тізбегі немесе әдіс тізбегіне ерекше назар аударылады.