Nach der unglaublichen Erfahrung, die ich mit Leuten aus Mattermost während des Hacktoberfests gemacht habe (vergessen Sie auch ihr aufmerksames Geschenk nicht!), habe ich beschlossen, im November noch einmal mit ihnen zu gehen.
Diesmal „gehen“ wir buchstäblich mit ihnen, da ihr Server in Go geschrieben ist (ich entschuldige mich für meinen verletzenden Sinn für Humor). Während des Hacktoberfests habe ich an ihrer mobilen App gearbeitet, die in TypeScript mit React Native geschrieben ist. Das Problem, das ich dieses Mal hatte, hing jedoch mit ihrem Server zusammen und es war das erste Mal, dass ich an einem Go-Projekt arbeitete.
Da ich keinerlei Vorkenntnisse in Go hatte, traf ich die richtige Entscheidung, es zuerst zu lernen. Glücklicherweise war Go super einfach in die Hände zu bekommen. Ich war wirklich erstaunt über die Einfachheit und die Möglichkeit, schnelle und zuverlässige Software zu erstellen. Ein einstündiges Video war alles, was ich brauchte, um die Grundlagen zu verstehen, und ich musste viel weniger innehalten als damals, als ich Rust lernte ?.
Zuerst möchte ich etwas Zeit damit verbringen, diesen entzückend albernen Gopher zu würdigen:
Davon abgesehen gefällt mir, dass Go statisch und stark getippt ist. Das habe ich kürzlich mit einem Freund besprochen: Statische und/oder stark typisierte Sprachen erfordern nur ein wenig mehr Gedanken über das Codedesign, können aber ein großes Maß an Mehrdeutigkeit beseitigen. Außerdem kann der Go-Compiler, ähnlich wie Rust, nach Möglichkeit Typen ableiten, was die zusätzlichen Gedanken noch trivialer macht.
Manche Leute nennen Go „das moderne C“. Jetzt verstehe ich, warum: Es funktioniert wirklich gut und ist so einfach wie C. Es unterstützt Low-Level-Operationen mithilfe von Zeigern. Aber im Gegensatz zu C verfügt es über die Funktionen, die Sie von einer modernen Sprache erwarten würden, wie Schnittstellen, Slices, Karten usw. Eine weitere faszinierende Funktion ist Goroutine, ein einzigartig einfaches Modell für die Verarbeitung paralleler Ausführungen.
Es stellte sich heraus, dass ich es wirklich übertrieben habe, Go zu lernen, da es sich um ein wirklich einfaches Problem handelte. Ich musste lediglich die Fehlerbehandlung in einer einzigen Datei implementieren.
In der Ausgabe wird praktischerweise darauf hingewiesen, dass Fehler entweder zurückgegeben oder protokolliert werden sollen. Da ich die Entwicklerdokumente von Mattermost gut kannte, fand ich schnell den Abschnitt über die Fehlerbehandlung.
Das einzige Hindernis, auf das ich stieß, war die Entscheidung, welche Protokollstufe verwendet werden sollte. Obwohl es in den Dokumenten erwähnt wurde, fand ich die Definition immer noch mehrdeutig. Nach einer kurzen Suche innerhalb des Projekts wurde mir jedoch klar, dass diese Funktionen an anderen Stellen immer den gleichen Log-Level verwenden. Das hat meine Zweifel beseitigt.
Da die Funktionen, an denen ich gearbeitet habe, statische HTML-Seiten bereitstellen, habe ich auch dafür gesorgt, dass ein korrekter HTTP-Fehlercode zurückgegeben wird, wenn ein Fehler auftritt, etwa so:
http.Error(w, err.Error(), http.StatusInternalServerError)
Das ist die ganze Arbeit! Ich habe die PR eingereicht und war anfangs etwas besorgt, da ich zum ersten Mal mit Go zusammengearbeitet habe, aber es hat alles gut geklappt. Die PR wurde kurz nach einer kleinen Korrektur zusammengeführt.
Alles in allem war es ein unterhaltsames und leicht zu bearbeitendes Thema. Ich bin froh, dass ich mich dafür entschieden habe, auch wenn es nicht so herausfordernd war wie einige andere Themen, an denen ich gearbeitet habe. Ich freue mich immer, eine neue Sprache zu lernen, und das war die perfekte Ausrede dafür! Und es war irgendwie großartig, es sofort nutzen zu können.
Das obige ist der detaillierte Inhalt vonGehen Sie mit Mattermost!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!