Heim > Backend-Entwicklung > Golang > Vermeiden Sie die Go-Init-Funktion

Vermeiden Sie die Go-Init-Funktion

Patricia Arquette
Freigeben: 2024-12-19 11:24:18
Original
961 Leute haben es durchsucht

Avoid the Go init function
Mit KI generiertes Bild

Ich werde immer vorsichtig, wenn ich ein Go-Paket sehe, das eine Init-Funktion verwendet. Init-Funktionen können in bestimmten Situationen hilfreich sein, aber die meisten Leute missbrauchen sie.

Was ist eine Init-Funktion? ?

In Go wird die Funktion init() als Teil der Paketinitialisierung ausgeführt, direkt nachdem Variablen initialisiert und Werte festgelegt wurden.

Dieser Vorgang findet statt, wenn ein Paket importiert wird, unabhängig davon, was im Paket verwendet wird.

Ich sehe oft Logik innerhalb der Init-Funktionen, die niemals vorhanden sein sollte.

  • Instanzen einer Struktur erstellen

  • Daten innerhalb einer Struktur auffüllen

  • Initialisierung anderer Abhängigkeiten

Das Problem ist das Testen.

Den glücklichen Weg zu testen ist vielleicht einfach, aber was ist mit Fehlerszenarien?

Wenn Sie den Init-Funktionen Logik hinzufügen, die sich unter verschiedenen Bedingungen unterschiedlich verhalten könnte, wird es schwierig, diese Szenarien zu duplizieren.

Denken Sie daran, dass der Schlüssel zur Entwicklung zuverlässiger Software darin besteht, Tests zu schreiben, die dieselben Funktionen wiederholt mit unterschiedlichen Eingaben ausführen, um unterschiedliche Ergebnisse zu validieren. Mit Init-Funktionen ist das nicht einfach, deshalb schreiben die Leute diese Tests nicht.

Eine übermäßige Verwendung der Init-Funktion führt letztendlich dazu, dass Code schwieriger zu testen und zu warten ist und unzuverlässig wird.

Meine Empfehlung ist, die Init-Funktion ganz zu vermeiden. Normalerweise ist die Verwendung eines Konstruktors wie einer New()-Funktion der richtige Weg.


Das obige ist der detaillierte Inhalt vonVermeiden Sie die Go-Init-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage