Soyez Ready to Go - HumanTalks Montpellier 02/2013

Preview:

DESCRIPTION

Un rapide tour d'horizon de **Golang** le language issue des fin fonds de chez Google et qui intrigue tant de personnes. Nous verront pourquoi il est interessant, pourquoi il a été développé et quels sont les concepts qui font sa force. Nous aborderont sa syntaxe, son système d'objets et son système de concurrence. Si le sujet plait, pourquoi pas creuser certaines parties. Merci à @campoy83 pour les conseils et la correction technique ;) http://humantalks.com/talks/96-soyez-ready-to-go

Citation preview

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»