Menu
nuwork backend

Das Backend – nuwork Zaubertricks enthüllt

7. April 2021 · 3 Minuten · Felix

Back to top

Das Erste, was man sieht, wenn man sich bei nuwork einloggt, ist die ansprechend gestaltete Benutzeroberfläche. Doch was verbirgt sich dahinter? Lasst uns den Vorhang lüften, hinter die Kulissen schauen und einen Blick in die Schaltzentrale unserer nuwork Plattform werfen.

In das Backend fließen alle Features und Geschäftsregeln ein und werden über die Benutzeroberfläche zugänglich gemacht. Sprint für Sprint wachsen die Möglichkeiten, die der Kern unserer Anwendung bietet. Doch ein so rapides Wachstum birgt auch Herausforderungen an die Entwicklung. Als Entwickler möchten wir einen möglichst flexiblen Softwareentwurf, um kurzfristig auf Marktveränderungen und Kundenbedürfnisse eingehen und regelmäßig großartige Software ausliefern zu können. Unser Anspruch ist außerdem, dass in diesem Tempo die Umsetzung neuer Features qualitativ hochwertig bleibt. Doch welche Auswirkung hat das auf die Entwicklung? Wie gehen wir mit dieser Herausforderung um?

Der erste Schritt in die richtige Richtung ist dabei eine sauber strukturierte Softwarearchitektur. Zwei Geheimzutaten helfen dabei, diesen Anforderungen gerecht zu werden. In der Softwareentwicklung spricht man von: “hoher Kohäsion” und “loser Kopplung”. Hohe Kohäsion bedeutet, dass stark verwandte Konzepte miteinander zusammengehalten werden. In unserer Software könnten das beispielsweise Teams sein, welche stark mit ihrem Unternehmen verknüpft sind – wie in der Realität eben. Um Softwaremodelle mit hoher Kohäsion zu entwerfen, bedienen wir uns dabei an Techniken aus dem Domain-driven Design, einer Softwaredesign Technik, die sich an den Bedürfnissen der Anwender orientiert. Dadurch deckt sich unsere Lösung mit den Konzepten der Realität und wie durch Magie erreichen wir dabei eine hohe Kohäsion – Dinge die stark miteinander verwandt sind, werden zusammengehalten. Häufig beobachtet man in der Entwicklung, dass Softwarearchitekturen starr werden und sich infolgedessen die Umsetzung geschäftskritischer Features verlangsamt – oder gar die Einführung verspätet. Eine mögliche Ursache dafür ist, dass nicht miteinander verwandte Konzepte, fest miteinander verdrahtet wurden. Wir sind uns dieser Tatsache bewusst. Deshalb setzen wir auf eine Event-driven Architecture, welche unsere Software noch flexibler macht. Damit sind wir in der Lage, quasi im Plug-and-play Prinzip, neue Komponenten unserer Softwarearchitektur hinzuzufügen. Wird ein weiteres Feature benötigt, prüfen wir ob es in bestehende Komponenten passt, wenn nicht, können wir unsere Plattform einfach um zusätzliche Komponenten erweitern. Außerdem gewinnen wir Performance, weil Prozesse nebenläufig ausgeführt werden können und sich nicht gegenseitig blockieren. Wir können Softwarekomponenten unabhängig voneinander entwickeln, weil sie sauber voneinander getrennt wurden und können besser bei Last umgehen, weil durch nachrichtengesteuerte Architekturen elastische Software ermöglicht wird.

Wir setzen auf Domain-driven Design und eine Event-driven Architecture, um die Herausforderungen in der alltäglichen Softwareentwicklung zu bewältigen. Die daraus resultierende Flexibilität und Kundenorientiertheit unserer Software verschafft uns einen Wettbewerbsvorteil!


Weitere Beiträge