Transcript
Page 1: Soyez Ready to Go - HumanTalks Montpellier 02/2013

Be ready to !

Julien Bordellier

@jstoja

#golang

#humantalks

Page 2: Soyez Ready to Go - HumanTalks Montpellier 02/2013

Mots clefs

Concurrent

Orienté objet

C-like + cgo

Open Source (BSD)

Garbage collector

Typage fort

Compilé (so faaaaast)

Page 3: Soyez Ready to Go - HumanTalks Montpellier 02/2013

Orienté Objet ?

Objets simples

type myType struct {value []bytesize uint64

}

(oui le type est après le nom de la variable)

Page 4: Soyez Ready to Go - HumanTalks Montpellier 02/2013

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»

Page 5: Soyez Ready to Go - HumanTalks Montpellier 02/2013

Orienté Objet ?

Export de fonctions clair et simple

func MyFunction() {// Lines of code

}

func myFunction() {// Lines of code

}

exportée

exportéenon-

Page 6: Soyez Ready to Go - HumanTalks Montpellier 02/2013

Orienté Objet ?

Méthodes claires

func (myObj myType) MethodName() (myRetVar uint64) {// Lines of code

}

Page 7: Soyez Ready to Go - HumanTalks Montpellier 02/2013

Orienté Objet ?

Héritage Composition

Interfaces = ensemble de méthodes

Pas d’implémentation de classes

Satisfaction implicite de l’interface

Page 8: Soyez Ready to Go - HumanTalks Montpellier 02/2013

Concurrent

Un seul

Gopher

Request

MyApp

Page 9: Soyez Ready to Go - HumanTalks Montpellier 02/2013

Concurrent

MyApp

Request

Travail en

concurence

Attention:Concurrent != Parallèle

Page 10: Soyez Ready to Go - HumanTalks Montpellier 02/2013

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.

Page 11: Soyez Ready to Go - HumanTalks Montpellier 02/2013

Concurrent

Communiquer en partageant

c’est

MAUVAIS

Page 12: Soyez Ready to Go - HumanTalks Montpellier 02/2013

Concurrent

Partager encommuniquant

c’est

LE BIEN

Page 13: Soyez Ready to Go - HumanTalks Montpellier 02/2013

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 !!!

Page 14: Soyez Ready to Go - HumanTalks Montpellier 02/2013

Du Code?

Si le sujet plait,la prochaine fois on codera !

Page 15: Soyez Ready to Go - HumanTalks Montpellier 02/2013

Richesse

Apprennez en plus !

golang.org => tour.golang.org

talks.golang.org

vimeo.com/53221560 - «Code that grows with grace»