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
1
280
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
140
Developer productivity for fun and profit - Enterprise edition
eminetto
0
89
Criando Kubernetes Operators com o operator-sdk
eminetto
0
130
Developer productivity for fun and profit - Developer edition
eminetto
3
530
Observabilidade de APIs
eminetto
1
980
Reflexões sobre Design de Software
eminetto
1
490
Discussões sobre microsserviços
eminetto
0
130
Go, o que, por que e como?
eminetto
0
350
Dev Journey
eminetto
0
480
Other Decks in Programming
See All in Programming
Ruby and LLM Ecosystem 2nd
koic
0
240
S3ストレージクラスの「見える」「ある」「使える」は全部違う ─ 体験から見た、仕様の深淵を覗く
ya_ma23
0
170
Windows on Ryzen and I
seosoft
0
220
PJのドキュメントを全部Git管理にしたら、一番喜んだのはAIだった
nanaism
0
250
コードレビューをしない選択 #でぃーぷらすトウキョウ
kajitack
0
660
Agent Skills Workshop - AIへの頼み方を仕組み化する
gotalab555
15
8.3k
AWS Infrastructure as Code の新機能 2025 総まとめ 〜SA 4人による怒涛のデモ祭り〜
konokenj
10
3.3k
AI主導でFastAPIのWebサービスを作るときに 人間が構造化すべき境界線
okajun35
0
650
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
470
Rで始めるML・LLM活用入門
wakamatsu_takumu
0
170
今、アーキテクトとして 品質保証にどう関わるか
nealle
0
210
Railsの気持ちを考えながらコントローラとビューを整頓する/tidying-rails-controllers-and-views-as-rails-think
moro
4
380
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1370
200k
My Coaching Mixtape
mlcsv
0
68
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
450
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
520
Amusing Abliteration
ianozsvald
0
120
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Unsuck your backbone
ammeep
672
58k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.1k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Paper Plane (Part 1)
katiecoart
PRO
0
5.3k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
200
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