{"id":2261,"date":"2018-03-01T10:43:16","date_gmt":"2018-03-01T09:43:16","guid":{"rendered":"https:\/\/launix.de\/launix\/?p=2261"},"modified":"2023-07-11T12:23:15","modified_gmt":"2023-07-11T10:23:15","slug":"wie-fop-softwareentwicklung-revolutioniert","status":"publish","type":"post","link":"https:\/\/launix.de\/launix\/wie-fop-softwareentwicklung-revolutioniert\/","title":{"rendered":"Wie FOP Softwareentwicklung revolutioniert"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/launix.de\/launix\/wp-content\/uploads\/2018\/03\/Software-Entwicklung.png\" alt=\"\" width=\"800\" height=\"2000\" class=\"aligncenter size-full wp-image-2269\" srcset=\"https:\/\/launix.de\/launix\/wp-content\/uploads\/2018\/03\/Software-Entwicklung.png 800w, https:\/\/launix.de\/launix\/wp-content\/uploads\/2018\/03\/Software-Entwicklung-120x300.png 120w, https:\/\/launix.de\/launix\/wp-content\/uploads\/2018\/03\/Software-Entwicklung-768x1920.png 768w, https:\/\/launix.de\/launix\/wp-content\/uploads\/2018\/03\/Software-Entwicklung-410x1024.png 410w, https:\/\/launix.de\/launix\/wp-content\/uploads\/2018\/03\/Software-Entwicklung-600x1500.png 600w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>Software-Bibliotheken sollen normalerweise immer wieder verwendete Funktionen vorhalten. Doch leider werden heutige Programmiersprachen diesem Prinzip <strong>nicht mehr gerecht<\/strong>. Warum ist das so?<\/p>\n<p>Heutige Programmiersprachen kapseln Funktionalit\u00e4t von anderen Software-Bestandteilen ab. So gibt es eine Extra-Bibliothek f\u00fcr die GUI-Komponenten, eine Extra-Bibliothek f\u00fcr den Datenbank-Zugriff und noch einen Code-Generator, um automatisch Klassen anzulegen, die mit der Datenbank gekoppelt sind (ORM). Doch das geht noch nicht weit genug: Noch immer ist die <strong>Diskrepanz<\/strong> zwischen dem Ausdr\u00fccken eines Kundenwunsches (1 Satz) und dem entstandenen Code (10-50 Zeilen \u00c4nderung) zu gro\u00df!<\/p>\n<p>Bei FOP ist das \u00dcbersetzungsverh\u00e4ltnis von Anforderung zu Code 1:1. Sagt der Kunde &#8220;Ich will ein CRM mit Rechnungsstellung&#8221;, ist das in FOP-Code &#8220;CRM<>. Rechnungsstellung<>.&#8221;. Will der Kunde noch eine Spalte &#8220;Geburtstag&#8221; zus\u00e4tzlich im Kunden, ist das im FOP-Code: &#8220;DescriptionColumn&lt;kunde, geburtstag, Geburtsdatum, date&gt;&#8221;. Um die Implementierung in Backend, UI usw. k\u00fcmmert sich der <strong>Compiler<\/strong>.<\/p>\n<p>In betriebswirtschaftlichen Zahlen gerechnet: Anstatt in 30 Minuten, ist die neue Spalte in 5 Minuten umgesetzt. Eine Kostenersparnis um den <strong>Faktor 6<\/strong>. Bei dem Beispiel Rechnungsstellung ist es sogar noch heftiger: Anstatt mehrere Manntage an Rechnungsstellung (Posten-Editor, PDF-Generierung) zu sitzen, aktiviert man in FOP einfach das Feature &#8220;Rechnungsstellung&#8221; aus der Bibliothek und ist <strong>in 1h fertig<\/strong> nebst individuellem Rechnungs-Layout. Das kann FOP n\u00e4mlich auch beliebig anpassen.<\/p>\n<p>Die Vorteile zusammengefasst:<\/p>\n<ul>\n<li>Zur fertigen Software in weniger Zeit<\/li>\n<li>mit weniger Aufwand<\/li>\n<li>mit weniger Kosten<\/li>\n<li>Fehlerbehebung, Test und Kompatibilit\u00e4t wird von der FOP-Bibliothek gew\u00e4hrleistet<\/li>\n<\/ul>\n<p>Der FOP-Compiler l\u00e4sst sich auf alle g\u00e4ngigen Programmiersprachen anwenden. Eine programmiersprachenspezifische und UI-Methoden-spezifische Bibliothek programmiert den Code f\u00fcr Sie nach vorgegebener Konvention. Sie <strong>spezifizieren<\/strong> nur noch die <strong>Kunden-Anforderungen<\/strong>.<\/p>\n<p><a href=\"https:\/\/launix.de\/launix\/software-entwicklung\/feature-oriented-programming\/\" rel=\"noopener\" target=\"_blank\">Mehr Infos zu FOP<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Software-Bibliotheken sollen normalerweise immer wieder verwendete Funktionen vorhalten. Doch leider werden heutige Programmiersprachen diesem Prinzip nicht mehr gerecht. Warum ist das so? Heutige Programmiersprachen kapseln Funktionalit\u00e4t von anderen Software-Bestandteilen ab. So gibt es eine Extra-Bibliothek f\u00fcr die GUI-Komponenten, eine Extra-Bibliothek f\u00fcr den Datenbank-Zugriff und noch einen Code-Generator, um automatisch Klassen anzulegen, die mit der Datenbank&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"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":[135],"tags":[],"class_list":["post-2261","post","type-post","status-publish","format-standard","hentry","category-launix","single-item"],"featured_image_urls_v2":{"full":"","thumbnail":"","medium":"","medium_large":"","large":"","1536x1536":"","2048x2048":"","trp-custom-language-flag":"","xs-thumb":"","appku-shop-single":""},"post_excerpt_stackable_v2":"<p>Software-Bibliotheken sollen normalerweise immer wieder verwendete Funktionen vorhalten. Doch leider werden heutige Programmiersprachen diesem Prinzip nicht mehr gerecht. Warum ist das so? Heutige Programmiersprachen kapseln Funktionalit\u00e4t von anderen Software-Bestandteilen ab. So gibt es eine Extra-Bibliothek f\u00fcr die GUI-Komponenten, eine Extra-Bibliothek f\u00fcr den Datenbank-Zugriff und noch einen Code-Generator, um automatisch Klassen anzulegen, die mit der Datenbank gekoppelt sind (ORM). Doch das geht noch nicht weit genug: Noch immer ist die Diskrepanz zwischen dem Ausdr\u00fccken eines Kundenwunsches (1 Satz) und dem entstandenen Code (10-50 Zeilen \u00c4nderung) zu gro\u00df! Bei FOP ist das \u00dcbersetzungsverh\u00e4ltnis von Anforderung zu Code 1:1. Sagt der Kunde &#8220;Ich&hellip;<\/p>\n","category_list_v2":"<a href=\"https:\/\/launix.de\/launix\/category\/launix\/\" rel=\"category tag\">Launix<\/a>","author_info_v2":{"name":"Carl-Philip H\u00e4nsch","url":"https:\/\/launix.de\/launix\/author\/carli\/"},"comments_num_v2":"0 comments","uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"trp-custom-language-flag":false,"xs-thumb":false,"appku-shop-single":false},"uagb_author_info":{"display_name":"Carl-Philip H\u00e4nsch","author_link":"https:\/\/launix.de\/launix\/author\/carli\/"},"uagb_comment_info":0,"uagb_excerpt":"Software-Bibliotheken sollen normalerweise immer wieder verwendete Funktionen vorhalten. Doch leider werden heutige Programmiersprachen diesem Prinzip nicht mehr gerecht. Warum ist das so? Heutige Programmiersprachen kapseln Funktionalit\u00e4t von anderen Software-Bestandteilen ab. So gibt es eine Extra-Bibliothek f\u00fcr die GUI-Komponenten, eine Extra-Bibliothek f\u00fcr den Datenbank-Zugriff und noch einen Code-Generator, um automatisch Klassen anzulegen, die mit der Datenbank...","_links":{"self":[{"href":"https:\/\/launix.de\/launix\/wp-json\/wp\/v2\/posts\/2261","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/launix.de\/launix\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/launix.de\/launix\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/launix.de\/launix\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/launix.de\/launix\/wp-json\/wp\/v2\/comments?post=2261"}],"version-history":[{"count":9,"href":"https:\/\/launix.de\/launix\/wp-json\/wp\/v2\/posts\/2261\/revisions"}],"predecessor-version":[{"id":2277,"href":"https:\/\/launix.de\/launix\/wp-json\/wp\/v2\/posts\/2261\/revisions\/2277"}],"wp:attachment":[{"href":"https:\/\/launix.de\/launix\/wp-json\/wp\/v2\/media?parent=2261"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/launix.de\/launix\/wp-json\/wp\/v2\/categories?post=2261"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/launix.de\/launix\/wp-json\/wp\/v2\/tags?post=2261"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}