{"id":2456,"date":"2018-08-16T20:15:04","date_gmt":"2018-08-16T18:15:04","guid":{"rendered":"https:\/\/launix.de\/launix\/?p=2456"},"modified":"2023-07-11T08:23:40","modified_gmt":"2023-07-11T06:23:40","slug":"fop-ein-low-code-tool-das-php-generiert","status":"publish","type":"post","link":"https:\/\/launix.de\/launix\/en\/fop-ein-low-code-tool-das-php-generiert\/","title":{"rendered":"FOP &#8211; ein Low Code Tool, das PHP generiert"},"content":{"rendered":"<p>FOP &#8211; Feature Oriented Programming &#8211; der Name ist Programm.<!--more--><\/p>\n<p>Traditionelle Programmiersprachen basieren auf imperativer Befehls-Abarbeitung. S\u00e4mtliche Abstraktion und Modularisierung bezieht sich darauf, Befehlsketten miteinander zu verkn\u00fcpfen.<\/p>\n<p>Nun sind aber die Probleme der Kunden nur schlecht in Befehlsketten von Funktionsaufrufen \u00fcbersetzbar. Jeder Kunde denkt in seiner eigenen Problemwelt, die man auch <strong>Dom\u00e4ne<\/strong> nennt. Um genau diesen dom\u00e4nenspezifischen Probleme passgenau l\u00f6sen zu k\u00f6nnen, haben sich <strong>dom\u00e4nenspezifische Sprachen<\/strong> etabliert.<\/p>\n<p>Diese Sprachen k\u00f6nnen Probleme direkt ausdr\u00fccken. Ein paar Beispiele:<\/p>\n<ul>\n<li>Eine Datenbank-DSL kann Daten, ihre Beziehungen und Daten-Interaktionen beschreiben<\/li>\n<li>Eine medizinische DSL kann Wirkstoffe und deren Interaktion beschreiben<\/li>\n<li>Eine Industrie-4.0-DSL kann Maschinen, F\u00f6rderb\u00e4nder und Greifarme, sowie deren Aufgaben und Zusammenarbeit beschreiben<\/li>\n<li>Eine Workflow-DSL kann Abl\u00e4ufe im Unternehmen darstellen<\/li>\n<\/ul>\n<p>Am Ende m\u00fcssen die DSLs wieder in Code bzw. berechnete Ergebnisse umgewandelt werden. Dabei hilft der FOP-Compiler. Dem FOP-Compiler kann man beliebig neue DSLs beibringen, die dieser dann in Code \u00fcbersetzen kann. Damit werden ganze Klassen von Problemen einfacher l\u00f6sbar als auf dem &#8220;h\u00e4ndischen&#8221; Weg.<\/p>\n<p>Das gr\u00f6\u00dfte Beispiel bietet unser PHP+MySQL-Generator von FOP: Mit ihm kann man ERP- und CRM-Konstellationen zusammenklicken, die anschlie\u00dfend zu Software werden.<\/p>","protected":false},"excerpt":{"rendered":"<p>FOP &#8211; Feature Oriented Programming &#8211; der Name ist Programm.<\/p>","protected":false},"author":2,"featured_media":1829,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","footnotes":""},"categories":[128],"tags":[],"class_list":["post-2456","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programming","single-item"],"uagb_featured_image_src":{"full":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2017\/02\/student-849825_1920.jpg",1920,1280,false],"thumbnail":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2017\/02\/student-849825_1920-150x150.jpg",150,150,true],"medium":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2017\/02\/student-849825_1920-300x200.jpg",300,200,true],"medium_large":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2017\/02\/student-849825_1920-768x512.jpg",751,501,true],"large":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2017\/02\/student-849825_1920-1024x683.jpg",751,501,true],"1536x1536":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2017\/02\/student-849825_1920.jpg",1536,1024,false],"2048x2048":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2017\/02\/student-849825_1920.jpg",1920,1280,false],"trp-custom-language-flag":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2017\/02\/student-849825_1920.jpg",18,12,false],"xs-thumb":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2017\/02\/student-849825_1920.jpg",64,43,false],"appku-shop-single":["https:\/\/launix.de\/launix\/wp-content\/uploads\/2017\/02\/student-849825_1920.jpg",620,413,false]},"uagb_author_info":{"display_name":"Carl-Philip H\u00e4nsch","author_link":"https:\/\/launix.de\/launix\/en\/author\/carli\/"},"uagb_comment_info":0,"uagb_excerpt":"FOP &#8211; Feature Oriented Programming &#8211; der Name ist Programm.","_links":{"self":[{"href":"https:\/\/launix.de\/launix\/en\/wp-json\/wp\/v2\/posts\/2456","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/launix.de\/launix\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/launix.de\/launix\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/launix.de\/launix\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/launix.de\/launix\/en\/wp-json\/wp\/v2\/comments?post=2456"}],"version-history":[{"count":3,"href":"https:\/\/launix.de\/launix\/en\/wp-json\/wp\/v2\/posts\/2456\/revisions"}],"predecessor-version":[{"id":2461,"href":"https:\/\/launix.de\/launix\/en\/wp-json\/wp\/v2\/posts\/2456\/revisions\/2461"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/launix.de\/launix\/en\/wp-json\/wp\/v2\/media\/1829"}],"wp:attachment":[{"href":"https:\/\/launix.de\/launix\/en\/wp-json\/wp\/v2\/media?parent=2456"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/launix.de\/launix\/en\/wp-json\/wp\/v2\/categories?post=2456"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/launix.de\/launix\/en\/wp-json\/wp\/v2\/tags?post=2456"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}