Heim >Web-Frontend >js-Tutorial >Vom Chaos zur Klarheit: Die entscheidende Rolle der Architektur

Vom Chaos zur Klarheit: Die entscheidende Rolle der Architektur

王林
王林Original
2024-08-22 18:32:32328Durchsuche

In der schnelllebigen Welt der modernen Entwicklung entscheidet oft die Architektur darüber, ob ein Projekt unter seiner eigenen Komplexität gedeiht oder zusammenbricht. Während viele Entwickler intuitiv verstehen, dass Architektur wichtig ist, werden das „Warum“ und das „Wie“ seltener diskutiert. Was macht Architektur so wichtig und wie können Sie sicherstellen, dass Ihre Entscheidungen zu Klarheit und nicht zu Chaos führen?

Dieser Artikel ist hilfreich für React-, Vue-, Svelte- und Vanilla JS-Entwickler. Für Angular-Entwickler ist es möglicherweise weniger hilfreich, da Angular standardmäßig strenge Architekturmuster erzwingt, obwohl es dennoch einen Mehrwert bieten könnte.

Meiner Meinung nach mangelt es im Internet an detaillierten Informationen zur Architektur; Es ist mir gelungen, nur wenige nützliche Ressourcen zu finden. Aus diesem Grund habe ich beschlossen, eine Artikelserie zum Thema Architektur zu erstellen.

Lassen Sie uns zunächst untersuchen, was Architektur ist, warum wir Architektur brauchen, einige Schlüsselbegriffe vorstellen und verschiedene Arten von Architekturen diskutieren

Das Problem

Stellen Sie sich vor, Sie starten ein neues Projekt, ohne dessen Architektur zu planen – Sie müssen nur in den Code eintauchen. Sie entwickeln Ihr erstes Modul, das Verknüpfungen zwischen Submodulen und Komponenten enthält. Anschließend erstellen Sie ein zweites Modul und verknüpfen es mit dem ersten. Dieses Muster setzt sich fort, wenn Sie weitere Module und Verbindungen hinzufügen.

Das Problem entsteht, wenn Sie ein Modul löschen oder bearbeiten müssen. Wenn Ihr Projekt wächst, wächst auch die Komplexität, mit unzähligen Modulen, Submodulen und unklaren Verbindungen zwischen ihnen. Letztendlich bereitet dieses verworrene Netz den Entwicklern Kopfzerbrechen und die Wartung für das Unternehmen wird teurer.

Schwierigkeit === Zeit === Geld

Was ist Architektur?

Viele Entwickler denken fälschlicherweise, dass Architektur einer Ordnerstruktur entspricht, aber das ist falsch. Architektur geht über die Dateiorganisation hinaus. Es beschreibt, wie Module und Komponenten innerhalb des Projektsystems interagieren.

Architektur umfasst verschiedene Elemente eines Projekts und legt fest, wie Module und Komponenten entwickelt und wie sie miteinander verbunden werden sollen.

Im Frontend sind Module in der Regel UI-Komponenten, die Geschäftslogik nutzen. Diese können von großen Komponenten wie Seiten bis hin zu kleinen Komponenten wie Eingaben, Schaltflächen oder Typografie reichen.

Was sollte großartiges Softwaredesign haben?

Wir müssen sicherstellen, dass die Module unseres Projekts Folgendes haben:

  1. Hohe Kohäsion – Jedes Modul sollte zugehörige Geschäftslogik enthalten.
  2. Geringe Kopplung – Module sollten möglichst unabhängig voneinander sein.

Zusammenhalt bezieht sich auf das, was das Modul leisten kann. Ein geringer Zusammenhalt würde bedeuten, dass die Klasse eine große Vielfalt an Aktionen ausführt – sie ist breit gefächert und konzentriert sich nicht auf das, was sie tun soll. Hoher Zusammenhalt bedeutet, dass sich die Klasse auf das konzentriert, was sie tun soll, d. h. nur auf Methoden, die sich auf die Absicht der Klasse beziehen.

