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
180
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
30
Developer productivity for fun and profit - Enterprise edition
eminetto
0
32
Criando Kubernetes Operators com o operator-sdk
eminetto
0
42
Developer productivity for fun and profit - Developer edition
eminetto
3
440
Observabilidade de APIs
eminetto
1
760
Reflexões sobre Design de Software
eminetto
1
370
Discussões sobre microsserviços
eminetto
0
50
Go, o que, por que e como?
eminetto
0
250
Dev Journey
eminetto
0
400
Other Decks in Programming
See All in Programming
TYPO3 v13 – The road to LTS: What's new and new APIs
luisasofie_xoxo
0
210
Micro Frontends for Java Microservices - Devnexus 2024
mraible
PRO
0
500
StoreKit2によるiOSのアプリ内課金のリニューアル
kangnux
0
110
Netty Chicago Java User Group 2024-04-17
sullis
0
180
SwiftUIで使いやすいToastの作り方 / How to build a Toast system which is easy to use in SwiftUI
lovee
3
150
Hanami and htmx
bkuhlmann
0
210
Ruby Pattern Matching
bkuhlmann
0
930
Polars入門
daikikatsuragawa
1
100
MicrosoftのPlatform Engineeringガイドを読んで実際になにかやってみた
ymd65536
1
370
効率化に挑戦してみたらモバイル開発が少し快適になった話
ryunakayama
0
130
Site Reliability Engineering for GMO
pyama86
8
1k
Git Rebase
bkuhlmann
11
1.6k
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
116
18k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.6k
No one is an island. Learnings from fostering a developers community.
thoeni
16
2.1k
Teambox: Starting and Learning
jrom
128
8.4k
Adopting Sorbet at Scale
ufuk
68
8.6k
Rebuilding a faster, lazier Slack
samanthasiow
73
8.2k
StorybookのUI Testing Handbookを読んだ
zakiyama
13
4.6k
Building Adaptive Systems
keathley
31
1.9k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
34
8.9k
Optimising Largest Contentful Paint
csswizardry
8
2.4k
YesSQL, Process and Tooling at Scale
rocio
164
13k
Creatively Recalculating Your Daily Design Routine
revolveconf
210
11k
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