Skip to content

Latest commit

 

History

History
134 lines (90 loc) · 4.01 KB

20160308_ParisJUG_Go-programming.adoc

File metadata and controls

134 lines (90 loc) · 4.01 KB

2016/02/09 - Paris JUG - Software Craftsmanship

Notes

Par Didier Girard, @didiergirard, CTO de SFEIR

SFEIR 2016 : 300 personnes

Pourquoi Golan ?

  • simple, facile à lire

  • facile à apprendre : retour de Didier, 5 soirées pour être autonome

  • va à l’essentiel

  • d’où contribution facile

  • communauté sympathique (guideline de bonne conduite)

Éléments du langage :

  • Go n’est pas objet, se rapproche du C

  • defer pour "déférer" une action (comme la fermeture d’un fichier)

  • return de multiples valeurs possible

  • Go n’est pas DRY (Don’t Repeat Yourself) → il va y avoir de la duplication de code

  • Pas d’héritage en Go (il faut passer par la composition )

  • pas de generics

  • pas d’exceptions ! On fait un return (d’où le return multiple)

  • pas de système de packaging / versioning

  • pas D’IDÉE

  • pas de debugging facile

Avantages :

  • compile vite

  • pas BESOIN d’un IDE

  • gofmt : outil pour formater le code (normaliser, utilisation obligatoire pour contribuer)

  • binaires de petite taille

Pour Didier, le cloud n’est pas une révolution en lui même.
Ses buzz words sont plutôt : cloud / multi-core / container

  • Docker est écrit en Go !

  • Point important de la technologie : paiement à l’usage

  • Go est pensé pour le multi-core.

    • Java / C# et Co ont été codés pour du mono core

  • Mot clé "go" pour forcer la création d’une nouvelle go routine

    • c’est ce mot clé qui a donné son nom au langage

  • Réflexion : quel intérêt de gagner 10 ms (démarrage container) quand l’application se lance en 10 sec…​

  • Idéal : démarrer son container de façon transparente en fonction de la demande (les requêtes en entrée )

De ce côté, Didier met très en avant AppEngine

Mot de la fin :

  • Kernighan a écrit "the C langague", ET a également écrit "the Go Programming Langague"

  • Go va être le langage enseigné pour apprendre la programmation distribuée.

  • Baidu : 100 000 000 000 de requêtes encaissées en Go quotidiennement

    • Autres utilisateurs : Dropbox, Uber

Début du blog "ongolang" par Didier et Guillaume Laforge.

IDE conseillé : Visual Studio Code (rien à voir avec le Visual Studio "classique" de MS)

Du Go Spaghetti au Cloud en moins d'1h

David Gageot : "écrire des tests en Go, c’est concept…​"

  • Comme IDE : Visual Studio Code semble être de plus en plus à la mode.

    • Sinon, on a aussi IntelliJ, Atom, Emacs, Vim, Sublime

  • David : Go dep est…​ un enfer

    • Tout ce qui est le versioning / packaging est compliqué (idem pour la gestion de dépendances)

  • La communauté Go devrait VERSIONNER ses packages (avec la version DANS le nom du package)

  • En Go on ne dépend QUE du code source, pas de binaires
    → conséquence : la compilation est rapide, mais PAS le linking