{"id":12515,"date":"2024-04-15T09:14:00","date_gmt":"2024-04-15T07:14:00","guid":{"rendered":"https:\/\/apriko.com\/de\/?post_type=detail-page&#038;p=12515"},"modified":"2024-11-14T14:53:46","modified_gmt":"2024-11-14T12:53:46","slug":"behavior-driven-development","status":"publish","type":"detail-page","link":"https:\/\/apriko.com\/de\/blog\/behavior-driven-development\/","title":{"rendered":"Behavior Driven Development"},"content":{"rendered":"\n<section id=\"detail-main-block-66cd7dcc72503\" class=\"section section-detail\">\n<style>\r\n    @media only screen and (min-width: 768px) {\r\n        #detail-main-block-66cd7dcc72503{ padding-top:0px !important;padding-bottom:15px !important;}\r\n    }\r\n\r\n    @media only screen and (max-width: 767px) {\r\n        #detail-main-block-66cd7dcc72503{ padding-top:0px !important;padding-bottom:15px !important;}\r\n    }\r\n<\/style>\n\t<div class=\"container\">\n        <ul class=\"breadcrumbs\"><li><a href=\"https:\/\/apriko.com\/de\/\">Apriko<\/a><\/li><\/ul>\n\t\t<div>\n\t\t\t<div class=\"detail-info__content\">\n                \n                \n\t\t\t\t\n\t\t\t\t<div class=\"detail-article__title\">\n                                        <h3 class=\"title-4\">Software-Regressionen &#8211; ein Innovationshindernis <\/h3>\n                    \n                    \t\t\t\t<\/div>\n\n                \t\t\t\t<div class=\"text-block\">\n                    <p>In der heutigen Softwareentwicklung stehen Teams vor der Herausforderung, sicherzustellen, dass ihre Systeme nahtlos mit unterschiedlichen, oft komplexen Abl\u00e4ufen und Logiken zusammenarbeiten. Diese Systeme m\u00fcssen zudem mit einer Vielzahl an Softwarel\u00f6sungen kompatibel sein, die regelm\u00e4ssig aktualisiert werden. Allerdings besteht bei diesen Updates das Risiko, dass zuvor reibungslos funktionierende Prozesse durch \u00c4nderungen im Quellcode pl\u00f6tzlich nicht mehr ordnungsgem\u00e4ss ablaufen.<\/p>\n<p>Solche R\u00fcckschritte, bekannt als Software-Regressionen, k\u00f6nnen auftreten, wenn neue Funktionen hinzugef\u00fcgt, Software-Updates eingespielt oder fr\u00fchere Fehler behoben werden. Da Software und Schnittstellen sich kontinuierlich weiterentwickeln, steigt die Gefahr, dass jede \u00c4nderung unerwartete Probleme verursacht.<\/p>\n<p>Mehrere Faktoren versch\u00e4rfen das Problem der Software-Regressionen erheblich: Wissensverluste, schnell wechselnde Technologien und eine wachsende Codebasis erschweren es den Entwicklerinnen und Entwicklern, alle Auswirkungen einer \u00c4nderung vollst\u00e4ndig vorherzusehen. Dies f\u00fchrt zu einer Zur\u00fcckhaltung bei Optimierungen und beim Austausch veralteter Softwarekomponenten.<\/p>\n<p>Daraus resultiert oft eine verl\u00e4ngerte Testdauer, die dazu f\u00fchren kann, dass selbst kleinere \u00c4nderungen mehrere Monate an Testzeit erfordern. In extremen F\u00e4llen kann dies so weit gehen, dass kaum noch \u00c4nderungen oder neue Funktionen entwickelt werden, da die Aufw\u00e4nde f\u00fcr Tests und Validierung unverh\u00e4ltnism\u00e4ssig hoch sind. Dies schr\u00e4nkt die Innovationskraft der Softwareentwicklung erheblich ein.<\/p>\n\t\t\t\t<\/div>\n                \n                \t\t\t<\/div>\n\t\t<\/div>\n        \n        \r\n\t<\/div>\n<\/section>\n\n\n<section id=\"detail-main-block-66cd7dcc7265e\" class=\"section section-detail\">\n<style>\r\n    @media only screen and (min-width: 768px) {\r\n        #detail-main-block-66cd7dcc7265e{ padding-top:15px !important;padding-bottom:30px !important;}\r\n    }\r\n\r\n    @media only screen and (max-width: 767px) {\r\n        #detail-main-block-66cd7dcc7265e{ padding-top:15px !important;padding-bottom:30px !important;}\r\n    }\r\n<\/style>\n\t<div class=\"container\">\n        \n\t\t<div>\n\t\t\t<div class=\"detail-info__content\">\n                \n                \n\t\t\t\t\n\t\t\t\t<div class=\"detail-article__title\">\n                                        <h3 class=\"title-4\">Behavior Driven Development &#8211; automatisierte Tests und klare Kommunikation<\/h3>\n                    \n                    \t\t\t\t<\/div>\n\n                \t\t\t\t<div class=\"text-block\">\n                    <p>Bei Apriko setzen wir auf den Ansatz des Behavior Driven Development (BDD). Das Ziel der verhaltensgetriebenen Softwareentwicklung besteht darin, die Zusammenarbeit zwischen dem Entwicklerteam und dem Business mithilfe einer gemeinsamen Sprache zu vereinfachen. Dadurch wird ein einheitliches Verst\u00e4ndnis geschaffen und das Testing automatisiert.<\/p>\n<p>Das Verhalten der Anwendung steuert methodisch den Designprozess. Die ubiquit\u00e4re Sprache \u00fcbersetzt dieses Verhalten in Elemente, die eine Analyse des Codes sowie nachfolgende Akzeptanztests schon vor Fertigstellung der Software erm\u00f6glichen. Die Automatisierung des Testens verbessert die Qualit\u00e4tssicherung und beschleunigt die Markteinf\u00fchrung.<\/p>\n<p>Der BDD-Ansatz basiert auf einer dom\u00e4nenspezifischen Syntax, die h\u00e4ufig durch das Gherkin-Format veranschaulicht wird. Diese Syntax folgt dem \u201eGiven-When-Then\u201c-Modell:<\/p>\n<ul>\n<li><strong>Given<\/strong>: Die Ausgangsbedingungen f\u00fcr den Test.<\/li>\n<li><strong>When<\/strong>: Die Schritte, die w\u00e4hrend des Tests durchgef\u00fchrt werden.<\/li>\n<li><strong>Then<\/strong>: Die Ergebnisse, die \u00fcberpr\u00fcft werden m\u00fcssen, um sicherzustellen, dass die Software das gew\u00fcnschte Verhalten zeigt.<\/li>\n<\/ul>\n<p>Der Vorteil von BDD liegt darin, dass die Software nicht durch umfangreiche und komplexe Spezifikationen beschrieben wird, sondern durch klare, verst\u00e4ndliche Beispiele. Diese sind so formuliert, dass sie f\u00fcr alle Beteiligten nachvollziehbar sind und Missverst\u00e4ndnisse weitgehend ausgeschlossen werden. Die Beispiele sind so strukturiert, dass sie direkt in automatisierte Akzeptanztests \u00fcberf\u00fchrt werden k\u00f6nnen.<\/p>\n<picture> <img decoding=\"async\" class=\"attachment-full size-full\" src=\"https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/08\/gherkin-sample-bdd-engineering-apriko.svg\" alt=\"\" \/><\/picture>\n<p>Im .NET-Umfeld wird BDD oft durch SpecFlow unterst\u00fctzt. SpecFlow erm\u00f6glicht es, in nat\u00fcrlicher Sprache verfasste Softwarekriterien, die gem\u00e4ss der Gherkin-Syntax in Feature-Dateien dokumentiert sind, in ausf\u00fchrbaren Code zu \u00fcberf\u00fchren. Dies vereinfacht die Durchf\u00fchrung automatisierter Tests und bietet eine transparente \u00dcbersicht \u00fcber den Teststatus \u2013 ob Tests erfolgreich waren, fehlgeschlagen sind oder noch nicht implementiert wurden. Dadurch erhalten Entwicklerinnen und Entwickler eine pr\u00e4zise und aktuelle Dokumentation des Softwarezustands und der Akzeptanzkriterien, was Unsicherheiten hinsichtlich fehlerhaften Verhaltens oder veralteter Dokumentationen effektiv eliminiert.<\/p>\n<picture> <img decoding=\"async\" class=\"attachment-full size-full\" src=\"https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/08\/stepdefinition-sample-bdd-engineering-apriko.svg\" alt=\"\" \/><\/picture>\n\t\t\t\t<\/div>\n                \n                \t\t\t<\/div>\n\t\t<\/div>\n        \n        \r\n\t<\/div>\n<\/section>\n\n\n<section id=\"detail-main-block-66cd7dcc727af\" class=\"section section-detail\">\n<style>\r\n    @media only screen and (min-width: 768px) {\r\n        #detail-main-block-66cd7dcc727af{ padding-top:15px !important;padding-bottom:30px !important;}\r\n    }\r\n\r\n    @media only screen and (max-width: 767px) {\r\n        #detail-main-block-66cd7dcc727af{ padding-top:15px !important;padding-bottom:30px !important;}\r\n    }\r\n<\/style>\n\t<div class=\"container\">\n        \n\t\t<div>\n\t\t\t<div class=\"detail-info__content\">\n                \n                \n\t\t\t\t\n\t\t\t\t<div class=\"detail-article__title\">\n                                        <h3 class=\"title-4\">Komplexit\u00e4tsreduktion, klare Schnittstellen und Entkopplung<\/h3>\n                    \n                    \t\t\t\t<\/div>\n\n                \t\t\t\t<div class=\"text-block\">\n                    <p>Wir verfolgen einen API-first-Ansatz, bei dem das API im Mittelpunkt steht. Bevor wir eine User Story umsetzen oder eine Zeile Code schreiben, wird das komplette Verhalten \u2013 einschliesslich positiver F\u00e4lle, Fehlerf\u00e4lle, Validierungen, Operationen und bekannter Randf\u00e4lle \u2013 in Feature-Files im Gherkin-Format konzipiert und spezifiziert.<\/p>\n<p>Um die gemeinsame Sprache m\u00f6glichst effizient zu gestalten, haben wir spezifische Steps definiert und das Verhalten dieser Steps einheitlich implementiert. Das erm\u00f6glicht es uns, Tests basierend auf den Spezifikationen zu automatisieren, ohne eine Zeile Testcode zu schreiben.<\/p>\n<picture> <img decoding=\"async\" class=\"attachment-full size-full\" src=\"https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/08\/steps-bdd-engineering-apriko.svg\" alt=\"\" \/><\/picture>\n<p>Mit diesen standardisierten Elementen lassen sich alle denkbaren API-Verhalten definieren und \u00fcberpr\u00fcfen.<\/p>\n<picture><img decoding=\"async\" class=\"attachment-full size-full\" src=\"https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/08\/bankaccount-sample-bdd-engineering-apriko.svg\" alt=\"\" \/><\/picture> <picture> <img decoding=\"async\" class=\"attachment-full size-full\" src=\"https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/08\/invalid-sample-bdd-engineering-apriko.svg\" alt=\"\" \/><\/picture>\n<p>&nbsp;<\/p>\n<p>Aus den Operations-Schritten (When) in der Spezifikation generieren wir HTTP-Requests und verwenden die HTTP-Response zur Validierung in den \u00dcberpr\u00fcfungs-Schritten (Then). Die in der Spezifikation enthaltenen Tabellen werden in das Payload f\u00fcr die HTTP-Requests \u00fcberf\u00fchrt, w\u00e4hrend die Tabellen aus den \u00dcberpr\u00fcfungs-Schritten entsprechend serialisiert werden, um den Response-Content zu vergleichen. Dabei konvertieren wir die Tabellen in die ben\u00f6tigten Formate wie JSON, XML, etc.<\/p>\n<p>Wir verwenden auch standardisierte Steps, um beispielsweise unsere CSV-, PDF- oder Word-Export-Inhalte zu vergleichen oder externe APIs zu mocken bzw. zu simulieren.<\/p>\n<p>Damit die Szenarien und die daraus folgenden Tests in einem Service nicht von anderen Services abh\u00e4ngig sind, haben wir einen Step entwickelt, mit dem wir eine Event-Message in den Event-Bus stellen k\u00f6nnen.<\/p>\n<picture> <img decoding=\"async\" class=\"attachment-full size-full\" src=\"https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/08\/model-message-sample-bdd-engineering-apriko.svg\" alt=\"\" \/><\/picture>\n<p>So sind wir in der Lage, in den Tests und in der Konzeption die Message als Schnittstelle zu anderen Services zu betrachten, ohne Details \u00fcber andere Dom\u00e4nen oder Services kennen zu m\u00fcssen. Das verringert die Komplexit\u00e4t, definiert eine klare Schnittstelle und stellt die Entkopplung weiter sicher.<\/p>\n<p>F\u00fcr jedes Szenario wird automatisch eine isolierte Umgebung samt Datenbank mit dem aktuellen Code-Stand der Software bereitgestellt. Aus der in Gherkin geschriebenen Syntax werden wie oben beschrieben HTTP-Requests generiert und im Sinne eines Blackbox-Tests gegen unsere API gepr\u00fcft.<\/p>\n<p>Die Tests laufen vollautomatisch bei jeder Code-\u00c4nderung nach den klassischen Unit-Tests und wir erhalten innerhalb von 15 Minuten Feedback, ob wir Regressionen verursacht haben. Dabei werden in wenigen Minuten mehrere Tausend Szenarien ausgef\u00fchrt und alle Funktionen zu hundert Prozent auf ihr Verhalten getestet. Wenn keine Regressionen bestehen und ein Feature unsere weiteren Qualit\u00e4tsanforderungen wie z. B. Code-Review oder explorative Testing bestanden hat, kann es <a href=\"https:\/\/apriko.com\/de\/blog\/devops-bei-apriko\/\">auf Knopfdruck in die Produktion ausgerollt werden<\/a>. In unserer <a href=\"https:\/\/apriko.com\/de\/blog\/plattform-fuer-moderne-enterprise-anwendungen\/\" rel=\"noopener\">Gesamtarchitektur<\/a>, die auf Microservices und modellgetriebener Architektur mit selbst entwickelten <a href=\"https:\/\/apriko.com\/de\/blog\/schneller-und-besser-zum-ziel-mit-automatisierter-codegenerierung\/\">Code-Generatoren<\/a> basiert, macht die Spezifikation achtzig Prozent der gesamten Codebasis aus. Dies ist eine beachtliche Bilanz und unterstreicht die Wirksamkeit unserer Designans\u00e4tze und deren Umsetzung.<\/p>\n\t\t\t\t<\/div>\n                \n                \t\t\t<\/div>\n\t\t<\/div>\n        \n        \r\n\t<\/div>\n<\/section>\n\n\n<section id=\"detail-main-block-66cd7dcc7289c\" class=\"section section-detail\">\n<style>\r\n    @media only screen and (min-width: 768px) {\r\n        #detail-main-block-66cd7dcc7289c{ padding-top:0px !important;padding-bottom:15px !important;}\r\n    }\r\n\r\n    @media only screen and (max-width: 767px) {\r\n        #detail-main-block-66cd7dcc7289c{ padding-top:0px !important;padding-bottom:15px !important;}\r\n    }\r\n<\/style>\n\t<div class=\"container\">\n        \n\t\t<div>\n\t\t\t<div class=\"detail-info__content\">\n                \n                \n\t\t\t\t\n\t\t\t\t<div class=\"detail-article__title\">\n                                        <h3 class=\"title-4\">Fazit: Behavior Driven Development \u2013 ein anspruchsvoller Weg zu nachhaltigem Erfolg<\/h3>\n                    \n                    \t\t\t\t<\/div>\n\n                \t\t\t\t<div class=\"text-block\">\n                    <p>Behavior Driven Development ist ein echter Gamechanger, wenn es korrekt angewendet und konsequent umgesetzt wird. Der damit verbundene Aufwand darf jedoch nicht untersch\u00e4tzt werden und sollte sorgf\u00e4ltig eingeplant werden, wobei auch die Unterst\u00fctzung des Managements essenziell ist. Die konsequente Erstellung der Spezifikation als Anforderungs- und Designartefakt dient als Treiber f\u00fcr die nachgelagerte Entwicklung. Die Erstellung auf diesem Detaillierungsgrad ist eine abstrakte und anspruchsvolle Arbeit, die erfahrene Entwicklerinnen und Entwickler mit den entsprechenden F\u00e4higkeiten erfordert. Wichtig ist, den eingeschlagenen Weg konsequent zu verfolgen; L\u00fccken in der Spezifikation mindern die Aussagekraft der Regressionstests erheblich. Die Investition in diesem Ansatz zahlt sich jedoch schnell in Form langlebiger Produkte aus und kann einen echten Wettbewerbsvorteil bieten.<\/p>\n\t\t\t\t<\/div>\n                \n                \t\t\t<\/div>\n\t\t<\/div>\n        \n        \r\n\t<\/div>\n<\/section>\n\n\n<section id=\"contact-660bd224c9d26\" class=\"section\">\n<style>\r\n    @media only screen and (min-width: 768px) {\r\n        #contact-660bd224c9d26{ padding-top:70px !important;padding-bottom:px !important;}\r\n    }\r\n\r\n    @media only screen and (max-width: 767px) {\r\n        #contact-660bd224c9d26{ padding-top:70px !important;padding-bottom:px !important;}\r\n    }\r\n<\/style>\n\t<div class=\"container\">\n                \n\t\t<div class=\"contact-block\">\n\t\t\t<div class=\"contact-block__cont contact-info\">\n                \t\t\t\t<h3 class=\"contact-info__title\">Neugierig geworden? Dann melde dich bei uns!<\/h3>\n                                \t\t\t\t<div class=\"contact-info__name\">Thaya Selvarajah<\/div>\n                                \t\t\t\t<div class=\"contact-info__sub-title\">Product owner &#038; Solution Architect<\/div>\n                \n\t\t\t\t<div class=\"contact-info__links\">\n                    \t\t\t\t\t<a href=\"mailto:thaya&#064;aprik&#111;&#046;c&#111;m\">thaya&#64;aprik&#111;&#46;c&#111;m<\/a>\n                                        \t\t\t\t<\/div>\n\n                \t\t\t<\/div>\n\n\t\t\t<div class=\"contact-block__media\">\n                \n<div  class=\"contact-block__img\">\n\n<picture>\n    <img decoding=\"async\" width=\"1500\" height=\"1222\" src=\"https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/04\/Thaya-Selvarajah-Contact.jpg\" class=\"attachment-full size-full\" alt=\"Thaya Selvarajah\" srcset=\"https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/04\/Thaya-Selvarajah-Contact.jpg 1500w, https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/04\/Thaya-Selvarajah-Contact-768x626.jpg 768w\" sizes=\"(max-width: 1500px) 100vw, 1500px\" \/><\/picture>\n\n\n\n<\/div>\n\n\t\t\t\t<div class=\"contact-block__decore\">\n\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/apriko.com\/de\/wp-content\/themes\/general\/frontend\/assets\/img\/contacts-decore.svg\" alt=\"\">\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n<\/section>\n\n\n<section id=\"card-slider-66c88a598de9a\" class=\"section section-full\">\n<style>\r\n    @media only screen and (min-width: 768px) {\r\n        #card-slider-66c88a598de9a{ padding-top:100px !important;padding-bottom:px !important;}\r\n    }\r\n\r\n    @media only screen and (max-width: 767px) {\r\n        #card-slider-66c88a598de9a{ padding-top:100px !important;padding-bottom:px !important;}\r\n    }\r\n<\/style>\n\t<div class=\"container\">\n\t\t\t\t\n\t\t<div class=\"cards-slider js-cards-slider\">\n\t\t\t<div class=\"cards-slider-head\">\n\t\t\t\t<div class=\"cards-slider-head__body\">\n                    \n                                        <h2 class=\"title-3\">Mehr gute Gr\u00fcnde f\u00fcr Apriko<\/h2>\n                    \t\t\t\t<\/div>\n\t\t\t\t<div class=\"arrows cards-slider-arrows\">\n\t\t\t\t\t<button type=\"button\" class=\"arrow-btn arrow-btn-prev\">\n\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/apriko.com\/de\/wp-content\/themes\/general\/frontend\/assets\/img\/arrow-left.svg\" alt=\"\">\n\t\t\t\t\t<\/button>\n\t\t\t\t\t<button type=\"button\" class=\"arrow-btn arrow-btn-next\">\n\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/apriko.com\/de\/wp-content\/themes\/general\/frontend\/assets\/img\/arrow-right.svg\" alt=\"\">\n\t\t\t\t\t<\/button>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\n            \t\t\t<div class=\"swiper\">\n\t\t\t\t<div class=\"swiper-wrapper\">\n                                    <div class=\"swiper-slide\">\n\t\t\t\t\t\t\t\t\t\t\n<div class=\"card-container \">\n    <div class=\"card \">\n        <div class=\"card__top\">\n            \n                            \n<div  class=\"card__media\">\n\n<picture>\n    <img decoding=\"async\" width=\"3840\" height=\"2160\" src=\"https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/04\/software-artchitecture-main-image.png\" class=\"attachment-full size-full\" alt=\"\" srcset=\"https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/04\/software-artchitecture-main-image.png 3840w, https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/04\/software-artchitecture-main-image-768x432.png 768w, https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/04\/software-artchitecture-main-image-1536x864.png 1536w, https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/04\/software-artchitecture-main-image-2048x1152.png 2048w\" sizes=\"(max-width: 3840px) 100vw, 3840px\" \/><\/picture>\n\n\n\n<\/div>\n                    <\/div>\n        <div class=\"card__body\">\n            <div class=\"card__head\">\n                <div class=\"card__head-left\">\n                                            <div class=\"card__category\">Engineering<\/div>\n                    \n                                        <h3 class=\"card__title\">Plattform f\u00fcr moderne Enterprise-Anwendungen<\/h3>\n                                    <\/div>\n                                    \r\n<div  class=\"icon icon-35\">\r\n    <img decoding=\"async\" src=\"https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/08\/Engineering-1.svg\" class=\"attachment-35x35 size-35x35\" alt=\"\" \/><\/div>                            <\/div>\n\n            <div class=\"card__ligt-text\">5. April 2024<\/div>\n\n            <div class=\"card__text\">\n                <p>Apriko wurde als Microservice-Applikation entwickelt, um den steigenden Anforderungen an moderne Enterprise-Anwendungen gerecht zu werden.<\/p>\n            <\/div>\n\n            <div class=\"card__footer\">\n                <div class=\"card__action\">\n                    <button type=\"button\" class=\"action-btn js-card-flip\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"13\" height=\"15\" viewBox=\"0 0 13 15\" fill=\"none\">\r\n    <path d=\"M10.8333 15C10.2315 15 9.71991 14.7813 9.29861 14.3438C8.87732 13.9063 8.66667 13.375 8.66667 12.75C8.66667 12.6625 8.67269 12.5719 8.68472 12.4781C8.69676 12.3844 8.71482 12.3 8.73889 12.225L3.64722 9.15C3.44259 9.3375 3.21389 9.48438 2.96111 9.59063C2.70833 9.69688 2.44352 9.75 2.16667 9.75C1.56481 9.75 1.05324 9.53125 0.631944 9.09375C0.210648 8.65625 0 8.125 0 7.5C0 6.875 0.210648 6.34375 0.631944 5.90625C1.05324 5.46875 1.56481 5.25 2.16667 5.25C2.44352 5.25 2.70833 5.30313 2.96111 5.40938C3.21389 5.51562 3.44259 5.6625 3.64722 5.85L8.73889 2.775C8.71482 2.7 8.69676 2.61563 8.68472 2.52188C8.67269 2.42813 8.66667 2.3375 8.66667 2.25C8.66667 1.625 8.87732 1.09375 9.29861 0.65625C9.71991 0.21875 10.2315 0 10.8333 0C11.4352 0 11.9468 0.21875 12.3681 0.65625C12.7894 1.09375 13 1.625 13 2.25C13 2.875 12.7894 3.40625 12.3681 3.84375C11.9468 4.28125 11.4352 4.5 10.8333 4.5C10.5565 4.5 10.2917 4.44688 10.0389 4.34063C9.78611 4.23438 9.55741 4.0875 9.35278 3.9L4.26111 6.975C4.28519 7.05 4.30324 7.13438 4.31528 7.22813C4.32731 7.32188 4.33333 7.4125 4.33333 7.5C4.33333 7.5875 4.32731 7.67813 4.31528 7.77188C4.30324 7.86563 4.28519 7.95 4.26111 8.025L9.35278 11.1C9.55741 10.9125 9.78611 10.7656 10.0389 10.6594C10.2917 10.5531 10.5565 10.5 10.8333 10.5C11.4352 10.5 11.9468 10.7188 12.3681 11.1562C12.7894 11.5938 13 12.125 13 12.75C13 13.375 12.7894 13.9063 12.3681 14.3438C11.9468 14.7813 11.4352 15 10.8333 15Z\" fill=\"none\"\/>\r\n<\/svg>                    <\/button>\n                                        <button type=\"button\" class=\"action-btn bookmark\" data-id=\"12353\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"13\" height=\"17\" viewBox=\"0 0 13 17\" fill=\"none\">\r\n    <path d=\"M0.5 17V1.88889C0.5 1.36944 0.667857 0.924769 1.00357 0.554861C1.33929 0.184954 1.74286 0 2.21429 0H10.7857C11.2571 0 11.6607 0.184954 11.9964 0.554861C12.3321 0.924769 12.5 1.36944 12.5 1.88889V17L6.5 13.4111L0.5 17ZM2.21429 14.1194L6.5 11.3333L10.7857 14.1194V1.88889H2.21429V14.1194Z\" fill=\"none\"\/>\r\n<\/svg>                    <\/button>\n                                    <\/div>\n                <a href=\"https:\/\/apriko.com\/de\/blog\/plattform-fuer-moderne-enterprise-anwendungen\/\" class=\"link-text\">Mehr erfahren<\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n\n            \n<div class=\"card-back card-back--blue share-data\" data-id=\"12353\" data-url=\"https:\/\/apriko.com\/de\/blog\/plattform-fuer-moderne-enterprise-anwendungen\/\" >\n            <h3 class=\"card-back__title\">Artikel teilen<\/h3>\n    \n    <div class=\"share-container\">\n        <ul class=\"share-nav share-step active\">\n            <li>\n                <a href=\"#\" class=\"js-share-copy\">\n                                        <div class=\"icon icon-35\">\n                        <img decoding=\"async\" src=\"https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/06\/url-3.svg\" class=\"attachment-35x35 size-35x35\" alt=\"\" \/>                    <\/div>\n                                        Link kopieren                <\/a>\n            <\/li>\n            <li>\n                <a href=\"#\" class=\"js-share-next\" data-share=\"email\">\n                                        <div class=\"icon icon-35\">\n                        <img decoding=\"async\" src=\"https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/06\/mail-2.svg\" class=\"attachment-35x35 size-35x35\" alt=\"\" \/>                    <\/div>\n                                        Per E-Mail senden                <\/a>\n            <\/li>\n            <li>\n                <a class=\"js-share-linkedin\" href=\"#\" target=\"_blank\">\n                                        <div class=\"icon icon-35\">\n                        <img decoding=\"async\" src=\"https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/06\/logo-linkedin-2.svg\" class=\"attachment-35x35 size-35x35\" alt=\"\" \/>                    <\/div>\n                                        Auf LinkedIn teilen                <\/a>\n            <\/li>\n        <\/ul>\n\n        <div class=\"share-step share-step-email\" data-share-target=\"email\">\n            <form class=\"share-email\">\n                                <h3 class=\"title-sm\">Per E-Mail senden<\/h3>\n                                <div class=\"form-control\">\n                    <input type=\"email\" name=\"email\" class=\"form-control-input\" placeholder=\"E-Mail\">\n                <\/div>\n                <span class=\"valid-message\" style=\"display: none;\">Pflichtfeld<\/span>\n                <span class=\"valid-message invalid-email\" style=\"display: none;\">Bitte korrekte E-Mail angeben<\/span>\n                <div class=\"share-email__bottom\">\n                    <div>\n                        <label class=\"agree\">\n                            <input type=\"checkbox\" class=\"agree__input\">\n                            <span class=\"agree__box\">\n                                Ich akzeptiere die Datenschutzvereinbarung und AGB.                            <\/span>\n                        <\/label>\n                        <span class=\"valid-message\" style=\"display: none;\">Pflichtfeld<\/span>\n                    <\/div>\n                    <div>\n                        <button type=\"button\" class=\"btn btn-secondary js-share-email\"  data-share=\"subscribe\">Senden<\/button>\n                    <\/div>\n                    <span class=\"invalid-message\" style=\"display: none;\">Etwas ist schief gelaufen, versuche es erneut<\/span>\n                <\/div>\n            <\/form>\n        <\/div>\n\n        <div class=\"share-step share-step-subscribe\" data-share-target=\"subscribe\">\n                            <div class=\"share-modal__text\"><p>Der Artikel wurde erfolgreich versendet. M\u00f6chtest du in Zukunft keine Apriko-Inhalte verpassen? Dann melde dich f\u00fcr unseren Newsletter an. <\/p>\n<\/div>\n                                        <h3 class=\"title-sm\">Jetzt zum Newsletter anmelden<\/h3>\n            \n            <form class=\"subscribe\">\n    <div class=\"subscribe-step active\">\n        <div class=\"form-control form-control-w-btn\">\n            <button tupe=\"button\" class=\"form-control-submit apply-btn js-subscribe-step\">\n                <img decoding=\"async\" src=\"https:\/\/apriko.com\/de\/wp-content\/themes\/general\/frontend\/assets\/img\/arrow-right.svg\" alt=\"applay\">\n            <\/button>\n            <input type=\"email\" name=\"email\" class=\"form-control-input required\" placeholder=\"e-mail\">\n        <\/div>\n        <label class=\"agree form-control\">\n            <input type=\"checkbox\" name=\"agree\" class=\"agree__input required\">\n            <span class=\"agree__box\">\n                Ich akzeptiere die Datenschutzbestimmungen.            <\/span>\n        <\/label>\n        <div class=\"step-errors\">\n            <span class=\"valid-message general\" style=\"display: none;\">Pflichtfeld<\/span>\n            <span class=\"valid-message invalid-email\" style=\"display: none;\">Bitte korrekte E-Mail angeben<\/span>\n        <\/div>\n    <\/div>\n\n    <div class=\"subscribe-step\">\n        <div class=\"form-control\">\n            <select class=\"js-select select\" name=\"gender\">\n                <option value=\"0\">Anrede<\/option>\n                <option value=\"Female\">Frau<\/option>\n                <option value=\"Male\">Herr<\/option>\n                <option value=\"Other\">Keine<\/option>\n            <\/select>\n        <\/div>\n        <span class=\"valid-message\" style=\"display: none;\">Pflichtfeld<\/span>\n        <div class=\"form-control\">\n            <input type=\"text\" name=\"name\" class=\"form-control-input\" placeholder=\"First name\">\n        <\/div>\n        <span class=\"valid-message\" style=\"display: none;\">Pflichtfeld<\/span>\n        <div class=\"form-control form-control-w-btn\">\n            <button tupe=\"button\" class=\"form-control-submit apply-btn js-subscribe-step form-mailchimp-subscribe\">\n                <img decoding=\"async\" src=\"https:\/\/apriko.com\/de\/wp-content\/themes\/general\/frontend\/assets\/img\/arrow-right.svg\" alt=\"applay\">\n            <\/button>\n            <input type=\"text\" name=\"surname\" class=\"form-control-input\" placeholder=\"Last Name\">\n        <\/div>\n        <span class=\"valid-message\" style=\"display: none;\">Pflichtfeld<\/span>\n        <span class=\"invalid-message all\" style=\"display: none;\">Etwas ist schief gelaufen, versuche es erneut<\/span>\n        <span class=\"invalid-message pending\" style=\"display: none;\">Wir haben die Best\u00e4tigungs-E-Mail bereits verschickt &#8211; bitte best\u00e4tige deine Anmeldung<\/span>\n        <span class=\"invalid-message registered\" style=\"display: none;\">E-Mail ist bereits registriert, danke<\/span>\n    <\/div>\n\n    <div class=\"subscribe-step\">\n            <div class=\"subscribe__text\">\n            <h4>Herzlichen Dank<\/h4>\n<p>\u00dcberpr\u00fcfe dein E-Mail-Postfach und klicke auf den Best\u00e4tigungslink, den wir dir geschickt haben, um deine Anmeldung abzuschliessen.<\/p>\n        <\/div>\n        <\/div>\n<\/form>        <\/div>\n    <\/div>\n\n    <div class=\"card-back__bottom\">\n        <button class=\"btn btn-outline-w js-card-flip-back\">Schliessen<\/button>\n    <\/div>\n<\/div>    \n    \n    <\/div>\t\t\t\t\t                    <\/div>\n\t\t\t\t                    <div class=\"swiper-slide\">\n\t\t\t\t\t\t\t\t\t\t\n<div class=\"card-container \">\n    <div class=\"card \">\n        <div class=\"card__top\">\n            \n                            \n<div  class=\"card__media\">\n\n<picture>\n    <img decoding=\"async\" width=\"1920\" height=\"1080\" src=\"https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/08\/software-engineer-job.png\" class=\"attachment-full size-full\" alt=\"\" srcset=\"https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/08\/software-engineer-job.png 1920w, https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/08\/software-engineer-job-768x432.png 768w, https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/08\/software-engineer-job-1536x864.png 1536w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><\/picture>\n\n\n\n<\/div>\n                    <\/div>\n        <div class=\"card__body\">\n            <div class=\"card__head\">\n                <div class=\"card__head-left\">\n                                            <div class=\"card__category\">Job<\/div>\n                    \n                                        <h3 class=\"card__title\">Senior\u00a0Full Stack Engineer<\/h3>\n                                    <\/div>\n                                    \r\n<div  class=\"icon icon-35\">\r\n    <img decoding=\"async\" src=\"https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/04\/jobposting.svg\" class=\"attachment-35x35 size-35x35\" alt=\"\" \/><\/div>                            <\/div>\n\n            <div class=\"card__ligt-text\">12. August 2024<\/div>\n\n            <div class=\"card__text\">\n                <p>Als Mitglied eines agilen Kanban Teams treibst du die Dom\u00e4ne voran und pr\u00e4gst Vision, Roadmap und Features. Du implementierst Features vom Backend bis zum Frontend, gestaltest den Prozess aktiv mit und entwickelst Services, APIs und die Engine f\u00fcr Backend, API und Web UI Generierung weiter. Konzeption und Umsetzung von Software-Infrastruktur-Anforderungen mit Fokus auf Clean Code, gute Performance und hohe Testabdeckung.<\/p>\n            <\/div>\n\n            <div class=\"card__footer\">\n                <div class=\"card__action\">\n                    <button type=\"button\" class=\"action-btn js-card-flip\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"13\" height=\"15\" viewBox=\"0 0 13 15\" fill=\"none\">\r\n    <path d=\"M10.8333 15C10.2315 15 9.71991 14.7813 9.29861 14.3438C8.87732 13.9063 8.66667 13.375 8.66667 12.75C8.66667 12.6625 8.67269 12.5719 8.68472 12.4781C8.69676 12.3844 8.71482 12.3 8.73889 12.225L3.64722 9.15C3.44259 9.3375 3.21389 9.48438 2.96111 9.59063C2.70833 9.69688 2.44352 9.75 2.16667 9.75C1.56481 9.75 1.05324 9.53125 0.631944 9.09375C0.210648 8.65625 0 8.125 0 7.5C0 6.875 0.210648 6.34375 0.631944 5.90625C1.05324 5.46875 1.56481 5.25 2.16667 5.25C2.44352 5.25 2.70833 5.30313 2.96111 5.40938C3.21389 5.51562 3.44259 5.6625 3.64722 5.85L8.73889 2.775C8.71482 2.7 8.69676 2.61563 8.68472 2.52188C8.67269 2.42813 8.66667 2.3375 8.66667 2.25C8.66667 1.625 8.87732 1.09375 9.29861 0.65625C9.71991 0.21875 10.2315 0 10.8333 0C11.4352 0 11.9468 0.21875 12.3681 0.65625C12.7894 1.09375 13 1.625 13 2.25C13 2.875 12.7894 3.40625 12.3681 3.84375C11.9468 4.28125 11.4352 4.5 10.8333 4.5C10.5565 4.5 10.2917 4.44688 10.0389 4.34063C9.78611 4.23438 9.55741 4.0875 9.35278 3.9L4.26111 6.975C4.28519 7.05 4.30324 7.13438 4.31528 7.22813C4.32731 7.32188 4.33333 7.4125 4.33333 7.5C4.33333 7.5875 4.32731 7.67813 4.31528 7.77188C4.30324 7.86563 4.28519 7.95 4.26111 8.025L9.35278 11.1C9.55741 10.9125 9.78611 10.7656 10.0389 10.6594C10.2917 10.5531 10.5565 10.5 10.8333 10.5C11.4352 10.5 11.9468 10.7188 12.3681 11.1562C12.7894 11.5938 13 12.125 13 12.75C13 13.375 12.7894 13.9063 12.3681 14.3438C11.9468 14.7813 11.4352 15 10.8333 15Z\" fill=\"none\"\/>\r\n<\/svg>                    <\/button>\n                                        <button type=\"button\" class=\"action-btn bookmark\" data-id=\"12326\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"13\" height=\"17\" viewBox=\"0 0 13 17\" fill=\"none\">\r\n    <path d=\"M0.5 17V1.88889C0.5 1.36944 0.667857 0.924769 1.00357 0.554861C1.33929 0.184954 1.74286 0 2.21429 0H10.7857C11.2571 0 11.6607 0.184954 11.9964 0.554861C12.3321 0.924769 12.5 1.36944 12.5 1.88889V17L6.5 13.4111L0.5 17ZM2.21429 14.1194L6.5 11.3333L10.7857 14.1194V1.88889H2.21429V14.1194Z\" fill=\"none\"\/>\r\n<\/svg>                    <\/button>\n                                    <\/div>\n                <a href=\"https:\/\/apriko.com\/de\/blog\/senior-full-stack-engineer\/\" class=\"link-text\">Mehr erfahren<\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n\n            \n<div class=\"card-back card-back--blue share-data\" data-id=\"12326\" data-url=\"https:\/\/apriko.com\/de\/blog\/senior-full-stack-engineer\/\" >\n            <h3 class=\"card-back__title\">Artikel teilen<\/h3>\n    \n    <div class=\"share-container\">\n        <ul class=\"share-nav share-step active\">\n            <li>\n                <a href=\"#\" class=\"js-share-copy\">\n                                        <div class=\"icon icon-35\">\n                        <img decoding=\"async\" src=\"https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/06\/url-3.svg\" class=\"attachment-35x35 size-35x35\" alt=\"\" \/>                    <\/div>\n                                        Link kopieren                <\/a>\n            <\/li>\n            <li>\n                <a href=\"#\" class=\"js-share-next\" data-share=\"email\">\n                                        <div class=\"icon icon-35\">\n                        <img decoding=\"async\" src=\"https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/06\/mail-2.svg\" class=\"attachment-35x35 size-35x35\" alt=\"\" \/>                    <\/div>\n                                        Per E-Mail senden                <\/a>\n            <\/li>\n            <li>\n                <a class=\"js-share-linkedin\" href=\"#\" target=\"_blank\">\n                                        <div class=\"icon icon-35\">\n                        <img decoding=\"async\" src=\"https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/06\/logo-linkedin-2.svg\" class=\"attachment-35x35 size-35x35\" alt=\"\" \/>                    <\/div>\n                                        Auf LinkedIn teilen                <\/a>\n            <\/li>\n        <\/ul>\n\n        <div class=\"share-step share-step-email\" data-share-target=\"email\">\n            <form class=\"share-email\">\n                                <h3 class=\"title-sm\">Per E-Mail senden<\/h3>\n                                <div class=\"form-control\">\n                    <input type=\"email\" name=\"email\" class=\"form-control-input\" placeholder=\"E-Mail\">\n                <\/div>\n                <span class=\"valid-message\" style=\"display: none;\">Pflichtfeld<\/span>\n                <span class=\"valid-message invalid-email\" style=\"display: none;\">Bitte korrekte E-Mail angeben<\/span>\n                <div class=\"share-email__bottom\">\n                    <div>\n                        <label class=\"agree\">\n                            <input type=\"checkbox\" class=\"agree__input\">\n                            <span class=\"agree__box\">\n                                Ich akzeptiere die Datenschutzvereinbarung und AGB.                            <\/span>\n                        <\/label>\n                        <span class=\"valid-message\" style=\"display: none;\">Pflichtfeld<\/span>\n                    <\/div>\n                    <div>\n                        <button type=\"button\" class=\"btn btn-secondary js-share-email\"  data-share=\"subscribe\">Senden<\/button>\n                    <\/div>\n                    <span class=\"invalid-message\" style=\"display: none;\">Etwas ist schief gelaufen, versuche es erneut<\/span>\n                <\/div>\n            <\/form>\n        <\/div>\n\n        <div class=\"share-step share-step-subscribe\" data-share-target=\"subscribe\">\n                            <div class=\"share-modal__text\"><p>Der Artikel wurde erfolgreich versendet. M\u00f6chtest du in Zukunft keine Apriko-Inhalte verpassen? Dann melde dich f\u00fcr unseren Newsletter an. <\/p>\n<\/div>\n                                        <h3 class=\"title-sm\">Jetzt zum Newsletter anmelden<\/h3>\n            \n            <form class=\"subscribe\">\n    <div class=\"subscribe-step active\">\n        <div class=\"form-control form-control-w-btn\">\n            <button tupe=\"button\" class=\"form-control-submit apply-btn js-subscribe-step\">\n                <img decoding=\"async\" src=\"https:\/\/apriko.com\/de\/wp-content\/themes\/general\/frontend\/assets\/img\/arrow-right.svg\" alt=\"applay\">\n            <\/button>\n            <input type=\"email\" name=\"email\" class=\"form-control-input required\" placeholder=\"e-mail\">\n        <\/div>\n        <label class=\"agree form-control\">\n            <input type=\"checkbox\" name=\"agree\" class=\"agree__input required\">\n            <span class=\"agree__box\">\n                Ich akzeptiere die Datenschutzbestimmungen.            <\/span>\n        <\/label>\n        <div class=\"step-errors\">\n            <span class=\"valid-message general\" style=\"display: none;\">Pflichtfeld<\/span>\n            <span class=\"valid-message invalid-email\" style=\"display: none;\">Bitte korrekte E-Mail angeben<\/span>\n        <\/div>\n    <\/div>\n\n    <div class=\"subscribe-step\">\n        <div class=\"form-control\">\n            <select class=\"js-select select\" name=\"gender\">\n                <option value=\"0\">Anrede<\/option>\n                <option value=\"Female\">Frau<\/option>\n                <option value=\"Male\">Herr<\/option>\n                <option value=\"Other\">Keine<\/option>\n            <\/select>\n        <\/div>\n        <span class=\"valid-message\" style=\"display: none;\">Pflichtfeld<\/span>\n        <div class=\"form-control\">\n            <input type=\"text\" name=\"name\" class=\"form-control-input\" placeholder=\"First name\">\n        <\/div>\n        <span class=\"valid-message\" style=\"display: none;\">Pflichtfeld<\/span>\n        <div class=\"form-control form-control-w-btn\">\n            <button tupe=\"button\" class=\"form-control-submit apply-btn js-subscribe-step form-mailchimp-subscribe\">\n                <img decoding=\"async\" src=\"https:\/\/apriko.com\/de\/wp-content\/themes\/general\/frontend\/assets\/img\/arrow-right.svg\" alt=\"applay\">\n            <\/button>\n            <input type=\"text\" name=\"surname\" class=\"form-control-input\" placeholder=\"Last Name\">\n        <\/div>\n        <span class=\"valid-message\" style=\"display: none;\">Pflichtfeld<\/span>\n        <span class=\"invalid-message all\" style=\"display: none;\">Etwas ist schief gelaufen, versuche es erneut<\/span>\n        <span class=\"invalid-message pending\" style=\"display: none;\">Wir haben die Best\u00e4tigungs-E-Mail bereits verschickt &#8211; bitte best\u00e4tige deine Anmeldung<\/span>\n        <span class=\"invalid-message registered\" style=\"display: none;\">E-Mail ist bereits registriert, danke<\/span>\n    <\/div>\n\n    <div class=\"subscribe-step\">\n            <div class=\"subscribe__text\">\n            <h4>Herzlichen Dank<\/h4>\n<p>\u00dcberpr\u00fcfe dein E-Mail-Postfach und klicke auf den Best\u00e4tigungslink, den wir dir geschickt haben, um deine Anmeldung abzuschliessen.<\/p>\n        <\/div>\n        <\/div>\n<\/form>        <\/div>\n    <\/div>\n\n    <div class=\"card-back__bottom\">\n        <button class=\"btn btn-outline-w js-card-flip-back\">Schliessen<\/button>\n    <\/div>\n<\/div>    \n    \n    <\/div>\t\t\t\t\t                    <\/div>\n\t\t\t\t                    <div class=\"swiper-slide\">\n\t\t\t\t\t\t\t\t\t\t\n<div class=\"card-container \">\n    <div class=\"card card-glossar\">\n        <div class=\"card__top\">\n            \n                            \n<div  class=\"card__media\">\n\n<picture>\n    <img decoding=\"async\" width=\"3840\" height=\"2160\" src=\"https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/08\/backend-code-gen-main-image.png\" class=\"attachment-full size-full\" alt=\"\" srcset=\"https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/08\/backend-code-gen-main-image.png 3840w, https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/08\/backend-code-gen-main-image-768x432.png 768w, https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/08\/backend-code-gen-main-image-1536x864.png 1536w, https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/08\/backend-code-gen-main-image-2048x1152.png 2048w\" sizes=\"(max-width: 3840px) 100vw, 3840px\" \/><\/picture>\n\n\n\n<\/div>\n                    <\/div>\n        <div class=\"card__body\">\n            <div class=\"card__head\">\n                <div class=\"card__head-left\">\n                                            <div class=\"card__category\">Engineering<\/div>\n                    \n                                        <h3 class=\"card__title\">Schneller und besser zum Ziel: Mit automatisierter Codegenerierung<\/h3>\n                                    <\/div>\n                                    \r\n<div  class=\"icon icon-35\">\r\n    <img decoding=\"async\" src=\"https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/08\/Engineering-1.svg\" class=\"attachment-35x35 size-35x35\" alt=\"\" \/><\/div>                            <\/div>\n\n            <div class=\"card__ligt-text\">16. April 2024<\/div>\n\n            <div class=\"card__text\">\n                <p>In der modernen Softwareentwicklung, insbesondere in Microservices-Architekturen, ist die Komplexit\u00e4t hoch. Aber was tun, damit bei einfachen und repetitiven Aufgaben keine Fehler entstehen?<\/p>\n            <\/div>\n\n            <div class=\"card__footer\">\n                <div class=\"card__action\">\n                    <button type=\"button\" class=\"action-btn js-card-flip\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"13\" height=\"15\" viewBox=\"0 0 13 15\" fill=\"none\">\r\n    <path d=\"M10.8333 15C10.2315 15 9.71991 14.7813 9.29861 14.3438C8.87732 13.9063 8.66667 13.375 8.66667 12.75C8.66667 12.6625 8.67269 12.5719 8.68472 12.4781C8.69676 12.3844 8.71482 12.3 8.73889 12.225L3.64722 9.15C3.44259 9.3375 3.21389 9.48438 2.96111 9.59063C2.70833 9.69688 2.44352 9.75 2.16667 9.75C1.56481 9.75 1.05324 9.53125 0.631944 9.09375C0.210648 8.65625 0 8.125 0 7.5C0 6.875 0.210648 6.34375 0.631944 5.90625C1.05324 5.46875 1.56481 5.25 2.16667 5.25C2.44352 5.25 2.70833 5.30313 2.96111 5.40938C3.21389 5.51562 3.44259 5.6625 3.64722 5.85L8.73889 2.775C8.71482 2.7 8.69676 2.61563 8.68472 2.52188C8.67269 2.42813 8.66667 2.3375 8.66667 2.25C8.66667 1.625 8.87732 1.09375 9.29861 0.65625C9.71991 0.21875 10.2315 0 10.8333 0C11.4352 0 11.9468 0.21875 12.3681 0.65625C12.7894 1.09375 13 1.625 13 2.25C13 2.875 12.7894 3.40625 12.3681 3.84375C11.9468 4.28125 11.4352 4.5 10.8333 4.5C10.5565 4.5 10.2917 4.44688 10.0389 4.34063C9.78611 4.23438 9.55741 4.0875 9.35278 3.9L4.26111 6.975C4.28519 7.05 4.30324 7.13438 4.31528 7.22813C4.32731 7.32188 4.33333 7.4125 4.33333 7.5C4.33333 7.5875 4.32731 7.67813 4.31528 7.77188C4.30324 7.86563 4.28519 7.95 4.26111 8.025L9.35278 11.1C9.55741 10.9125 9.78611 10.7656 10.0389 10.6594C10.2917 10.5531 10.5565 10.5 10.8333 10.5C11.4352 10.5 11.9468 10.7188 12.3681 11.1562C12.7894 11.5938 13 12.125 13 12.75C13 13.375 12.7894 13.9063 12.3681 14.3438C11.9468 14.7813 11.4352 15 10.8333 15Z\" fill=\"none\"\/>\r\n<\/svg>                    <\/button>\n                                        <button type=\"button\" class=\"action-btn bookmark\" data-id=\"12435\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"13\" height=\"17\" viewBox=\"0 0 13 17\" fill=\"none\">\r\n    <path d=\"M0.5 17V1.88889C0.5 1.36944 0.667857 0.924769 1.00357 0.554861C1.33929 0.184954 1.74286 0 2.21429 0H10.7857C11.2571 0 11.6607 0.184954 11.9964 0.554861C12.3321 0.924769 12.5 1.36944 12.5 1.88889V17L6.5 13.4111L0.5 17ZM2.21429 14.1194L6.5 11.3333L10.7857 14.1194V1.88889H2.21429V14.1194Z\" fill=\"none\"\/>\r\n<\/svg>                    <\/button>\n                                    <\/div>\n                <a href=\"https:\/\/apriko.com\/de\/blog\/codegenerierung\/\" class=\"link-text\">Mehr erfahren<\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n\n            \n<div class=\"card-back card-back--blue share-data\" data-id=\"12435\" data-url=\"https:\/\/apriko.com\/de\/blog\/codegenerierung\/\" >\n            <h3 class=\"card-back__title\">Artikel teilen<\/h3>\n    \n    <div class=\"share-container\">\n        <ul class=\"share-nav share-step active\">\n            <li>\n                <a href=\"#\" class=\"js-share-copy\">\n                                        <div class=\"icon icon-35\">\n                        <img decoding=\"async\" src=\"https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/06\/url-3.svg\" class=\"attachment-35x35 size-35x35\" alt=\"\" \/>                    <\/div>\n                                        Link kopieren                <\/a>\n            <\/li>\n            <li>\n                <a href=\"#\" class=\"js-share-next\" data-share=\"email\">\n                                        <div class=\"icon icon-35\">\n                        <img decoding=\"async\" src=\"https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/06\/mail-2.svg\" class=\"attachment-35x35 size-35x35\" alt=\"\" \/>                    <\/div>\n                                        Per E-Mail senden                <\/a>\n            <\/li>\n            <li>\n                <a class=\"js-share-linkedin\" href=\"#\" target=\"_blank\">\n                                        <div class=\"icon icon-35\">\n                        <img decoding=\"async\" src=\"https:\/\/apriko.com\/de\/wp-content\/uploads\/sites\/4\/2024\/06\/logo-linkedin-2.svg\" class=\"attachment-35x35 size-35x35\" alt=\"\" \/>                    <\/div>\n                                        Auf LinkedIn teilen                <\/a>\n            <\/li>\n        <\/ul>\n\n        <div class=\"share-step share-step-email\" data-share-target=\"email\">\n            <form class=\"share-email\">\n                                <h3 class=\"title-sm\">Per E-Mail senden<\/h3>\n                                <div class=\"form-control\">\n                    <input type=\"email\" name=\"email\" class=\"form-control-input\" placeholder=\"E-Mail\">\n                <\/div>\n                <span class=\"valid-message\" style=\"display: none;\">Pflichtfeld<\/span>\n                <span class=\"valid-message invalid-email\" style=\"display: none;\">Bitte korrekte E-Mail angeben<\/span>\n                <div class=\"share-email__bottom\">\n                    <div>\n                        <label class=\"agree\">\n                            <input type=\"checkbox\" class=\"agree__input\">\n                            <span class=\"agree__box\">\n                                Ich akzeptiere die Datenschutzvereinbarung und AGB.                            <\/span>\n                        <\/label>\n                        <span class=\"valid-message\" style=\"display: none;\">Pflichtfeld<\/span>\n                    <\/div>\n                    <div>\n                        <button type=\"button\" class=\"btn btn-secondary js-share-email\"  data-share=\"subscribe\">Senden<\/button>\n                    <\/div>\n                    <span class=\"invalid-message\" style=\"display: none;\">Etwas ist schief gelaufen, versuche es erneut<\/span>\n                <\/div>\n            <\/form>\n        <\/div>\n\n        <div class=\"share-step share-step-subscribe\" data-share-target=\"subscribe\">\n                            <div class=\"share-modal__text\"><p>Der Artikel wurde erfolgreich versendet. M\u00f6chtest du in Zukunft keine Apriko-Inhalte verpassen? Dann melde dich f\u00fcr unseren Newsletter an. <\/p>\n<\/div>\n                                        <h3 class=\"title-sm\">Jetzt zum Newsletter anmelden<\/h3>\n            \n            <form class=\"subscribe\">\n    <div class=\"subscribe-step active\">\n        <div class=\"form-control form-control-w-btn\">\n            <button tupe=\"button\" class=\"form-control-submit apply-btn js-subscribe-step\">\n                <img decoding=\"async\" src=\"https:\/\/apriko.com\/de\/wp-content\/themes\/general\/frontend\/assets\/img\/arrow-right.svg\" alt=\"applay\">\n            <\/button>\n            <input type=\"email\" name=\"email\" class=\"form-control-input required\" placeholder=\"e-mail\">\n        <\/div>\n        <label class=\"agree form-control\">\n            <input type=\"checkbox\" name=\"agree\" class=\"agree__input required\">\n            <span class=\"agree__box\">\n                Ich akzeptiere die Datenschutzbestimmungen.            <\/span>\n        <\/label>\n        <div class=\"step-errors\">\n            <span class=\"valid-message general\" style=\"display: none;\">Pflichtfeld<\/span>\n            <span class=\"valid-message invalid-email\" style=\"display: none;\">Bitte korrekte E-Mail angeben<\/span>\n        <\/div>\n    <\/div>\n\n    <div class=\"subscribe-step\">\n        <div class=\"form-control\">\n            <select class=\"js-select select\" name=\"gender\">\n                <option value=\"0\">Anrede<\/option>\n                <option value=\"Female\">Frau<\/option>\n                <option value=\"Male\">Herr<\/option>\n                <option value=\"Other\">Keine<\/option>\n            <\/select>\n        <\/div>\n        <span class=\"valid-message\" style=\"display: none;\">Pflichtfeld<\/span>\n        <div class=\"form-control\">\n            <input type=\"text\" name=\"name\" class=\"form-control-input\" placeholder=\"First name\">\n        <\/div>\n        <span class=\"valid-message\" style=\"display: none;\">Pflichtfeld<\/span>\n        <div class=\"form-control form-control-w-btn\">\n            <button tupe=\"button\" class=\"form-control-submit apply-btn js-subscribe-step form-mailchimp-subscribe\">\n                <img decoding=\"async\" src=\"https:\/\/apriko.com\/de\/wp-content\/themes\/general\/frontend\/assets\/img\/arrow-right.svg\" alt=\"applay\">\n            <\/button>\n            <input type=\"text\" name=\"surname\" class=\"form-control-input\" placeholder=\"Last Name\">\n        <\/div>\n        <span class=\"valid-message\" style=\"display: none;\">Pflichtfeld<\/span>\n        <span class=\"invalid-message all\" style=\"display: none;\">Etwas ist schief gelaufen, versuche es erneut<\/span>\n        <span class=\"invalid-message pending\" style=\"display: none;\">Wir haben die Best\u00e4tigungs-E-Mail bereits verschickt &#8211; bitte best\u00e4tige deine Anmeldung<\/span>\n        <span class=\"invalid-message registered\" style=\"display: none;\">E-Mail ist bereits registriert, danke<\/span>\n    <\/div>\n\n    <div class=\"subscribe-step\">\n            <div class=\"subscribe__text\">\n            <h4>Herzlichen Dank<\/h4>\n<p>\u00dcberpr\u00fcfe dein E-Mail-Postfach und klicke auf den Best\u00e4tigungslink, den wir dir geschickt haben, um deine Anmeldung abzuschliessen.<\/p>\n        <\/div>\n        <\/div>\n<\/form>        <\/div>\n    <\/div>\n\n    <div class=\"card-back__bottom\">\n        <button class=\"btn btn-outline-w js-card-flip-back\">Schliessen<\/button>\n    <\/div>\n<\/div>    \n    \n    <\/div>\t\t\t\t\t                    <\/div>\n\t\t\t\t\n\t\t\t\t\t\t\t<\/div>\n            \t\t<\/div>\n\t<\/div>\n<\/section>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":5,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false,"footnotes":""},"categories":[79],"tags":[80],"authors":[],"visual-tag":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v23.3 (Yoast SEO v23.3) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Behavior Driven Development - Apriko<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/apriko.com\/de\/blog\/behavior-driven-development\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Behavior Driven Development\" \/>\n<meta property=\"og:url\" content=\"https:\/\/apriko.com\/de\/blog\/behavior-driven-development\/\" \/>\n<meta property=\"og:site_name\" content=\"Apriko\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-14T12:53:46+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data1\" content=\"8\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/apriko.com\/de\/blog\/behavior-driven-development\/\",\"url\":\"https:\/\/apriko.com\/de\/blog\/behavior-driven-development\/\",\"name\":\"Behavior Driven Development - Apriko\",\"isPartOf\":{\"@id\":\"https:\/\/apriko.com\/de\/#website\"},\"datePublished\":\"2024-04-15T07:14:00+00:00\",\"dateModified\":\"2024-11-14T12:53:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/apriko.com\/de\/blog\/behavior-driven-development\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/apriko.com\/de\/blog\/behavior-driven-development\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/apriko.com\/de\/blog\/behavior-driven-development\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Apriko\",\"item\":\"https:\/\/apriko.com\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Behavior Driven Development\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/apriko.com\/de\/#website\",\"url\":\"https:\/\/apriko.com\/de\/\",\"name\":\"Apriko\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/apriko.com\/de\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Behavior Driven Development - Apriko","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/apriko.com\/de\/blog\/behavior-driven-development\/","og_locale":"de_DE","og_type":"article","og_title":"Behavior Driven Development","og_url":"https:\/\/apriko.com\/de\/blog\/behavior-driven-development\/","og_site_name":"Apriko","article_modified_time":"2024-11-14T12:53:46+00:00","twitter_card":"summary_large_image","twitter_misc":{"Gesch\u00e4tzte Lesezeit":"8\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/apriko.com\/de\/blog\/behavior-driven-development\/","url":"https:\/\/apriko.com\/de\/blog\/behavior-driven-development\/","name":"Behavior Driven Development - Apriko","isPartOf":{"@id":"https:\/\/apriko.com\/de\/#website"},"datePublished":"2024-04-15T07:14:00+00:00","dateModified":"2024-11-14T12:53:46+00:00","breadcrumb":{"@id":"https:\/\/apriko.com\/de\/blog\/behavior-driven-development\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/apriko.com\/de\/blog\/behavior-driven-development\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/apriko.com\/de\/blog\/behavior-driven-development\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Apriko","item":"https:\/\/apriko.com\/de\/"},{"@type":"ListItem","position":2,"name":"Behavior Driven Development"}]},{"@type":"WebSite","@id":"https:\/\/apriko.com\/de\/#website","url":"https:\/\/apriko.com\/de\/","name":"Apriko","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/apriko.com\/de\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"de"}]}},"_links":{"self":[{"href":"https:\/\/apriko.com\/de\/wp-json\/wp\/v2\/detail-page\/12515"}],"collection":[{"href":"https:\/\/apriko.com\/de\/wp-json\/wp\/v2\/detail-page"}],"about":[{"href":"https:\/\/apriko.com\/de\/wp-json\/wp\/v2\/types\/detail-page"}],"author":[{"embeddable":true,"href":"https:\/\/apriko.com\/de\/wp-json\/wp\/v2\/users\/5"}],"version-history":[{"count":50,"href":"https:\/\/apriko.com\/de\/wp-json\/wp\/v2\/detail-page\/12515\/revisions"}],"predecessor-version":[{"id":13349,"href":"https:\/\/apriko.com\/de\/wp-json\/wp\/v2\/detail-page\/12515\/revisions\/13349"}],"wp:attachment":[{"href":"https:\/\/apriko.com\/de\/wp-json\/wp\/v2\/media?parent=12515"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/apriko.com\/de\/wp-json\/wp\/v2\/categories?post=12515"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/apriko.com\/de\/wp-json\/wp\/v2\/tags?post=12515"},{"taxonomy":"authors","embeddable":true,"href":"https:\/\/apriko.com\/de\/wp-json\/wp\/v2\/authors?post=12515"},{"taxonomy":"visual-tag","embeddable":true,"href":"https:\/\/apriko.com\/de\/wp-json\/wp\/v2\/visual-tag?post=12515"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}