Heim >Backend-Entwicklung >Golang >Teilen Sie zehn ausgezeichnete Go-Bibliotheken
1. Golang-Set
Go hat Arrays, Slices und Maps, aber keine Sets. Sie können eine boolesche Karte verwenden, um eine Sammlung zu simulieren, es ist jedoch besser, einen tatsächlichen Datentyp mit den richtigen Operationen und der richtigen Semantik zu haben.
Dies ist die Adresse von Golang-Set
2. Farbe
Lassen Sie uns mit der Einführung von Farbe fortfahren. Beim Schreiben von Befehlsprogrammen ist es sehr nützlich, Farben zu verwenden, um wichtige Nachrichten hervorzuheben und Fehler, Erfolge und Warnungen zu unterscheiden. Das
Farbpaket bietet eine einfache Möglichkeit, Ihrem Programm etwas Farbe hinzuzufügen (sehen Sie, was ich getan habe?). Es verwendet ANSII-Escape-Codes und unterstützt auch Windows!
4. Gen
Das Gen-Tool generiert Code für Sie – insbesondere typbewussten Code, der versucht, den Mangel an Vorlagen oder Generika in Go auszugleichen
Sie können Ihren Typ mit einer speziellen Anmerkung versehen und gen generiert die in Ihrem Projekt enthaltenen Quelldateien.
5. Gorm
Go ist für seinen minimalistischen Stil bekannt. Datenbankprogrammierung ist keine Ausnahme. Die beliebtesten DB-Bibliotheken in Go sind sehr Low-Level-Bibliotheken. Gorm führt die objektrelationale Zuordnung in die folgenden Funktionen ein:
Assoziation (Hat eins, hat viele, gehört zu, viele zu vielen, Polymorphismus)
Rückruf (vor/nach dem Erstellen/Speichern/Aktualisieren/Löschen/Suchen)
Vorladen (Vorladen)
Transaktion
Zusammengesetzter Primärschlüssel
SQL Builder
Automatische Migration
Protokoll
Erweiterbar, Schreiben von Plug-Ins basierend auf GORM-Rückrufen
Aber das deckt nicht alles ab.
Wenn Sie bereits in Python entwickelt haben, verlassen Sie sich bitte nicht auf SQLAlchemy.
Für eine erweiterte Nutzung müssen Sie sich die unterste Ebene ansehen.
6. Goose
Eine der wichtigsten Aufgaben bei der Arbeit mit einer relationalen Datenbank ist die Verwaltung des Schemas.
In einigen Unternehmen wird die Änderung des Datenbankschemas als „beängstigende“ Änderung angesehen. Das goose-Paket hilft Ihnen, das Schema zu ändern und bei Bedarf sogar eine Datenmigration durchzuführen. Sie können goose up
und goose down
nach Belieben verwenden. Behalten Sie jedoch Ihre Daten im Auge, um sicherzustellen, dass sie nicht verloren gehen oder beschädigt werden.
Goose funktioniert durch die Versionierung von Schemata und die Verwendung von Migrationsdateien, die jedem Schema entsprechen. Migrationsdateien können SQL-Befehle oder Go-Befehle verwenden. Hier ist ein Beispiel für eine SQL-Migrationsdatei, die eine neue Tabelle hinzufügt:
8. Ginkgo
Ginkgo ist ein BDD-Testframework (verhaltensgesteuerte Entwicklung). Sie können damit Tests mit einer englischsprachigen Syntax schreiben und weniger technisch versierte Personen können die Tests (und die Ausgabe) untersuchen und überprüfen, ob sie den Geschäftsanforderungen entsprechen.
Einige Entwickler mögen diese Art der Testspezifikation auch. Es lässt sich in das integrierte Testpaket von Go integrieren und wird häufig in Verbindung mit Gomega verwendet.
9. Etcd
Etcd ist ein zuverlässiger verteilter Schlüsselwertspeicher. Der Server ist in Go implementiert und Go-Clients interagieren über gRPC mit ihm.
Es konzentriert sich auf die folgenden Aspekte:
Einfach: Gut definierte, benutzerorientierte API (gRPC).
Sicherheit: Automatisches TLS mit optionaler Client-Zertifikatauthentifizierung.
Schnell: Benchmark 10.000 Schreibvorgänge/Sek.
Zuverlässig: Verwenden Sie Raft für eine angemessene Zuweisung.
10. NSQ
NSQ ist eine gute verteilte Warteschlange. Ich habe es erfolgreich als Hauptkomponente eines großen verteilten Systems eingesetzt. Hier sind einige seiner Funktionen:
Unterstützt verteilte Topologie und kein SPOF.
Horizontal skalierbar (keine Agenten, weitere Knoten können nahtlos zum Cluster hinzugefügt werden).
Push-basiertes Messaging mit geringer Latenz (Leistung).
Kombinierter Lastausgleich und Multicast-Nachrichtenrouting.
Verwenden Sie Excel sowohl für Streaming-Workloads (hoher Durchsatz) als auch für arbeitsorientierte Workloads (geringer Durchsatz).
Hauptsächlich im Speicher (Nachrichten, die die Obergrenze überschreiten, werden transparent auf der Festplatte gespeichert).
Ein Laufzeiterkennungsdienst (nsqlookupd), mit dem Verbraucher Produzenten finden können.
Transport Layer Security (TLS).
Datenformaterkennung.
Wenige Abhängigkeiten (einfach bereitzustellen) und sinnvolle, begrenzte Standardkonfiguration.
Das einfache TCP-Protokoll unterstützt jede Sprache in der Client-Bibliothek.
HTTP-Schnittstelle für Statistiken, Verwaltungsvorgänge und Produzenten (keine Notwendigkeit, Client-Bibliotheken zu veröffentlichen).
Integration mit statsd, um eine Echtzeiterkennung zu erreichen.
Robuste Cluster-Management-Schnittstelle (nsqadmin).
Empfohlenes Tutorial: „Go Tutorial“
Das obige ist der detaillierte Inhalt vonTeilen Sie zehn ausgezeichnete Go-Bibliotheken. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!