Bereiten Sie die Entwicklungsumgebung vor

Richten Sie zunächst die Entwicklungsumgebung ein. Ich erinnere mich noch, als ich meine Entwicklungsreise begann, Die schmerzhafteste Zeit war die Einrichtung der Entwicklungsumgebung, speziell wie diese Art von Projekt (mehr als 3 Systeme), wir müssen verschiedene Dienste herunterladen (JAR, binär, etc.), um es lokal zum Laufen zu bringen, danke jedoch für die Container-Technologie, indem Sie einfaches Docker-compose verwenden.yml-Datei, können wir Bootstrap alle wichtigen Anwendungen / Komponenten, die wir brauchten.

Sehen Sie, wie einfach ist es?

Entwicklung / Codierung

Beginnen wir mit dem lustigen Teil, Go ist meine neueste Premiere-Entwicklungssprache, aber warum ich mich für die Datenpipeline-Entwicklung entschieden habe, wegen seiner Einfachheit, Leistung und Typsicherheit. Hier werde ich nicht den Nutzen von Go erklären, wenn Sie interessiert sind, überprüfen Sie bitte Golang.org.

Wie üblich, wenn Sie meinen vorherigen Beitrag überprüfen

Wie baue ich ein MachineBox.io API mit 100% Unit-Testabdeckung mit Go

Sie werden wissen, dass ich dieselbe Anwendungsstruktur verwenden werde.

1. Erstellen Sie die Verbindung, indem Sie die Env-Struktur erstellen

2. Verwenden von Schnittstellen

Möglicherweise sind Sie mit der Verwendung von Schnittstellen aus der Go-exemplarischen Vorgehensweise oder aus der offiziellen Dokumentation vertraut. Das Schöne an der Verwendung von Schnittstellen in Go ist jedoch, dass Sie eine Reihe von Methoden definieren können, die ein Typ (oft struct) definieren muss, um als Implementierung dieser Schnittstelle betrachtet zu werden.

Wenn ein bestimmter Typ alle Methoden dieser Schnittstelle implementiert, weiß der Go-Compiler automatisch, dass er als dieser Typ verwendet werden darf.

3. Logging

Logging ist schwer!

Wenn Sie bereits als Application Production Support relative Funktion gearbeitet haben. Sie werden den Entwickler zu schätzen wissen, der die Informationen darüber protokolliert, wie die Anwendung ausgeführt wird, wann und wie diese Anwendung fehlgeschlagen ist, welche Datei, welche Funktion. (Ein Plus+)

Zum Beispiel

Ich benutze die Uber Zap libs. Und ich Wrapper auch in einen Helfer, der in verschiedenen Projekten auf verschiedenen Ebenen verwendet werden kann. Für mich bevorzuge ich die Rückgabe eines niedrigeren Hebelfehlers an die Hauptimplementierung.

Logging-Implementierung

4. Unit-Test

Das Schreiben von Unit-Tests kann sicherstellen, dass unser Code wie erwartet funktioniert, ist viel weniger „teuer“, als wenn ein Fehler oder eine Regression es bis zu einer Veröffentlichung schafft.

Wenn Sie sich noch an die # 1-Schnittstellenimplementierung erinnern, besteht der andere Vorteil der Schnittstellenimplementierung darin, dass Sie auf einfache Weise testbaren Code schreiben können.

Beispiel eins der Unit-Tests

Unit-Test-Abdeckung ist ein interessiertes Thema, Ich benutze verrückt genug, um die 100% ige Abdeckung zu verfolgen, aber ich lerne meine Lektionen, das Wichtigste über Unit-Test ist:

Wie sicher sind Sie über Ihren Code und stellen Sie sicher, dass die CI / CD-Automatisierung so viel wie möglich die Codierung Ebene Regression Bugs fangen.

zum Test -Cover

Endergebnis

Endergebnis – gif

Support-Phase

Diese Pipeline wird nur über das Wochenende gebaut, sagen wir, 10 Stunden Gesamtdesign, Entwicklung / Codierung. Aufgrund der Unit-Test-Abdeckung, Protokollierung und lokalen Integrationstest. Ich bin jedoch ziemlich zuversichtlich, dass es produktionsbereit ist …

Verbesserungsphase

Das einzige, was hier fehlt, ist die Sicherheitsimplementierung, die Umgebungsebene und die Codeebene. dies ist der wichtigste Teil, wenn Sie zur Produktion versenden möchten.

Dieser Artikel konzentriert sich hauptsächlich auf das Design und den Build. Der nächste Beitrag wird sich mehr auf Support und Verbesserung konzentrieren. 🙂

Teil 2:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.