1. Golang-Set
Go a des tableaux, des tranches et des cartes, mais il n'a pas d'ensembles. Vous pouvez utiliser une carte booléenne pour simuler une collection, mais il est préférable d'avoir un type de données réel avec les opérations et la sémantique correctes.
C'est l'adresse de golang-set
2 Couleur
Continuons l'introduction de la couleur. Lors de l’écriture de programmes de commandes, il est très utile d’utiliser la couleur pour mettre en évidence les messages importants et distinguer les erreurs, les réussites et les avertissements. Le package
color fournit un moyen simple d'ajouter de la couleur à votre programme (vous voyez ce que j'ai fait ?). Il utilise les codes d'échappement ANSII et prend également en charge Windows !
4. Gen
L'outil gen génère du code pour vous - en particulier le code de reconnaissance de type, qui tente de compenser le manque de modèles ou de génériques dans Go
Vous pouvez annoter votre type avec une annotation spéciale et gen générera les fichiers sources inclus dans votre projet.
5. Gorm
Go est connu pour son style minimaliste. La programmation de bases de données ne fait pas exception. Les bibliothèques de bases de données les plus populaires dans Go sont de très bas niveau. Gorm introduit le mappage objet-relationnel dans les fonctionnalités suivantes :
Association (en a un, en a plusieurs, appartient à, plusieurs à plusieurs, polymorphisme)
Rappel (Avant/Après Créer/Enregistrer/Mettre à jour/Supprimer/Rechercher)
Précharger (précharger)
Transaction
Clé primaire composite
SQL Builder
Migration automatique
Journal
Extensible, écriture de plug-ins basés sur les rappels GORM
Mais cela ne couvre pas tout.
Si vous avez déjà développé en Python, ne comptez pas sur SQLAlchemy.
Pour une utilisation plus avancée, vous devez regarder la couche inférieure.
6. Goose
L'une des tâches les plus importantes lorsque l'on travaille avec une base de données relationnelle est la gestion du schéma.
Dans certaines entreprises, modifier le schéma de la base de données est considéré comme un changement « effrayant ». Le package goose vous aide à modifier le schéma et même à effectuer une migration de données si nécessaire. Vous pouvez utiliser goose up
et goose down
comme vous le souhaitez. Mais gardez un œil sur vos données pour vous assurer qu’elles ne sont ni perdues ni endommagées.
Goose fonctionne en versionnant les schémas et en utilisant les fichiers de migration correspondant à chaque schéma. Les fichiers de migration peuvent utiliser des commandes SQL ou des commandes Go. Voici un exemple de fichier de migration SQL qui ajoute une nouvelle table :
8. Ginkgo
Ginkgo est un framework de test BDD (behaviour-driven development). Il vous permet d'écrire des tests en utilisant une syntaxe de type anglais et permet aux personnes moins techniques d'examiner les tests (et les résultats) et de vérifier qu'ils répondent aux exigences de l'entreprise.
Certains développeurs aiment également ce style de spécification de test. Il s'intègre au package de test intégré de Go et est souvent utilisé avec Gomega.
9. Etcd
Etcd est un magasin clé-valeur distribué fiable. Le serveur est implémenté dans Go et les clients Go interagissent avec lui via gRPC.
Il se concentre sur les aspects suivants :
Simple : API bien définie et orientée utilisateur (gRPC).
Sécurité : TLS automatique avec authentification par certificat client en option.
Rapide : repère de 10 000 écritures/sec.
Fiable : utilisez Raft pour une allocation raisonnable.
10.NSQ
NSQ est une bonne file d'attente distribuée. Je l'ai utilisé avec succès comme composant majeur d'un grand système distribué. Voici quelques-unes de ses fonctionnalités :
Prend en charge la topologie distribuée et aucun SPOF.
Évolutif horizontalement (aucun agent, plus de nœuds peuvent être ajoutés au cluster de manière transparente).
Messagerie push à faible latence (performances).
Combinaison d'équilibrage de charge et de routage des messages multicast.
Bénéficiez d'Excel dans les charges de travail de streaming (débit élevé) et orientées travail (faible débit).
Principalement en mémoire (les messages qui dépassent la limite supérieure sont conservés de manière transparente sur le disque).
Un service de découverte d'exécution (nsqlookupd) permettant aux consommateurs de trouver des producteurs.
Sécurité de la couche de transport (TLS).
Détection du format des données.
Peu de dépendances (facile à déployer) et configuration par défaut raisonnable et limitée.
Le protocole TCP simple prend en charge n'importe quelle langue de la bibliothèque cliente.
Interface HTTP pour les statistiques, les opérations de gestion et les producteurs (pas besoin de publier des bibliothèques clientes).
Intégrez-vous à statsd pour obtenir une détection en temps réel.
Interface de gestion de cluster robuste (nsqadmin).
Tutoriel recommandé : "Go Tutorial"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!