Was ist Spaghetti-Code und wie man ihn vermeidet

Veröffentlicht: 2020-07-03

Während es für ein köstliches italienisches Abendessen sorgen kann, ist Spaghetti eines der letzten Dinge, die Sie in Bezug auf Ihre Codebasis hören möchten. Die Vorstellung, dass Ihr Code so verworren ist wie ein Teller Spaghetti, ist erschreckend, aber für viele Entwickler ist die Idee so abstrakt, dass sie sie nicht ganz in den Griff bekommen (oder verstehen, wie man sie vermeidet oder repariert). Aus diesem Grund möchten wir in diesem Beitrag darauf eingehen, was Spaghetti-Code eigentlich ist, einige Best Practices zeigen, um ihn zu vermeiden, und (wenn es passiert) wie man damit umgeht.

Abonnieren Sie unseren Youtube-Kanal

Was ist Spaghetti-Code?

Spaghetti-Code ist ein Albtraum, das ist was. Wie wir oben gesagt haben, hat der umgangssprachliche Begriff seinen Namen, weil, wenn Sie an einem Strang (Codestück) ziehen, er sich wie ein riesiges Knäuel Spaghetti-Nudeln in einen anderen und einen anderen und einen anderen verwickelt, bis er oder alle die verhedderten Stücke brechen.

Denken Sie beispielsweise an die Eigenschaft !important in CSS. Es ist unglaublich mächtig und ermöglicht es einem Designer, geerbte Stile zu überschreiben und die Kontrolle über ein bestimmtes Element zu haben, ohne das gesamte Stylesheet neu codieren zu müssen. Wenn sie (oder zukünftige Entwickler und Designer) jedoch etwas anderes anpassen müssen, können sie ein weiteres !important- Tag hinzufügen, um das vorherige zu überschreiben. Und so weiter. Wenn Sie jedoch zurückgehen und einen der Stile in diesem Stapel entfernen oder ändern, kann eine beliebige Anzahl von Stilen auf der Seite beschädigt werden.

Was wir versuchen zu vermeiden.

Best Practices zur Vermeidung von Spaghetti-Code

1. Codierungsstandards entwickeln

Die beste Möglichkeit, Spaghetti-Code zu verhindern, besteht darin, Standards innerhalb Ihrer Organisation oder Ihres Projekts zu erstellen und zu codieren. Coding-Standards machen Projekte wie WordPress möglich. Tausende von Entwicklern haben an WP Core gearbeitet, aber die WordPress Coding Standards haben es so gemacht, dass sie alle nach den gleichen Richtlinien arbeiten und die Aufgaben innerhalb der gleichen Parameter auf die gleiche Weise ausführen.

Codierungsstandards sind nur Regeln, die Sie durchsetzen. Sie sorgen dafür, dass der Code aller nach demselben Muster funktioniert, sodass Fehler leicht zu finden und zu beheben sind und zukünftige Entwickler (oder sogar Sie oder Ihr aktuelles Team) genau wissen, was jede Codezeile so effizient wie möglich macht. Wenn Susans Code seine Tests nicht besteht, kommt er nicht rein. Wenn Janines Code keine Tests zum Ausführen hat, wird der Pull-Request abgelehnt. Vielleicht verwendet Daniel bei seinem letzten Pull-Request keine Divs. Keine Zusammenführung, bis die Dinge aufgeteilt sind.

Außerdem waren einige der ursprünglichen Codebasen, die von Spaghetti-Code geplagt wurden, ältere Sprachen ohne funktionale Logik. Der Code war nicht funktionsbasiert, und daher richtete sich verschiedene Logik auf bestimmte Zeilen innerhalb des Codes. Bei kleinen Projekten ist dies nicht schlecht zu navigieren. Wenn Sie mit der Skalierung von Projekten beginnen, können direkte Verweise auf bestimmte Dateien und Codezeilen diese Entwicklung behindern. Dateien können verloren gehen, Zeilen können gelöscht oder falsch nummeriert werden. Und es zu debuggen, um herauszufinden, welcher Strang der Spaghetti gezogen wurde, kann Hunderte von Personenstunden in Anspruch nehmen. Codierungsstandards können verhindern, dass diese Art von Durcheinander so oft passiert.

