Préparer l’Environnement de développement

Tout d’abord, configurer l’Environnement de développement. Je me souviens encore quand je commence mon parcours de développement, la période la plus douloureuse a été la mise en place de l’Environnement de développement, spécial comme ce genre de projet (plus de 3 systèmes), nous avons besoin de télécharger différents services (jar, binaire, etc.) afin de l’ouvrir en cours d’exécution localement, cependant merci pour la technologie des conteneurs, en utilisant un simple docker-compose.fichier yml, nous pouvons démarrer toutes les applications / composants clés dont nous avions besoin.

Tu vois, c’est simple comme ça ?

Développement / Codage

Commençons la partie amusante, Go est mon langage de développement récent, mais pourquoi j’ai choisi d’opter pour le développement de pipeline de données, en raison de sa simplicité, de ses performances et de sa sécurité de type. Ici, je ne vais pas expliquer les avantages de Go, si cela vous intéresse, veuillez vérifier Golang.org .

Comme d’habitude, si vous consultez mon article précédent

Comment construire un MachineBox.io API avec une couverture de tests unitaires à 100% en utilisant Go

Vous le saurez, j’utiliserai la même structure d’application.

1. Créez la connexion en créant la structure Env

2. Utilisation des interfaces

Vous pouvez être familier avec l’utilisation des interfaces en travaillant via la procédure pas à pas Go ou à partir de la documentation officielle. Cependant, la beauté de l’utilisation des interfaces dans Go, c’est que vous pouvez définir un ensemble de méthodes qu’un type (souvent struct) doit définir pour être considéré comme une implémentation de cette interface.

Lorsqu’un type donné implémente toutes les méthodes de cette interface, le compilateur Go sait automatiquement qu’il est autorisé à être utilisé comme ce type.

3. Journalisation

La journalisation est difficile!

Si vous avez déjà travaillé en tant que fonction relative de support de production d’applications. Vous apprécierez le développeur qui enregistre les informations sur le fonctionnement de l’application, quand et comment cette application a échoué, quel fichier, quelle fonction. (Un Plus+)

Exemple de journalisation

J’utilise les bibliothèques Uber Zap. Et j’encapsule également dans un assistant qui peut être utilisé dans différents projets à différents niveaux. Pour moi, je préfère renvoyer l’erreur de levier inférieure à l’implémentation principale.

Mise en œuvre de la journalisation

4. Test unitaire

L’écriture de tests unitaires peut garantir que notre code fonctionne comme prévu, est beaucoup moins « coûteuse » que si un bogue ou une régression aboutit à une version.

Si vous vous souvenez encore de l’implémentation de l’interface #1, et l’autre avantage de l’implémentation de l’interface est de vous aider à écrire facilement du code testable.

Exemple l’un des tests unitaires

La couverture des tests unitaires est un sujet intéressé, j’utilise assez fou pour retracer la couverture à 100%, cependant, j’apprends mes leçons, le plus important sur le test unitaire est:

À quel point vous êtes sûr de votre code et assurez-vous que l’automatisation CI / CD attrape autant que possible les bogues de régression au niveau du codage.

go test – couverture

Résultat final

Résultat final — gif

Phase de support

Ce pipeline n’est construit que pendant le week-end, disons 10 heures de conception totale, de développement / de codage. En raison de la couverture des tests unitaires, de la journalisation et du test d’intégration locale. Je suis assez confiant qu’il soit prêt pour la production, cependant

Phase d’amélioration

La seule chose qui manque ici, c’est l’implémentation de sécurité, le niveau d’environnement et le niveau de code. c’est la partie la plus importante si vous souhaitez expédier en production.

Cet article se concentre principalement sur la conception et la construction. Le prochain article se concentrera davantage sur le soutien et l’amélioration. 🙂

Partie 2 :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.