Zen Go (Taschenversion)

Im Vorgriff auf den Beginn des Kurses "Golang Developer" haben wir eine Übersetzung einer kleinen nützlichen Notiz vorbereitet.




Zehn technische Tipps zum Schreiben von einfachem, lesbarem und leicht zu wartendem Go-Code. Präsentiert im Rahmen der GopherCon Israel 2020 .

Jedes Paket hat nur einen Zweck.


Ein richtig gestaltetes Go-Paket sollte nur eine Idee implementieren und eine Reihe verwandter Verhaltensweisen einführen. Ein gutes Go-Paket beginnt mit einem guten Namen. Versuchen Sie, aus dem Namen eine kurze Darstellung Ihres Pakets zu machen, indem Sie mit nur einem Wort beschreiben, was es bietet.

Explizite Fehlerbehandlung


Zuverlässige Programme bestehen aus Elementen, die Fehler behandeln, bevor sie in den Hintergrund treten können. Die Ausführlichkeit von if err! = Nil {return err} wird durch die Wichtigkeit einer gut durchdachten Behandlung jedes Fehlers an den Stellen gerechtfertigt, an denen sie auftreten können. Panik und Erholung sind keine Ausnahmen, sie sind nicht dazu gedacht, auf diese Weise verwendet zu werden.

Verhindern Sie tiefes Verschachteln mit Rückkehr


Jedes Mal, wenn Sie einrücken, fügen Sie dem mentalen Stapel des Programmierers eine weitere Bedingung hinzu, die einen der 7 ± 2 Steckplätze in seinem Kurzzeitgedächtnis belegt. Vermeiden Sie mehrstufige Padding-Kontrollflüsse. Halten Sie den erfolgreichen Codepfad anstelle einer tiefen Verschachtelung mithilfe von Grenzoperatoren so weit wie möglich links.

Überlassen Sie die Parallelität dem Anrufer


Lassen Sie den Anrufer wählen, ob er Ihre Bibliothek ausführen oder asynchron arbeiten möchte, anstatt ihm diese Auswahl aufzuerlegen. Wenn Ihre Bibliothek Multithreading verwendet, sollte dies transparent erfolgen.

Bevor Sie mit der Goroutine beginnen, fragen Sie, wann sie aufhört.


Gorutine haben Ressourcen; Sperren, Variablen, Speicher usw. Der zuverlässigste Weg, diese Ressourcen freizugeben, besteht darin, die Goroutine zu stoppen, die sie enthält.

Vermeiden Sie Eigenschaften auf Paketebene


Streben Sie nach Transparenz, reduzieren Sie die Konnektivität und vermeiden Sie schreckliche Remote-Aktionen, indem Sie die Abhängigkeiten, die der Typ benötigt, als Felder dieses Typs bereitstellen, anstatt Paketvariablen zu verwenden.

Einfachheit ist wichtig


Einfachheit ist nicht gleichbedeutend mit Primitivität. Einfachheit bedeutet nicht Unvollständigkeit, sondern Lesbarkeit und Wartbarkeit . Wenn Sie eine große Auswahl haben, tendieren Sie immer zur einfachsten Lösung.

Schreiben Sie Tests, um das Verhalten Ihrer Paket-API zu erfassen.


Unabhängig davon, ob Sie mit Tests beginnen oder enden, eine 100% ige Abdeckung mit Tests anstreben oder mit dem erforderlichen Minimum zufrieden sind - unabhängig davon ist die API Ihres Pakets Ihr Vertrag mit den Benutzern. Tests sind eine Garantie dafür, dass diese Verträge klar angegeben sind. Stellen Sie sicher, dass Sie das Verhalten testen, das Benutzer beobachten und auf das sie sich verlassen können.

Wenn Ihnen etwas langsam erscheint, beweisen Sie es zuerst anhand des Benchmarks.


Viele Verbrechen gegen die Nachhaltigkeit werden im Namen der Produktivität begangen. Durch die Optimierung werden Abstraktionen zerstört, die Innenseiten freigelegt und fest gebunden. Wenn Sie sich entscheiden, diese Last zu übernehmen, stellen Sie sicher, dass es dafür echte Gründe gibt.

Mäßigung ist Tugend


Verwenden Sie Goroutinen, Kanäle, Sperren, Schnittstellen und Proportionen.

Support ist wichtig


Klarheit, Lesbarkeit und Einfachheit sind alles Aspekte der Nachhaltigkeit. Ist es möglich zu unterstützen, woran Sie nach Ihrer Abreise hart gearbeitet haben? Was können Sie heute tun, um denjenigen das Leben zu erleichtern, die Ihnen morgen nachfolgen?



Erfahren Sie mehr über den Kurs.



All Articles