Durch die Entwicklung von Standards haben Sie also die Wahrscheinlichkeit, ein Repository mit Spaghetti-Code zu haben, sehr effektiv verringert. Wenn Sie mehr über Codierungsstandards im Allgemeinen erfahren möchten, bietet GeeksforGeeks einen ausgezeichneten Leitfaden.

2. Folgen Sie einem Styleguide

Zusätzlich zu den Codierungsstandards kann ein zu befolgender Styleguide auch verhindern, dass Ihr Code zu verwirrend wird. Obwohl es in der Theorie ähnlich klingen mag, sind die beiden sehr unterschiedlich. Codierungsstandards sind als durchsetzbare Regeln da, die Ihre Entwickler befolgen, damit der Code effizient funktioniert. Diese können sich von Projekt zu Projekt oder von Team zu Team innerhalb einer Organisation ändern.

Ein Styleguide wird jedoch im Allgemeinen für jede Sprache geschrieben und bietet eine Reihe von Best Practices, um den Code lesbar und funktionsfähig zu machen. Airbnb hat beispielsweise einen der besten Styleguides für React.js erstellt. Wenn Sie kein React-Entwickler sind, bedeutet das so gut wie nichts. Aber für React-Entwickler kann diese Betrachtung eine echte Hilfe dabei sein, wie Ihr Code strukturiert und geschrieben werden sollte, um ihn für zukünftige Entwickler so zugänglich wie möglich zu machen.

Ein Styleguide sind im Gegensatz zu allgemeinen Codierungsstandards nicht unbedingt durchsetzbare Regeln. Es handelt sich um Vorschläge, um den Code einheitlicher zu gestalten, wodurch der Code leichter zu lesen ist. Was Spaghetti-Code verhindert, weil Sie zu jedem Zeitpunkt genau wissen, an welchem ​​Strang Sie ziehen.

3. Kommentieren Sie Ihren Code

Codekommentare sind vielleicht der einfachste Weg, um zu verhindern, dass Ihre Repositorys mit Spaghetti-Code gefüllt werden. Wenn Sie etwas schreiben, erstellen Sie einen Kommentar darüber, was es tut. Wenn es sich um eine komplizierte Funktion oder ein Snippet handelt, erklären Sie, was die Logik macht und warum sie wichtig ist.

Sie stoßen jedoch auf einige Probleme, wenn Sie sich auf Codekommentare verlassen, um Unordnung zu vermeiden. Das erste ist, dass es den Projekten viel zusätzliche Zeit hinzufügt. Wenn Sie eine Deadline einhalten oder sicherstellen möchten, dass eine Funktion richtig funktioniert, ist es nicht immer im Vordergrund, eine detaillierte Erklärung zu schreiben. Und wenn Sie anfangen zu kommentieren und mitten im Projekt abfallen oder der nächste Entwickler nicht weitermacht? Das ist ein großer Teller Spaghetti.

Andere werden von der Idee überwältigt, ihren Code zu kommentieren – oder zu lernen, ihren Code zu kommentieren, wenn sie es noch nicht getan haben – wegen der schieren Menge, die sie entwickeln. Was voll und ganz zutrifft. Aber selbst wenn Sie gelegentlich wichtige (oder sogar prekäre) Zeilen oder Ausschnitte kommentieren, ersparen Sie jemandem, möglicherweise Ihnen selbst, die Mühe, in der Vergangenheit daran zu ziehen und herauszufinden, was sie bewirkt.

Einpacken

Spaghetti-Code ist ein Albtraum, ich wiederhole. Unzählige Stunden damit zu verbringen, herauszufinden, welche Codezeile in einem riesigen Repository geändert wurde, ist einer der schlimmsten Teile eines Entwicklers. Debuggen ist in Ordnung (ish). Debuggen und nicht wissen, wo Sie anfangen sollen oder was das Problem sogar aus der Ferne verursacht, ist nicht der Fall. Wenn Ihr Team jedoch Codierungsstandards einrichtet, einem Sprachstilleitfaden folgt und sogar eine geringfügige Richtlinie für Codekommentare hat, besteht eine sehr hohe Wahrscheinlichkeit, dass Ihr digitaler Teller Spaghetti weit weniger verheddert ist, als es sonst der Fall wäre.

Was tun gegen Spaghetti-Code?

Beitragsbild des Artikels von Donnay Style / shutterstock.com