Kopplung bezieht sich darauf, wie verwandt oder abhängig zwei Module zueinander sind. Bei niedrig gekoppelten Modulen sollte eine wesentliche Änderung in einer Klasse keine Auswirkungen auf die andere haben. Eine hohe Kopplung würde es schwierig machen, Ihren Code zu ändern und zu warten. Da Module eng miteinander verbunden sind, kann eine Änderung eine vollständige Überarbeitung des Systems erfordern.

Im Wesentlichen bedeutet hohe Kohäsion, dass verwandte Codeteile an einem Ort zusammengehalten werden. Gleichzeitig geht es bei der geringen Kopplung darum, nicht verwandte Teile der Codebasis so weit wie möglich zu trennen.

From Chaos to Clarity: The Critical Role of Architecture

Hier ist die Erklärung für das Bild:

Die Module im Bild werden durch deutliche Kreiscluster dargestellt, die leicht zu erkennen sind. Jeder Kreis innerhalb eines Moduls stellt eine Klasse oder Komponente dar, die für die Ausführung einer bestimmten Aufgabe verantwortlich ist. Gleichfarbige Kreise innerhalb eines Moduls kennzeichnen Elemente, die die gleiche Aufgabe lösen. Die Pfeile im Bild stellen die Verbindungen zwischen den Modulen dar und veranschaulichen, wie sie miteinander interagieren.

Hohe Kohäsion, hohe Kopplung

Betrachten wir das Gottobjekt Anti-Muster. Ein Gottobjekt ist ein Modul, das über mehrere Untermodule und Verbindungen verfügt und gleichzeitig versucht, mehrere Aufgaben gleichzeitig zu lösen.

From Chaos to Clarity: The Critical Role of Architecture

Dies führt zu hoher Kohäsion, da ein einzelnes Modul für mehrere Aufgaben verantwortlich ist, und zu hoher Kopplung aufgrund der verschwommenen Verbindungen zwischen verschiedenen Modulen und Submodulen.

Geringe Kohäsion, geringe Kopplung

In diesem Szenario sind die Module gut aufgeteilt, aber die darin enthaltenen Submodule lösen unterschiedliche Aufgaben (erkennbar an den unterschiedlichen Farben im Bild). Allerdings sind die Zusammenhänge zwischen den Modulen noch unklar.

From Chaos to Clarity: The Critical Role of Architecture

Geringe Kohäsion, hohe Kopplung

Das ist ein anderer Fall. Dabei sind die Module klar aufgeteilt und die Verbindungen untereinander solide. Allerdings ist innerhalb jedes Moduls der Zusammenhalt gering, da mehrere Aufgaben gelöst werden, was zu unnötiger Komplexität führt.

From Chaos to Clarity: The Critical Role of Architecture

Trotzdem ist dies immer noch besser als die beiden vorherigen Beispiele, da Sie einzelne Module ohne großen Aufwand entfernen oder ändern können.

Hohe Kohäsion, geringe Kopplung – das Ideal

In einer idealen Architektur sind die Verbindungen zwischen Modulen „schwach“, sodass jedes Modul leicht entfernt oder geändert werden kann. Innerhalb jedes Moduls lösen Komponenten und Klassen eine bestimmte Aufgabe (erkennbar an ihrer einheitlichen Farbe), und es gibt keine Vermischung der Verantwortlichkeiten, anders als in den vorherigen Beispielen.

From Chaos to Clarity: The Critical Role of Architecture

Obwohl diese ideale Architektur in Projekten selten vorkommt, da sie spezifisches Wissen und Erfahrung erfordert, sollten wir alle danach streben.

Abschluss

Architektur ist die Struktur von Modulen, Komponenten und den Verbindungen zwischen ihnen.

Der Schlüssel zu einer erfolgreichen Architektur liegt in der Umsetzung von Entwicklungsprinzipien wie DRY, KISS und SOLID. Das Entfernen und Ändern von Modulen sollte einfach sein, insbesondere das Entfernen – das ist ein wichtiger Punkt.

Lassen Sie mich in den Kommentaren wissen, wenn Sie Fragen haben oder über welche Architektur Sie mehr erfahren möchten!

Das obige ist der detaillierte Inhalt vonVom Chaos zur Klarheit: Die entscheidende Rolle der Architektur. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn