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
91
Developer productivity for fun and profit - Enterprise edition
eminetto
0
57
Criando Kubernetes Operators com o operator-sdk
eminetto
0
93
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
90
Go, o que, por que e como?
eminetto
0
300
Dev Journey
eminetto
0
440
Other Decks in Programming
See All in Programming
UMAPをざっくりと理解 / Overview of UMAP
kaityo256
PRO
3
1.5k
AIコーディングエージェントを 「使いこなす」ための実践知と現在地 in ログラス / How to Use AI Coding Agent in Loglass
rkaga
4
1.3k
ニーリーQAのこれまでとこれから
nealle
2
760
実践Webフロントパフォーマンスチューニング
cp20
45
10k
2025年のz-index設計を考える
tak_dcxi
7
3.3k
CursorとDevinが仲間!?AI駆動で新規プロダクト開発に挑んだ3ヶ月を振り返る / A Story of New Product Development with Cursor and Devin
rkaga
1
210
Road to Ruby for A Linguistics Nerd
hayat01sh1da
PRO
0
150
iOSアプリで測る!名古屋駅までの 方向と距離
ryunakayama
0
160
Bedrock × Confluenceで簡単(?)社内RAG
iharuoru
1
120
ぽちぽち選択するだけでOSSを読めるVSCode拡張機能
ymbigo
14
6.2k
状態と共に暮らす:ステートフルへの挑戦
ypresto
3
1.2k
Ruby on Railroad: The Power of Visualizing CFG
ydah
0
310
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
693
190k
Building Applications with DynamoDB
mza
94
6.4k
Being A Developer After 40
akosma
91
590k
Side Projects
sachag
453
42k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.2k
Why You Should Never Use an ORM
jnunemaker
PRO
56
9.4k
The Cult of Friendly URLs
andyhume
78
6.3k
Raft: Consensus for Rubyists
vanstee
137
6.9k
The Cost Of JavaScript in 2023
addyosmani
49
7.8k
Done Done
chrislema
184
16k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.3k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
33k
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