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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
86
Criando Kubernetes Operators com o operator-sdk
eminetto
0
130
Developer productivity for fun and profit - Developer edition
eminetto
3
520
Observabilidade de APIs
eminetto
1
960
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
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
7
2.5k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
130
AI時代の認知負荷との向き合い方
optfit
0
180
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
1.6k
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
1.9k
ぼくの開発環境2026
yuzneri
1
270
Metaprogramming isn't real, it can't hurt you
okuramasafumi
0
110
プロダクトオーナーから見たSOC2 _SOC2ゆるミートアップ#2
kekekenta
0
250
ふん…おもしれぇ Parser。RubyKaigi 行ってやるぜ
aki_pin0
0
110
2025年の活動の振り返り
hideg
0
100
CSC307 Lecture 05
javiergs
PRO
0
510
カスタマーサクセス業務を変革したヘルススコアの実現と学び
_hummer0724
0
820
Featured
See All Featured
BBQ
matthewcrist
89
10k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
360
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.1k
Chasing Engaging Ingredients in Design
codingconduct
0
120
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
Facilitating Awesome Meetings
lara
57
6.8k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
76
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
68
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
180
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
440
SEO for Brand Visibility & Recognition
aleyda
0
4.3k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
140
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