13
Gabriele Baldoni Email: [email protected] Sitoweb: gabrielebaldoni.altervista.org Altro: plus.google.com/u/0/+GabrieleBaldoni/ @gabry

Go on AppEngine

Embed Size (px)

Citation preview

Page 1: Go on AppEngine

Gabriele Baldoni

Email: [email protected]

Sitoweb: gabrielebaldoni.altervista.org

Altro:

plus.google.com/u/0/+GabrieleBaldoni/

@gabry

Page 2: Go on AppEngine

Go on AppEngine

Cos’è Google AppEngine?

Google AppEngine è una PaaS (Platform-as-a-Service) fornita

da Google.

Cos’è GoLang?

GoLang è un linguaggio di programmazione rilasciato da Google

Page 3: Go on AppEngine

Go on AppEngine

+

Go è la runtime più veloce che è possibile utilizzare su App Engine

=

Page 4: Go on AppEngine

Go on AppEngine

Sembra tutto molto bello, ma è difficile utilizzare Go su AppEngine?

Assolutamente no, anzi la Go runtime di AppEngine fornisce un Interfaccia simile al package http standard di Go!

Ovviamente ci sono delle limitazioni su alcune librerieEs. scrittura di file su disco

Page 5: Go on AppEngine

Go on AppEngine

Non ti ho ancora convinto!?!?Vediamo il classico «Hello,World!»

package hello

import (

"fmt"

"net/http"

)

func init() {

http.HandleFunc("/", handler)

}

func handler(w http.ResponseWriter, r *http.Request) {

fmt.Fprint(w, "Hello, world!")

}

Sembra proprioIl package http standard!!

Page 6: Go on AppEngine

Go on AppEngine

Cosa mi viene messo a disposizione da Google per migliorarela mia WebApp/WebService?

• Datastore• Google Cloud SQL• Memcache• Channel API• Images • Log API• Mail API• Task Queue• Url Fetch• … e molto altro!

Page 7: Go on AppEngine

Go on AppEngine

Adesso diamo un piccolo sguardo al codice con una demopreparata appositamente per la DevFest…

GDG Catania TicTacToe!!

Caratteristiche:• IA (non molto intelligente) completamente in Go• Backend in Go su AppEngine• Storico delle partite salvato su Datastore• Accesso tramite Google Account• Leaderboard

Scaricala!!

Page 8: Go on AppEngine

Go on AppEngine

Cosa è stato utilizzato per sviluppare la demo

• Datastore• OAuth (su Android)• … e molte caratteristiche di Go

Page 9: Go on AppEngine

Go on AppEngine

Obiettivi della demo:

• Illustrare come è possibile realizzare un backend per un App Android in Go• Garantire tempi di risposta brevi• Salvare le partite e gli utenti sul Datastore

Guardiamo assieme il codice!

Page 10: Go on AppEngine

Go on AppEngine

Vediamo adesso come è stato utilizzato il Datastore

Due indici:• Utenti (Nome,emaili)• Risultati(email,risultato)

Guardiamo assieme il codice!

Page 11: Go on AppEngine

Go on AppEngine

Domande??

Page 12: Go on AppEngine

Go on AppEngine

Riferimenti:

https://cloud.google.com/appengine/docs/go/http://talks.golang.org/2013/highperf.slidehttp://talks.golang.org/2013/bestpractices.slidehttp://talks.golang.org/2011/Writing_Web_Apps_in_Go.pdf

Ringrazio Nunzio Giulio Caggegi del GDG Catania che mi ha aiutatonella realizzazione della demo Android

Page 13: Go on AppEngine

Grazie per l’attenzione

Email: [email protected]

Sitoweb: gabrielebaldoni.altervista.org

Altro:

plus.google.com/u/0/+GabrieleBaldoni/

@gabry

Gabriele Baldoni