Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Introdução a Go
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Elton Minetto
May 11, 2022
Programming
290
1
Share
Introdução a Go
Nesta palestra faço uma introdução a linguagem Go
Elton Minetto
May 11, 2022
More Decks by Elton Minetto
See All by Elton Minetto
Criando Kubernetes Operators com o operator-sdk
eminetto
0
150
Developer productivity for fun and profit - Enterprise edition
eminetto
0
98
Criando Kubernetes Operators com o operator-sdk
eminetto
0
140
Developer productivity for fun and profit - Developer edition
eminetto
3
530
Observabilidade de APIs
eminetto
1
1k
Reflexões sobre Design de Software
eminetto
1
500
Discussões sobre microsserviços
eminetto
0
150
Go, o que, por que e como?
eminetto
0
360
Dev Journey
eminetto
0
490
Other Decks in Programming
See All in Programming
Road to RubyKaigi: Play Hard(ware)
makicamel
1
500
How Swift's Type System Guides AI Agents
koher
0
320
Kingdom of the Machine
yui_knk
2
1.2k
🦞OpenClaw works with AWS
licux
1
310
書籍「ユーザーストーリーマッピング」が私のバイブル
asumikam
4
450
How We Benchmarked Quarkus: Patterns and anti-patterns
hollycummins
1
160
Running Swift without an OS
kishikawakatsumi
0
860
CursorとClaudeCodeとCodexとOpenCodeを実際に比較してみた
terisuke
1
500
JOAI2026 1st solution - heron0519 -
heron0519
0
160
From Formal Specification to Property Based Test
ohbarye
0
500
レガシーPHP転生 〜父がドメインエキスパートだったのでDDD+Claude Codeでチート開発します〜
panda_program
0
1.1k
Making the RBS Parser Faster
soutaro
0
610
Featured
See All Featured
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
How to build a perfect <img>
jonoalderson
1
5.4k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
350
Agile that works and the tools we love
rasmusluckow
331
21k
Designing Powerful Visuals for Engaging Learning
tmiket
1
350
Rails Girls Zürich Keynote
gr2m
96
14k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
230
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
770
The Curse of the Amulet
leimatthew05
1
12k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
110
Navigating Weather and Climate Data
rabernat
0
180
Transcript
Introdução a Go
Elton Minetto ๏ Escrevo códigos, sou professor, palestrante, e escritor
๏ Escrevo no https://eltonminetto.dev e no twitter ๏ Sou Principal Software Engineer no PicPay
O que é?
Uma linguagem open source
None
Por que uma nova linguagem?
Muitos problemas com software em grande escala
Velocidade de compilação
Sistemas distribuídos Multicore
Objetivos
Semântica simples
Tipagem estática
Programação concorrente
Divertida!
TALK IS CHEAP, SHOW ME THE CODE!
Pacotes package main import ( "fmt" "math" ) func main()
{ fmt.Printf("Now you have %g problems.", math.Sqrt(7)) }
Resultados Múltiplos package main import "fmt" func swap(x, y string)
(string, string) { return y, x } func main() { a, b := swap("hello", "world") fmt.Println(a, b) }
Erros package main import "github.com/coderockr/nfe/transmitter" func main() { response, err
:= transmitter.transmit(nfe, xml) if err != nil { panic("Error ") //tratamento de erro qualquer } result, err := transmitter.saveData(response, xml) if err != nil { panic("Error ") //tratamento de erro qualquer } }
Goroutines package main import ( "fmt" "time" ) func say(s
string) { for i := 0; i < 5; i++ { time.Sleep(100 * time.Millisecond) fmt.Println(s) } } func main() { go say("world") say("hello") }
Canais package main import "fmt" func sum(s []int, c chan
int) { sum := 0 for _, v := range s { sum += v } c <- sum // send sum to c } func main() { s := []int{7, 2, 8, -9, 4, 0} c := make(chan int) go sum(s[:len(s)/2], c) go sum(s[len(s)/2:], c) x, y := <-c, <-c // receive from c fmt.Println(x, y, x+y) }
Cross Compilation GOOS=darwin GOARCH=amd64 go build gorotines.go GOOS=windows GOARCH=amd64 go
build gorotines.go GOOS=linux GOARCH=amd64 go build gorotines.go
OO via composição e não herança, biblioteca padrão poderosa, etc.
Quem está usando?
Google, Basecamp, Globo.com, Canonical, DigitalOcean, Dropbox, Github, Heroku, Medium, Docker,
MongoDB, Mozilla, Netflix, New Relic, New York Times, Resultados Digitais, Moip, Neoway, Walmart, Trybe, PicPay, etc https://github.com/golang/go/wiki/GoUsers
Aplicações
APIs
Microservices
IoT
Databases
CLIents
Material de estudo
Site oficial Tour Go, por onde começar? Livro: A Linguagem
de Programação Go Curso Desenvolvimento Web com Go Awesome Go
Contato
[email protected]
http://eltonminetto.dev http://twitter.com/eminetto