C'est tout ce que j'ai appris sur Go en DEUX semaines !

DEV - 25/10
Quelle est votre approche lorsque vous avez besoin d’apprendre quelque chose de nouveau ? J'en ai un très précis et encore une fois...

Quelle est votre approche lorsque vous avez besoin d’apprendre quelque chose de nouveau ? J'en ai un très spécifique et encore une fois je l'ai testé en apprenant le Golang !

Il y a trop de contenu pour en parler, mais mon objectif ici est de lister les choses que j'ai trouvées utiles et que j'ai spécifiquement pris le temps de bien apprendre.

Table des matières

  • 1. Prologue
  • 2. Rencontrez la CLI
    • CLI 2.1 : passer au module
    • 2.2 CLI : allez courir
  • 3. Comparaison de différentes syntaxes
    • 3.1 Syntaxe : classes/structures et encapsulation API
    • 3.2 Syntaxe : l'implémentation de l'interface est ÉTRANGE COMME FUC*
  • 4. Stdlib : définitivement une boîte à outils IMPRESSIONNANTE
    • 4.1 Packages : types primitifs
    • 4.2 Forfaits : éléments utiles
  • 5. Les tests dans Go sont SI SIMPLES
    • 5.1 Tests : tests de base
    • 5.2 Tests : modèle Jetbrains
    • 5.3 Tests : exécution de tests
  • 6. Méfiez-vous des importations cycliques
  • 7. Différer ceci, différer cela... Mais qu'est-ce qu'un Différer ?
  • 8. Gestion des erreurs pour les Noobs
  • 9. Conclusion : défi de codage à faible latence

1. Prologue

Au cours des 2 dernières semaines, j'ai appris et créé de petites applications avec Golang. Pour le moment, cela fait presque 50 heures de code à travers de nombreux livestreams et ça a été vraiment génial d'apprendre quelque chose que j'avais auparavant quelques petits problèmes avec le langage.

Au cours de ce voyage de deux semaines, j'ai conçu :

  • Une petite coque VRAIMENT simple
  • Une implémentation Redis Basic
  • Implémentation du protocole HTTP 1.1
  • Une implémentation de serveur DNS
  • et un test d'emploi pour une entreprise vraiment cool (qui sera disponible à la fin de cet article).

Et tout ça parce que mon patron m'a demandé, une fois de plus, d'apprendre une nouvelle technologie pour travailler sur certains PoC et démos de ScyllaDB... Je n'étais pas trop content de la décision, mais bon, c'est mon travail.

Au cours de la dernière année, j'ai étudié Rust, et c'est probablement encore trop complexe pour moi, mais j'ai appris des concepts vraiment sympas qui ont fait que mon passage à Go a fonctionné à merveille !

Dans cet article, je vais vous donner quelques astuces et conseils pour accélérer votre flux d'apprentissage.

2. Rencontrez la CLI

Je suis un développeur PHP et je suis habitué à la MEILLEURE CLI jamais créée (oui, c'est Artisan), mais au cours de mon parcours en tant que développeur, j'ai vécu des projets géniaux dont beaucoup ont été .. :

  • Cargaison (rouille)
  • NPM (JS)
  • Compositeur (PHP)
  • et ainsi de suite...

Quand je suis arrivé à l’environnement Go, cela a commencé comme un réel problème. Au moins pour moi, l'expérience développeur de Golang en termes d'outils et de documentation pourrait être bien meilleure. En y réfléchissant, j'ai décidé de passer en revue 3 commandes qu'il faut APPRENDRE au début.

N'oubliez pas : il ne s'agit que d'une présentation pas à pas avec ma propre explication des choses. Si vous voulez des informations détaillées, ouvrez la documentation :) Aussi : allez dans la documentation, c'est nul, s'il vous plaît, quelqu'un y met un surligneur de syntaxe

CLI 2.1 : passer au module

Selon que vous souhaitiez modulariser votre application ou disposer d'un environnement organisé, ce sera la commande la plus utile dans un premier temps.

Leallez modLa commande gère toutes les dépendances au sein de votre projet et s'occupe également desuppression automatiquetout ce qui n'est plus utilisé.

Tout d'abord, dans votre nouveau dossier vide, initions un nouveau module dans le projet avecvas-y, initialise le mod:

mkdir go-fodase cd go-fodase # go mod initaller mod init github.com/danielhe4rt/go-fodase
Entrer en mode plein écran Quitter le mode plein écran

Cela créera un nouveau fichier à la racine du projet appeléaller.mod, qui est essentiellement le contenu pour le moment :

  • Le nom du module
  • Votre version Go

Voici le fichier, si vous souhaitez le vérifier vous-même :

# dossier : ~/go-fodase cat go.mod # module github.com/danielhe4rt/gofodase # # go 1.23.2
Entrer en mode plein écran Quitter le mode plein écran

Après cela, la prochaine chose que j'ai vraiment aimé, c'est levas-y, range-toi, qui ajoute essentiellement toutes les dépendances manquantes et supprime celles inutilisées.

vas-y, range-toi
Entrer en mode plein écran Quitter le mode plein écran

Ce deuxième est juste pour garder à l'esprit que cela existe et que c'est vraiment utile ! Votre environnement l'exécutera probablement à CHAQUE FOIS et vous vous habituerez à voir les importations disparaître :p

2.2 CLI : allez courir

C'est probablement la commande la plus courante que vous utiliserez, puisque vous DEVEZ exécuter votre projet, mais voici comment cela fonctionne :

  • Vous devez pointer vers le fichier qui contient leprincipal()fonction.
  • Il n'est pas nécessaire que ce fichier se trouve à la racine de votre dossier.

La chose la plus importante à retenir à propos de cette commande est que lorsque vous exécutez lava courircommande, il recherchera lealler.moddans votre répertoire actuel et utilisez-le comme base pour mapper l'ensemble de votre projet (importations, packages, etc.). Voici quelques exemples :

# va courir#Environnement 1# . # ├── go.mod # └── main.go allez exécuter app.go # Environnement 2 # . # ├── go.mod # └── src # └── main.go allez exécuter src/app.go
Entrer en mode plein écran Quitter le mode plein écran

Voici notreapp.gocontenu:

package main import( "fmt" ) func main () { fmt.Println("quoi de neuf ! n'oubliez pas d'aimer cet article <3") }
Entrer en mode plein écran Quitter le mode plein écran

Vous connaissez désormais les bases pour exécuter un projet ! Littéralement, bonjour tout le monde !

3. Comparaison de différentes syntaxes :

Mon problème avec Go a toujours été la façon dont il est écrit, mais après des heures de codage, j'ai réalisé que c'était plus simple que je ne le pensais. Comme vous l'avez peut-être deviné, j'ai une solide expérience en PHP et une certaine expérience avec Rust.

Quand j'ai commencé à apprendre Rust en 2023, heureusement, un gars dont je suis un grand fan, Nuno Maduro (Laravel), a donné une conférence intitulée "PHP for Rust Developers", qui m'a donné une introduction de base à la syntaxe et m'a donné quelques un répit alors que j'étais complètement STOMPÉ par Rust.

Bref, ça m’a été utile à l’époque, alors pourquoi ne pas faire quelques com...
[Courte citation de 8% de l'article original]

Loading...