Be ready to !
Julien Bordellier
@jstoja
#golang
#humantalks
Mots clefs
Concurrent
Orienté objet
C-like + cgo
Open Source (BSD)
Garbage collector
Typage fort
Compilé (so faaaaast)
Orienté Objet ?
Objets simples
type myType struct {value []bytesize uint64
}
(oui le type est après le nom de la variable)
Orienté Objet ?
Système de packages
Nom du package en début de fichier :package webapp
Import du package dans un autre package :import «webapp»
Orienté Objet ?
Export de fonctions clair et simple
func MyFunction() {// Lines of code
}
func myFunction() {// Lines of code
}
exportée
exportéenon-
Orienté Objet ?
Méthodes claires
func (myObj myType) MethodName() (myRetVar uint64) {// Lines of code
}
Orienté Objet ?
Héritage Composition
Interfaces = ensemble de méthodes
Pas d’implémentation de classes
Satisfaction implicite de l’interface
Concurrent
Un seul
Gopher
Request
MyApp
Concurrent
MyApp
Request
Travail en
concurence
Attention:Concurrent != Parallèle
Concurrent
Lancer une méthode en concurrence
func main() {myFunction() //Lancée normalementgo myFunction() //Lancée dans une goroutine
}
Une goroutine s’exécute en fond, le programmen’attend pas le retour de la fonction.
Concurrent
Communiquer en partageant
c’est
MAUVAIS
Concurrent
Partager encommuniquant
c’est
LE BIEN
Les channels
Même fonctionnement que les pipes unix.Des données en entrée vont vers la sortie,
bloquant ou non.
C’est LE moyen de communicationentre les goroutines !!!
Du Code?
Si le sujet plait,la prochaine fois on codera !
Richesse
Apprennez en plus !
golang.org => tour.golang.org
talks.golang.org
vimeo.com/53221560 - «Code that grows with grace»