© Azad Pirayandeh/Shutterstock.com
Entwickler Magazin
Nachhaltige Angular-Architekturen mit Nx und Strategic Design

Big Business Apps mit Angular

Strategic Design bietet eine etablierte Methodik zum Schneiden großer Anwendungen in möglichst autarke Domänen. Nx erlaubt die Umsetzung dieser Domänen in einem Angular-Monorepo und stellt sicher, dass dabei möglichst wenig Abhängigkeiten entstehen.

Manfred Steyer


Angular bietet sich aufgrund seiner Struktur und des gebotenen Leistungsumfangs für die Umsetzung von Frontends großer Softwaresysteme an. Um solche Systeme beherrschbar zu gestalten, gilt es, sie in kleine und wenig komplexe Module zu untergliedern. Das ist so weit bekannt. Die Frage, die sich hierbei jedoch immer wieder aufdrängt, ist, nach welchen Kriterien der Modulschnitt erfolgen soll. Außerdem gilt es festzulegen, wie diese Module zu implementieren sind, aber auch wie sie untereinander kommunizieren können.

Dieser Artikel gibt eine Antwort auf beide Fragen: Um eine Vorgehensweise für den Modulschnitt aufzuzeigen, beleuchtet er zunächst Strategic Domain Design. Dabei handelt es sich um eine Disziplin aus dem Umfeld von Domain-driven Design (DDD). Danach zeigt der Artikel, wie sich eine damit gestaltete Architektur mit Nx [1] umsetzen lässt, einer populären und freien Erweiterung für das Angular CLI.

Domain-driven Design auf Metaebene

DDD beschreibt einen Ansatz, der eine Brücke zwischen Anforderungen an komplexe Softwaresysteme auf der einen Seite und einem dazu passenden Anwendungsdesign auf der anderen schlägt. Es lässt sich in die Teildisziplinen Tactical Design und Strategic Design untergliedern. Ersteres schlägt konkrete Denkweisen, Konzepte und Muster für ein objektorientiertes Design vor. Alternativ dazu existieren auch Ansätze, die die dahinterstehenden Ideen in die Welt der funktionalen Programmierung übertragen [2].

Strategic Design beschäftigt sich hingegen mit der Untergliederung eines großen Systems in einzelne Domänen und deren Ausgestaltung. Egal ob man die meinungsstarke (engl. opinionated) Denkwelt von DDD gut findet oder nicht: Einige Ideen von Strategic Design haben sich bewährt, um ein System in kleinere, möglichst autarke Teile zu untergliedern. Es sind genau diese Ideen, die dieser Artikel aufgreift und im Kontext von Angular darstellt. Ob die restlichen Aspekte von DDD auch Berücksichtigung finden, ist hingegen für den Artikel unerheblich.

Modularisierung mit Strategic Domain Design

Ein Ziel von Strategic Design ist es, möglichst autarke (Sub-)Domänen zu identifizieren. Solche sind an einem spezifischen Vokabular zu erkennen. Sowohl Domänenexperten als auch Entwickler müssen dieses Vokabular rigoros verwenden. Das beugt Missverständnissen vor und führt dazu, dass die Anwendung den jeweiligen Fachbereich widerspiegelt. In diesem Sinn ist auch von einer allgegenwärtigen Sprache (engl. ubiquitous language) die Rede.

Ein weiteres Merkm...

Entwickler Magazin
Nachhaltige Angular-Architekturen mit Nx und Strategic Design

Big Business Apps mit Angular

Strategic Design bietet eine etablierte Methodik zum Schneiden großer Anwendungen in möglichst autarke Domänen. Nx erlaubt die Umsetzung dieser Domänen in einem Angular-Monorepo und stellt sicher, dass dabei möglichst wenig Abhängigkeiten entstehen.

Manfred Steyer


Angular bietet sich aufgrund seiner Struktur und des gebotenen Leistungsumfangs für die Umsetzung von Frontends großer Softwaresysteme an. Um solche Systeme beherrschbar zu gestalten, gilt es, sie in kleine und wenig komplexe Module zu untergliedern. Das ist so weit bekannt. Die Frage, die sich hierbei jedoch immer wieder aufdrängt, ist, nach welchen Kriterien der Modulschnitt erfolgen soll. Außerdem gilt es festzulegen, wie diese Module zu implementieren sind, aber auch wie sie untereinander kommunizieren können.

Dieser Artikel gibt eine Antwort auf beide Fragen: Um eine Vorgehensweise für den Modulschnitt aufzuzeigen, beleuchtet er zunächst Strategic Domain Design. Dabei handelt es sich um eine Disziplin aus dem Umfeld von Domain-driven Design (DDD). Danach zeigt der Artikel, wie sich eine damit gestaltete Architektur mit Nx [1] umsetzen lässt, einer populären und freien Erweiterung für das Angular CLI.

Domain-driven Design auf Metaebene

DDD beschreibt einen Ansatz, der eine Brücke zwischen Anforderungen an komplexe Softwaresysteme auf der einen Seite und einem dazu passenden Anwendungsdesign auf der anderen schlägt. Es lässt sich in die Teildisziplinen Tactical Design und Strategic Design untergliedern. Ersteres schlägt konkrete Denkweisen, Konzepte und Muster für ein objektorientiertes Design vor. Alternativ dazu existieren auch Ansätze, die die dahinterstehenden Ideen in die Welt der funktionalen Programmierung übertragen [2].

Strategic Design beschäftigt sich hingegen mit der Untergliederung eines großen Systems in einzelne Domänen und deren Ausgestaltung. Egal ob man die meinungsstarke (engl. opinionated) Denkwelt von DDD gut findet oder nicht: Einige Ideen von Strategic Design haben sich bewährt, um ein System in kleinere, möglichst autarke Teile zu untergliedern. Es sind genau diese Ideen, die dieser Artikel aufgreift und im Kontext von Angular darstellt. Ob die restlichen Aspekte von DDD auch Berücksichtigung finden, ist hingegen für den Artikel unerheblich.

Modularisierung mit Strategic Domain Design

Ein Ziel von Strategic Design ist es, möglichst autarke (Sub-)Domänen zu identifizieren. Solche sind an einem spezifischen Vokabular zu erkennen. Sowohl Domänenexperten als auch Entwickler müssen dieses Vokabular rigoros verwenden. Das beugt Missverständnissen vor und führt dazu, dass die Anwendung den jeweiligen Fachbereich widerspiegelt. In diesem Sinn ist auch von einer allgegenwärtigen Sprache (engl. ubiquitous language) die Rede.

Ein weiteres Merkm...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang