Apprendre Go par les tests

Soutenez-moi
Je suis fier d'offrir cette ressource gratuitement, mais si vous souhaitez exprimer votre reconnaissance
Apprenez le développement piloté par les tests avec Go
Explorez le langage Go en écrivant des tests
Acquérez les bases du TDD. Go est un bon langage pour apprendre le TDD car c'est un langage simple à apprendre et les tests sont intégrés
Soyez confiant dans votre capacité à commencer à écrire des systèmes robustes et bien testés en Go
Cette traduction française a été effectuée par GooseGeeseJeez.
Version originale (Anglais) : Learn Go With Tests
Contexte
J'ai une certaine expérience dans l'introduction de Go auprès d'équipes de développement et j'ai essayé différentes approches pour faire évoluer une équipe, de personnes curieuses à propos de Go à des développeurs hautement efficaces de systèmes Go.
Ce qui n'a pas fonctionné
Lire le livre
Une approche que nous avons essayée consistait à prendre le livre bleu et chaque semaine, à discuter du chapitre suivant ainsi que des exercices.
J'adore ce livre, mais il exige un niveau d'engagement élevé. Le livre est très détaillé dans l'explication des concepts, ce qui est évidemment excellent, mais cela signifie que le progrès est lent et régulier - ce qui ne convient pas à tout le monde.
J'ai constaté que bien qu'un petit nombre de personnes lisaient le chapitre X et faisaient les exercices, beaucoup ne le faisaient pas.
Résoudre des problèmes
Les katas sont amusants, mais leur portée pour apprendre un langage est généralement limitée ; il est peu probable que vous utilisiez des goroutines pour résoudre un kata.
Un autre problème se pose lorsque vous avez des niveaux d'enthousiasme variables. Certaines personnes apprennent beaucoup plus du langage que d'autres et, lorsqu'elles démontrent ce qu'elles ont fait, finissent par confondre les gens avec des fonctionnalités que les autres ne connaissent pas.
Cela finit par rendre l'apprentissage assez non structuré et ad hoc.
Ce qui a fonctionné
De loin, la méthode la plus efficace consistait à introduire lentement les fondamentaux du langage en lisant go by example, en les explorant avec des exemples et en les discutant en groupe. C'était une approche plus interactive que "lire le chapitre x pour les devoirs".
Au fil du temps, l'équipe a acquis une base solide de la grammaire du langage, ce qui nous a permis de commencer à construire des systèmes.
Pour moi, cela semble analogue à la pratique des gammes lorsqu'on essaie d'apprendre la guitare.
Peu importe à quel point vous vous considérez artistique, vous êtes peu susceptible d'écrire de la bonne musique sans comprendre les fondamentaux et pratiquer les mécanismes.
Ce qui fonctionne pour moi
Quand j'apprends un nouveau langage de programmation, je commence généralement par expérimenter dans un REPL, mais finalement, j'ai besoin de plus de structure.
Ce que j'aime faire, c'est explorer des concepts puis solidifier les idées avec des tests. Les tests vérifient que le code que j'écris est correct et documentent la fonctionnalité que j'ai apprise.
En m'appuyant sur mon expérience d'apprentissage en groupe et ma propre méthode personnelle, je vais essayer de créer quelque chose qui, je l'espère, s'avérera utile à d'autres équipes. Apprendre les fondamentaux en écrivant de petits tests afin que vous puissiez ensuite utiliser vos compétences existantes en conception de logiciels et déployer d'excellents systèmes.
À qui cela s'adresse
Les personnes intéressées par l'apprentissage de Go
Les personnes qui connaissent déjà un peu Go, mais qui veulent explorer davantage les tests
Ce dont vous aurez besoin
Un ordinateur !
Un éditeur de texte
Une certaine expérience en programmation. Compréhension des concepts comme
if, les variables, les fonctions, etc.À l'aise avec l'utilisation du terminal
Retour d'information
Ajoutez des issues/soumettez des PR ici ou tweetez-moi @quii
Mis à jour