2. 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
3. Go on AppEngine
+
Go è la runtime più veloce che è possibile utilizzare su App Engine
=
4. 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 librerie
Es. scrittura di file su disco
5. 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 proprio
Il package http standard!!
6. Go on AppEngine
Cosa mi viene messo a disposizione da Google per migliorare
la mia WebApp/WebService?
• Datastore
• Google Cloud SQL
• Memcache
• Channel API
• Images
• Log API
• Mail API
• Task Queue
• Url Fetch
• … e molto altro!
7. Go on AppEngine
Adesso diamo un piccolo sguardo al codice con una demo
preparata 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!!
8. Go on AppEngine
Cosa è stato utilizzato per sviluppare la demo
• Datastore
• OAuth (su Android)
• … e molte caratteristiche di Go
9. 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!
10. Go on AppEngine
Vediamo adesso come è stato utilizzato il Datastore
Due indici:
• Utenti (Nome,emaili)
• Risultati(email,risultato)
Guardiamo assieme il codice!