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
Elton Minetto
May 11, 2022
Programming
1
230
Introdução a Go
Nesta palestra faço uma introdução a linguagem Go
Elton Minetto
May 11, 2022
Tweet
Share
More Decks by Elton Minetto
See All by Elton Minetto
Criando Kubernetes Operators com o operator-sdk
eminetto
0
93
Developer productivity for fun and profit - Enterprise edition
eminetto
0
57
Criando Kubernetes Operators com o operator-sdk
eminetto
0
95
Developer productivity for fun and profit - Developer edition
eminetto
3
480
Observabilidade de APIs
eminetto
1
890
Reflexões sobre Design de Software
eminetto
1
440
Discussões sobre microsserviços
eminetto
0
92
Go, o que, por que e como?
eminetto
0
300
Dev Journey
eminetto
0
440
Other Decks in Programming
See All in Programming
Browser and UI #2 HTML/ARIA
ken7253
2
190
知識0からカンファレンスやってみたらこうなった!
syossan27
5
300
TSConfigからTypeScriptの世界を覗く
planck16
1
910
生成AI時代のフルスタック開発
kenn
8
1k
バイラテラルアップサンプリング
fadis
3
650
파급효과: From AI to Android Development
l2hyunwoo
0
170
Road to Ruby for A Linguistics Nerd
hayat01sh1da
PRO
0
390
generative-ai-use-cases(GenU)の推しポイント ~2025年4月版~
hideg
1
440
Boast Code Party / RubyKaigi 2025 After Event
lemonade_37
0
120
Live Coding: Migrating an Application to Signals
manfredsteyer
PRO
0
130
クラシルリワードにおける iOSアプリ開発の取り組み
funzin
1
490
コンポーネントライブラリで実現する、アクセシビリティの正しい実装パターン
schktjm
1
270
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
336
57k
A Tale of Four Properties
chriscoyier
159
23k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.7k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Fireside Chat
paigeccino
37
3.4k
The Cult of Friendly URLs
andyhume
78
6.4k
Code Review Best Practice
trishagee
68
18k
Making Projects Easy
brettharned
116
6.2k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
Designing Experiences People Love
moore
142
24k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
105
19k
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