Go on AppEngine

Preview:

Citation preview

Gabriele Baldoni

Email: gabriele.baldoni@gmail.com

Sitoweb: gabrielebaldoni.altervista.org

Altro:

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

@gabry

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

Go on AppEngine

+

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

=

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

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

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!

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

Go on AppEngine

Cosa è stato utilizzato per sviluppare la demo

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

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!

Go on AppEngine

Vediamo adesso come è stato utilizzato il Datastore

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

Guardiamo assieme il codice!

Go on AppEngine

Domande??

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

Grazie per l’attenzione

Email: gabriele.baldoni@gmail.com

Sitoweb: gabrielebaldoni.altervista.org

Altro:

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

@gabry

Gabriele Baldoni