際際滷

際際滷Share a Scribd company logo
GOLANGIT
Italian gophers!
I came, I saw, I GO!
2014 golangit meetup @
@giorrrgio
@liuggio
GOLANGIT
I founder
GOLANGIT
Nascita di un logo
original gopher by Ren辿e French
GOLANGIT
Nascita di un logo
Creare un punto di
riferimento per gli
sviluppatori GO italiani
GOLANGIT
Uno UG dedicato a GO
Lavorare insieme per far
diffondere go nel mercato
italiano
GOLANGIT
Uno UG dedicato a GO
Aiutare i neofiti a crescere
GOLANGIT
Uno UG dedicato a GO
da dove partire?
GOLANGIT
Uno UG dedicato a GO
sudo apt-get install golang
GOLANGIT
Uno UG dedicato a GO
GOLANGIT
Uno UG dedicato a GO
Parlane con i tuoi amici
nerd!
GOLANGIT
Uno UG dedicato a GO
Nella prossima soa in cui
metterai mano, un
servizio go sar il tuo
apprezzatissmo easter
egg!
GOLANGIT
Uno UG dedicato a GO
Aspettiamo le tue PR :-)
http://golangit.github.io
GOLANGIT
Uno UG dedicato a GO
GOLANGIT
Perch辿 GO?
Abbiamo troppi core!
GOLANGIT
Problema 1
Abbiamo bisogno di un linguaggio di
programmazione di basso livello
che ci permetta di sfruttare
efficientemente le architetture
multiprocessore
GOLANGIT
Problema 2
S狸, ma ...
GOLANGIT
ERLANG?
GOLANGIT
ERLANG?
GOLANGIT
ERLANG?
Linguaggio di basso livello per lo
sviluppo su architetture
multiprocessore
GOLANGIT
GOLANG!
Nato con la concorrenza
in mente
GOLANGIT
GOLANG!
Nato con la semplicit
in mente
GOLANGIT
GOLANG!
no type inheritance
no method or operator overloading
no circular dependencies among
packages
no pointer arithmetic
no assertions
no generic programming
GOLANGIT
GOLANG!
Scrivere software multi-
thread
non 竪 complicato
GOLANGIT
GOLANG - Goroutines e Channels
Non 竪 cos狸 immediato far
comunicare i thread
GOLANGIT
GOLANG - Goroutines e Channels
Communicating
Sequential Processes
canali di comunicazione tra thread
instanziabili direttamente dai
programmi
GOLANGIT
GOLANG - Goroutines e Channels
Feature decisiva per lo sviluppo
multi-thread:
Decidere esattamente quando
distruggere un oggetto condiviso
tra pi湛 thread pu嘆 diventare
davvero complicato.
GOLANGIT
GOLANG - Garbage Collection
No virtual machine
No JIT-compiling
Compilatore statico
GOLANGIT
GOLANG - No large runtime env
archive, bufio, builtin, bytes, compress,
container, crypto, database, debug,
encoding, errors, expvar, flag, fmt, go,
hash, html, image, index, io, log, math,
mime, net, os, path, reflect, regexp,
runtime, sort, strconv, strings,
suffixarray, sync, syscall, testing, text,
time, unicode, unsafe
GOLANGIT
GOLANG - Standard library
net/http: webserver integrato
fastcgi: utilizzabile con qualsiasi
webserver
GOLANGIT
GOLANG - Amico del webdev
Occhio: una request, una nuova
goroutine
Possibilit di condivisione channel
tra diverse request (e quindi
client)
GOLANGIT
GOLANG - Amico del webdev
HTTP CLIENT
Html parsing
Templating
GOLANGIT
GOLANG - Amico del webdev
Google (ma dai?) - Docker -
Canonical - Heroku -
Digital Ocean - SoundCloud
- Bitly - CloudFlare - BBC
World News - Nokia
Siemens Networks
GOLANGIT
GOLANG - Chi usa Go
GOLANGIT
OH MY GO ANOTHER LANGUAGE ...
GOLANGIT
Go to 60
GOLANGIT
Go to 78
GOLANGIT
Go to 2007
GOLANGIT
GO SCALABILITY
GOLANGIT
GO FEATURES
// Java / php style
Class MyGreatService
{
doSomething(AcmeLibLogInterface
logger)
{
logger->info('boom');
}
GOLANGIT
JAVA INTERFACES
// GO LANG
import "...loggerFunnyLib"
type logger interface {
info()
}
func doSomething(log logger) {
log.info('boom')
}
GOLANGIT
GO INTERFACES
GOLANGIT
Reference
http://www.meetup.com/golangit/
https://golangit.github.io
golangit su google groups

More Related Content

What's hot (20)

Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Natale Vinto
Introduzione a Docker (Maggio 2017) [ITA]
Introduzione a Docker (Maggio 2017) [ITA]Introduzione a Docker (Maggio 2017) [ITA]
Introduzione a Docker (Maggio 2017) [ITA]
Valerio Radice
Introduzione a Docker (parte 2 - Pratica)
Introduzione a Docker (parte 2 - Pratica)Introduzione a Docker (parte 2 - Pratica)
Introduzione a Docker (parte 2 - Pratica)
Cristian Consonni
Vagrant e Docker a confronto;scegliere ed iniziare
Vagrant e  Docker a confronto;scegliere ed iniziareVagrant e  Docker a confronto;scegliere ed iniziare
Vagrant e Docker a confronto;scegliere ed iniziare
Daniele Mondello
[drupalday2017] - DevOps: strumenti di automazione per Drupal8
[drupalday2017] - DevOps: strumenti di automazione per Drupal8[drupalday2017] - DevOps: strumenti di automazione per Drupal8
[drupalday2017] - DevOps: strumenti di automazione per Drupal8
DrupalDay
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
Marco Parenzan
Docker Fudamentals
Docker FudamentalsDocker Fudamentals
Docker Fudamentals
mvetro
Closure Visto Da Vicino
Closure Visto Da VicinoClosure Visto Da Vicino
Closure Visto Da Vicino
davide ficano
Mobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web DevelopersMobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web Developers
sparkfabrik
I linguaggi di programmazione e il mondo open-source
I linguaggi di programmazione e il mondo open-sourceI linguaggi di programmazione e il mondo open-source
I linguaggi di programmazione e il mondo open-source
Bergamo Linux Users Group
Introduzione pratica a docker, da chi lo ha appena conosciuto
Introduzione pratica a docker, da chi lo ha appena conosciutoIntroduzione pratica a docker, da chi lo ha appena conosciuto
Introduzione pratica a docker, da chi lo ha appena conosciuto
Daniele Megna
Ubuntu Touch: Sviluppo App e Convergenza
Ubuntu Touch: Sviluppo App e ConvergenzaUbuntu Touch: Sviluppo App e Convergenza
Ubuntu Touch: Sviluppo App e Convergenza
Giulio Collura
Automation Night (Docker)
Automation Night (Docker)Automation Night (Docker)
Automation Night (Docker)
Giuliano Latini
Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017
MongoDB
Progetto Linux va a scuola - Descrizione tecnica
Progetto Linux va a scuola - Descrizione tecnicaProgetto Linux va a scuola - Descrizione tecnica
Progetto Linux va a scuola - Descrizione tecnica
Bergamo Linux Users Group
Progetto Linux va a scuola
Progetto Linux va a scuolaProgetto Linux va a scuola
Progetto Linux va a scuola
Bergamo Linux Users Group
Conferenza Pymaemo
Conferenza PymaemoConferenza Pymaemo
Conferenza Pymaemo
Andrea Grandi
Introduzione DevOps con Ansible
Introduzione DevOps con AnsibleIntroduzione DevOps con Ansible
Introduzione DevOps con Ansible
Matteo Magni
App Engine + Python
App Engine + PythonApp Engine + Python
App Engine + Python
Simone Marzola
Anatomia di un progetto open-source
Anatomia di un progetto open-sourceAnatomia di un progetto open-source
Anatomia di un progetto open-source
Bergamo Linux Users Group
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Natale Vinto
Introduzione a Docker (Maggio 2017) [ITA]
Introduzione a Docker (Maggio 2017) [ITA]Introduzione a Docker (Maggio 2017) [ITA]
Introduzione a Docker (Maggio 2017) [ITA]
Valerio Radice
Introduzione a Docker (parte 2 - Pratica)
Introduzione a Docker (parte 2 - Pratica)Introduzione a Docker (parte 2 - Pratica)
Introduzione a Docker (parte 2 - Pratica)
Cristian Consonni
Vagrant e Docker a confronto;scegliere ed iniziare
Vagrant e  Docker a confronto;scegliere ed iniziareVagrant e  Docker a confronto;scegliere ed iniziare
Vagrant e Docker a confronto;scegliere ed iniziare
Daniele Mondello
[drupalday2017] - DevOps: strumenti di automazione per Drupal8
[drupalday2017] - DevOps: strumenti di automazione per Drupal8[drupalday2017] - DevOps: strumenti di automazione per Drupal8
[drupalday2017] - DevOps: strumenti di automazione per Drupal8
DrupalDay
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
Marco Parenzan
Docker Fudamentals
Docker FudamentalsDocker Fudamentals
Docker Fudamentals
mvetro
Closure Visto Da Vicino
Closure Visto Da VicinoClosure Visto Da Vicino
Closure Visto Da Vicino
davide ficano
Mobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web DevelopersMobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web Developers
sparkfabrik
I linguaggi di programmazione e il mondo open-source
I linguaggi di programmazione e il mondo open-sourceI linguaggi di programmazione e il mondo open-source
I linguaggi di programmazione e il mondo open-source
Bergamo Linux Users Group
Introduzione pratica a docker, da chi lo ha appena conosciuto
Introduzione pratica a docker, da chi lo ha appena conosciutoIntroduzione pratica a docker, da chi lo ha appena conosciuto
Introduzione pratica a docker, da chi lo ha appena conosciuto
Daniele Megna
Ubuntu Touch: Sviluppo App e Convergenza
Ubuntu Touch: Sviluppo App e ConvergenzaUbuntu Touch: Sviluppo App e Convergenza
Ubuntu Touch: Sviluppo App e Convergenza
Giulio Collura
Automation Night (Docker)
Automation Night (Docker)Automation Night (Docker)
Automation Night (Docker)
Giuliano Latini
Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017Microservices webinar EMEA Aug. 2017
Microservices webinar EMEA Aug. 2017
MongoDB
Progetto Linux va a scuola - Descrizione tecnica
Progetto Linux va a scuola - Descrizione tecnicaProgetto Linux va a scuola - Descrizione tecnica
Progetto Linux va a scuola - Descrizione tecnica
Bergamo Linux Users Group
Conferenza Pymaemo
Conferenza PymaemoConferenza Pymaemo
Conferenza Pymaemo
Andrea Grandi
Introduzione DevOps con Ansible
Introduzione DevOps con AnsibleIntroduzione DevOps con Ansible
Introduzione DevOps con Ansible
Matteo Magni
App Engine + Python
App Engine + PythonApp Engine + Python
App Engine + Python
Simone Marzola

Similar to I came i saw i go - golang it meetup codemotion rome 2014 (20)

Go on AppEngine
Go on AppEngineGo on AppEngine
Go on AppEngine
Gabriele Baldoni
Sviluppare plugin per google Chrome
Sviluppare plugin per google ChromeSviluppare plugin per google Chrome
Sviluppare plugin per google Chrome
Codemotion
Do pair programming with an artificial intelligence
Do pair programming with an artificial intelligenceDo pair programming with an artificial intelligence
Do pair programming with an artificial intelligence
Giulio Roggero
GAE python GDG Milano - L01
GAE python GDG Milano - L01GAE python GDG Milano - L01
GAE python GDG Milano - L01
Paolo Dadda
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouchProgrammiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Stefano Ottaviani
Fastify has defeated Lagacy-Code
Fastify has defeated Lagacy-CodeFastify has defeated Lagacy-Code
Fastify has defeated Lagacy-Code
Commit University
Golang Introduzione
Golang IntroduzioneGolang Introduzione
Golang Introduzione
Gabriele Baldoni
SMAU 2010 - Scenari futuri del Video-on-the-Web: selezione o coabitazione dei...
SMAU 2010 - Scenari futuri del Video-on-the-Web: selezione o coabitazione dei...SMAU 2010 - Scenari futuri del Video-on-the-Web: selezione o coabitazione dei...
SMAU 2010 - Scenari futuri del Video-on-the-Web: selezione o coabitazione dei...
Roberto Ellero
WUI con Google Polymer
WUI con Google PolymerWUI con Google Polymer
WUI con Google Polymer
NaLUG
International SEO - Come localizzare il proprio Sito - Monari Convegno GT 2012
International SEO - Come localizzare il proprio Sito - Monari Convegno GT 2012International SEO - Come localizzare il proprio Sito - Monari Convegno GT 2012
International SEO - Come localizzare il proprio Sito - Monari Convegno GT 2012
Bizup
Sviluppare con Portofino
Sviluppare con PortofinoSviluppare con Portofino
Sviluppare con Portofino
NaLUG
Introduzione a CoderDojo
Introduzione a CoderDojoIntroduzione a CoderDojo
Introduzione a CoderDojo
agnese addone
Formati aperti vs formati proprietari
Formati aperti vs formati proprietariFormati aperti vs formati proprietari
Formati aperti vs formati proprietari
Riccardo Zanella
Html5 apps - GWT oriented
Html5 apps - GWT orientedHtml5 apps - GWT oriented
Html5 apps - GWT oriented
firenze-gtug
Costruisci la tua piattaforma open-source di video-sharing in Python
Costruisci la tua piattaforma open-source di video-sharing in Python Costruisci la tua piattaforma open-source di video-sharing in Python
Costruisci la tua piattaforma open-source di video-sharing in Python
simahawk
MonoTouch, un anno dopo
MonoTouch, un anno dopoMonoTouch, un anno dopo
MonoTouch, un anno dopo
Stefano Ottaviani
formazione al coding.pdf
formazione al coding.pdfformazione al coding.pdf
formazione al coding.pdf
Laura Antichi
Python per tutti
Python per tuttiPython per tutti
Python per tutti
masci
VoIP e Software Libero - Antonio Gallo - www.badpenguin.org
VoIP e Software Libero - Antonio Gallo - www.badpenguin.orgVoIP e Software Libero - Antonio Gallo - www.badpenguin.org
VoIP e Software Libero - Antonio Gallo - www.badpenguin.org
Antonio Gallo
Sviluppare plugin per google Chrome
Sviluppare plugin per google ChromeSviluppare plugin per google Chrome
Sviluppare plugin per google Chrome
Codemotion
Do pair programming with an artificial intelligence
Do pair programming with an artificial intelligenceDo pair programming with an artificial intelligence
Do pair programming with an artificial intelligence
Giulio Roggero
GAE python GDG Milano - L01
GAE python GDG Milano - L01GAE python GDG Milano - L01
GAE python GDG Milano - L01
Paolo Dadda
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouchProgrammiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Stefano Ottaviani
Fastify has defeated Lagacy-Code
Fastify has defeated Lagacy-CodeFastify has defeated Lagacy-Code
Fastify has defeated Lagacy-Code
Commit University
SMAU 2010 - Scenari futuri del Video-on-the-Web: selezione o coabitazione dei...
SMAU 2010 - Scenari futuri del Video-on-the-Web: selezione o coabitazione dei...SMAU 2010 - Scenari futuri del Video-on-the-Web: selezione o coabitazione dei...
SMAU 2010 - Scenari futuri del Video-on-the-Web: selezione o coabitazione dei...
Roberto Ellero
WUI con Google Polymer
WUI con Google PolymerWUI con Google Polymer
WUI con Google Polymer
NaLUG
International SEO - Come localizzare il proprio Sito - Monari Convegno GT 2012
International SEO - Come localizzare il proprio Sito - Monari Convegno GT 2012International SEO - Come localizzare il proprio Sito - Monari Convegno GT 2012
International SEO - Come localizzare il proprio Sito - Monari Convegno GT 2012
Bizup
Sviluppare con Portofino
Sviluppare con PortofinoSviluppare con Portofino
Sviluppare con Portofino
NaLUG
Introduzione a CoderDojo
Introduzione a CoderDojoIntroduzione a CoderDojo
Introduzione a CoderDojo
agnese addone
Formati aperti vs formati proprietari
Formati aperti vs formati proprietariFormati aperti vs formati proprietari
Formati aperti vs formati proprietari
Riccardo Zanella
Html5 apps - GWT oriented
Html5 apps - GWT orientedHtml5 apps - GWT oriented
Html5 apps - GWT oriented
firenze-gtug
Costruisci la tua piattaforma open-source di video-sharing in Python
Costruisci la tua piattaforma open-source di video-sharing in Python Costruisci la tua piattaforma open-source di video-sharing in Python
Costruisci la tua piattaforma open-source di video-sharing in Python
simahawk
formazione al coding.pdf
formazione al coding.pdfformazione al coding.pdf
formazione al coding.pdf
Laura Antichi
Python per tutti
Python per tuttiPython per tutti
Python per tutti
masci
VoIP e Software Libero - Antonio Gallo - www.badpenguin.org
VoIP e Software Libero - Antonio Gallo - www.badpenguin.orgVoIP e Software Libero - Antonio Gallo - www.badpenguin.org
VoIP e Software Libero - Antonio Gallo - www.badpenguin.org
Antonio Gallo

More from Giulio De Donato (13)

Docker italia fatti un container tutto tuo
Docker italia fatti un container tutto tuoDocker italia fatti un container tutto tuo
Docker italia fatti un container tutto tuo
Giulio De Donato
Lets isolate a process with no container like docker
Lets isolate a process with no container like dockerLets isolate a process with no container like docker
Lets isolate a process with no container like docker
Giulio De Donato
More developers on DevOps with Docker orchestration
More developers on DevOps with Docker orchestrationMore developers on DevOps with Docker orchestration
More developers on DevOps with Docker orchestration
Giulio De Donato
really really really awesome php application with bdd behat and iterfaces
really really really awesome php application with bdd behat and iterfacesreally really really awesome php application with bdd behat and iterfaces
really really really awesome php application with bdd behat and iterfaces
Giulio De Donato
Import golang; struct microservice
Import golang; struct microserviceImport golang; struct microservice
Import golang; struct microservice
Giulio De Donato
Json web token api authorization
Json web token api authorizationJson web token api authorization
Json web token api authorization
Giulio De Donato
Think horizontally ood, ddd and bdd
Think horizontally ood, ddd and bddThink horizontally ood, ddd and bdd
Think horizontally ood, ddd and bdd
Giulio De Donato
Benchmark Profile and Boost your Symfony application
Benchmark Profile and Boost your Symfony applicationBenchmark Profile and Boost your Symfony application
Benchmark Profile and Boost your Symfony application
Giulio De Donato
Leaphly fight monolothic today
Leaphly fight monolothic todayLeaphly fight monolothic today
Leaphly fight monolothic today
Giulio De Donato
It's all about behaviour, also in php - phpspec
It's all about behaviour, also in php - phpspecIt's all about behaviour, also in php - phpspec
It's all about behaviour, also in php - phpspec
Giulio De Donato
Design pattern in Symfony2 - Nanos gigantium humeris insidentes
Design pattern in Symfony2 - Nanos gigantium humeris insidentesDesign pattern in Symfony2 - Nanos gigantium humeris insidentes
Design pattern in Symfony2 - Nanos gigantium humeris insidentes
Giulio De Donato
Caching and data analysis will move your Symfony2 application to the next level
Caching and data analysis will move your Symfony2 application to the next levelCaching and data analysis will move your Symfony2 application to the next level
Caching and data analysis will move your Symfony2 application to the next level
Giulio De Donato
Rationally boost your symfony2 application with caching tips and monitoring
Rationally boost your symfony2 application with caching tips and monitoringRationally boost your symfony2 application with caching tips and monitoring
Rationally boost your symfony2 application with caching tips and monitoring
Giulio De Donato
Docker italia fatti un container tutto tuo
Docker italia fatti un container tutto tuoDocker italia fatti un container tutto tuo
Docker italia fatti un container tutto tuo
Giulio De Donato
Lets isolate a process with no container like docker
Lets isolate a process with no container like dockerLets isolate a process with no container like docker
Lets isolate a process with no container like docker
Giulio De Donato
More developers on DevOps with Docker orchestration
More developers on DevOps with Docker orchestrationMore developers on DevOps with Docker orchestration
More developers on DevOps with Docker orchestration
Giulio De Donato
really really really awesome php application with bdd behat and iterfaces
really really really awesome php application with bdd behat and iterfacesreally really really awesome php application with bdd behat and iterfaces
really really really awesome php application with bdd behat and iterfaces
Giulio De Donato
Import golang; struct microservice
Import golang; struct microserviceImport golang; struct microservice
Import golang; struct microservice
Giulio De Donato
Json web token api authorization
Json web token api authorizationJson web token api authorization
Json web token api authorization
Giulio De Donato
Think horizontally ood, ddd and bdd
Think horizontally ood, ddd and bddThink horizontally ood, ddd and bdd
Think horizontally ood, ddd and bdd
Giulio De Donato
Benchmark Profile and Boost your Symfony application
Benchmark Profile and Boost your Symfony applicationBenchmark Profile and Boost your Symfony application
Benchmark Profile and Boost your Symfony application
Giulio De Donato
Leaphly fight monolothic today
Leaphly fight monolothic todayLeaphly fight monolothic today
Leaphly fight monolothic today
Giulio De Donato
It's all about behaviour, also in php - phpspec
It's all about behaviour, also in php - phpspecIt's all about behaviour, also in php - phpspec
It's all about behaviour, also in php - phpspec
Giulio De Donato
Design pattern in Symfony2 - Nanos gigantium humeris insidentes
Design pattern in Symfony2 - Nanos gigantium humeris insidentesDesign pattern in Symfony2 - Nanos gigantium humeris insidentes
Design pattern in Symfony2 - Nanos gigantium humeris insidentes
Giulio De Donato
Caching and data analysis will move your Symfony2 application to the next level
Caching and data analysis will move your Symfony2 application to the next levelCaching and data analysis will move your Symfony2 application to the next level
Caching and data analysis will move your Symfony2 application to the next level
Giulio De Donato
Rationally boost your symfony2 application with caching tips and monitoring
Rationally boost your symfony2 application with caching tips and monitoringRationally boost your symfony2 application with caching tips and monitoring
Rationally boost your symfony2 application with caching tips and monitoring
Giulio De Donato

I came i saw i go - golang it meetup codemotion rome 2014