Maison > développement back-end > Golang > Partagez dix excellentes bibliothèques Go

Partagez dix excellentes bibliothèques Go

Guanhui
Libérer: 2020-06-16 17:47:57
avant
4331 Les gens l'ont consulté

Partagez dix excellentes bibliothèques Go

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!

Étiquettes associées:
source:learnku.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal