InterCon 2016 - Software as a service usando Go como principal linguagem: os cases globo.com

iMasters
iMastersjornalista, web editor, web writer, tradutora (en-pt/pt-en) at iMasters
Software as a service usando
Go
Andrews Medina
Who Am I
● Desenvolvedor na Globo.com desde 2008
● Criado de projetos open source como Splinter e tsuru
tsuru.io
tsuru.io
● Torna deploys rápidos e simples
● Suporta Go, Ruby, Python, PHP, Java…
● Open source
tsuru.io
$ tsuru app-deploy -a myapp -i dockerimage
tsuru.io
$ tsuru app-deploy -a myapp -i grafana/grafana
Go
● Começou em 2007 por Robert Griesemer, Ken Thompson, and Rob Pike
● Aberta em 2009
Quem usa Go?
Quem usa Go?
Hello World!
package main
import "fmt"
func main() {
fmt.Println("Hello, 世界!")
}
motivação
Escalar maquinas
Rápida e eficiente para
computadores
Tipagem estática
var users []User
Compilada
$ go build
./main
Suporte a concorrência
Goroutines
go sort(s[:i])
go sort(s[i:])
Goroutines
go sort(s[:i])
go sort(s[i:])
Canais
func compute(ch chan int) {
ch <- someComputation()
}
func main() {
ch := make(chan int)
go compute(ch)
result := <-ch
}
Canais
func compute(ch chan int) {
ch <- someComputation()
}
func main() {
ch := make(chan int)
go compute(ch)
result := <-ch
}
InterCon 2016 - Software as a service usando Go como principal linguagem: os cases globo.com
Divertida e rápida para
os seres humanos
Linguagem enxuta
e simples
Inferência de tipos
numbers := int{1, 2, 3}
Interfaces e duck typing
type Closes interface {
Close()
}
Biblioteca padrão rica
● Encoding (json, xml)
● http
● html (template)
● image
● crypto
http
func main() {
http.HandleFunc("/hello", handleHello)
http.ListenAndServe("localhost:7777", nil)
}
func handleHello(w http.ResponseWriter, req *http.Request) {
fmt.Fprintln(w, "Hello, 世界!")
}
http + encoding
type user struct {
Name string
}
func userHandler (w http.ResponseWriter, r *http.Request) {
u := user{Name: “andrews”}
b, err := json.Marshal(u)
if err != nil {
panic(err)
}
w.Write(b)
}
Compilação rápida
$ go build
./main
Cross compilation
$ GOOS=linux GOARCH=amd64 go build
./main
gofmt
$ gofmt
gofmt
func main() {
http.HandleFunc("/hello", handleHello)
http.ListenAndServe("localhost:7777", nil)
}
gofmt
func main() {
http.HandleFunc("/hello", handleHello)
http.ListenAndServe("localhost:7777", nil)
}
race detector
$ go (run|test) -race
race detector
func main() {
start := time.Now()
var t *time.Timer
t = time.AfterFunc(randomDuration(), func() {
t.Reset(randomDuration())
})
time.Sleep(5 * time.Second)
}
func randomDuration() time.Duration {
return time.Duration(rand.Int63n(1e9))
}
race detector
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x8 pc=0x41e38a]
goroutine 4 [running]:
time.stopTimer(0x8, 0x12fe6b35d9472d96)
src/pkg/runtime/ztime_linux_amd64.c:35 +0x25
time.(*Timer).Reset(0x0, 0x4e5904f, 0x1)
src/pkg/time/sleep.go:81 +0x42
main.func·001()
race.go:14 +0xe3
created by time.goFunc
src/pkg/time/sleep.go:122 +0x48
race detector
==================
WARNING: DATA RACE
Read by goroutine 5:
main.func·001()
race.go:14 +0x169
Previous write by goroutine 1:
main.main()
race.go:15 +0x174
Goroutine 5 (running) created at:
time.goFunc()
src/pkg/time/sleep.go:122 +0x56
timerproc()
src/pkg/runtime/ztime_linux_amd64.c:181 +0x189
==================
profiling
● Profiler de memória e cpu
● Benchmarks automatizados
Go na Globo.com
tsuru.io
tsuru
● ~300 deploys por dia
● ~800 aplicações
● ~1400 units
tsuru
● Api REST
● Command line interface
● agents
tsuru (vantagens)
● Baixo overhead
● Cross compile (windows, linux, mac)
● Performance, no-blocking I/O, concorrência e paralelismo
tsuru (vantagens)
● Debug tools
● Padrão (gofmt, govet)
● Race detector (go test -race)
InterCon 2016 - Software as a service usando Go como principal linguagem: os cases globo.com
ID
● Api REST
ID (vantagens)
● Performance
● Simplicidade
Cartola
● Api REST
● Command line interface
● agents
Cartola
● 7 milhões de jogadores
● 500 mil simultâneos
Cartola
● Api REST
● Processamento em background
Cartola
● Performance sem precisar “escovar bits”
● Antes 24 máquinas com 24 cores
● Agora 24 máquinas com 4 cores
Simples e consistente
Fácil de aprender
Boa para máquina, boa
para humanos
InterCon 2016 - Software as a service usando Go como principal linguagem: os cases globo.com
Dúvidas?
● github.com/andrewsmedina
● twitter.com/andrewsmedina
1 of 56

Recommended

Linguagem Go by
Linguagem GoLinguagem Go
Linguagem Goflisolmaringa
1.2K views20 slides
Introdução a linguagem Go by
Introdução a linguagem GoIntrodução a linguagem Go
Introdução a linguagem GoAllisson Azevedo
7.8K views44 slides
Possibilidades com python by
Possibilidades com pythonPossibilidades com python
Possibilidades com pythonUFPA
1.1K views48 slides
Why functional programming matters by
Why functional programming mattersWhy functional programming matters
Why functional programming mattersJean Carlo Machado
56 views37 slides
Treinamento com SphinxTrain by
Treinamento com SphinxTrainTreinamento com SphinxTrain
Treinamento com SphinxTrainGabriel Araujo
1.2K views16 slides
TDC2016SP - Trilha Node.Js by
TDC2016SP - Trilha Node.JsTDC2016SP - Trilha Node.Js
TDC2016SP - Trilha Node.Jstdc-globalcode
362 views35 slides

More Related Content

What's hot

Jug bizus (4) by
Jug   bizus (4)Jug   bizus (4)
Jug bizus (4)JugVale
793 views26 slides
Jug bizus by
Jug   bizusJug   bizus
Jug bizusRodrigo Barbosa
174 views26 slides
[Devcamp] usando programação funcional agora! by
[Devcamp] usando programação funcional agora![Devcamp] usando programação funcional agora!
[Devcamp] usando programação funcional agora!Rodrigo Stefani Domingues
1K views58 slides
Compilando o Android 5 para o Nexus 5 by
Compilando o Android 5 para o Nexus 5Compilando o Android 5 para o Nexus 5
Compilando o Android 5 para o Nexus 5Alexandre Rocha Lima e Marcondes
239 views3 slides
Fazendo Analise de dados SÓ com Python (Just Python) by
Fazendo Analise de dados SÓ com Python (Just Python)Fazendo Analise de dados SÓ com Python (Just Python)
Fazendo Analise de dados SÓ com Python (Just Python)Cesar Augusto
175 views27 slides
shell bash Fpar aula6 by
shell bash Fpar aula6shell bash Fpar aula6
shell bash Fpar aula6Geomar Matias Lima
440 views20 slides

Viewers also liked

Containerisation and DEIS by
Containerisation and DEISContainerisation and DEIS
Containerisation and DEISjustinhennessy
728 views13 slides
Artificial intelligence by
Artificial intelligenceArtificial intelligence
Artificial intelligencePesco8
372 views16 slides
Tsuru @ Devops world by
Tsuru @ Devops worldTsuru @ Devops world
Tsuru @ Devops worldColin Saliceti
554 views13 slides
Deis overview by
Deis overviewDeis overview
Deis overviewYu Kitazume
1.8K views28 slides
Deis, a PaaS built with Docker, Docker Meetup Sao Paulo #3 @Wayra by
Deis, a PaaS built with Docker,  Docker Meetup Sao Paulo #3 @WayraDeis, a PaaS built with Docker,  Docker Meetup Sao Paulo #3 @Wayra
Deis, a PaaS built with Docker, Docker Meetup Sao Paulo #3 @WayraLeo Lorieri
1.1K views25 slides
Build your own PaaS using Kubernetes and Deis — GDG DevFest NL by
Build your own PaaS using Kubernetes and Deis — GDG DevFest NLBuild your own PaaS using Kubernetes and Deis — GDG DevFest NL
Build your own PaaS using Kubernetes and Deis — GDG DevFest NLJeroen Visser
719 views54 slides

Viewers also liked(8)

Artificial intelligence by Pesco8
Artificial intelligenceArtificial intelligence
Artificial intelligence
Pesco8372 views
Deis overview by Yu Kitazume
Deis overviewDeis overview
Deis overview
Yu Kitazume1.8K views
Deis, a PaaS built with Docker, Docker Meetup Sao Paulo #3 @Wayra by Leo Lorieri
Deis, a PaaS built with Docker,  Docker Meetup Sao Paulo #3 @WayraDeis, a PaaS built with Docker,  Docker Meetup Sao Paulo #3 @Wayra
Deis, a PaaS built with Docker, Docker Meetup Sao Paulo #3 @Wayra
Leo Lorieri1.1K views
Build your own PaaS using Kubernetes and Deis — GDG DevFest NL by Jeroen Visser
Build your own PaaS using Kubernetes and Deis — GDG DevFest NLBuild your own PaaS using Kubernetes and Deis — GDG DevFest NL
Build your own PaaS using Kubernetes and Deis — GDG DevFest NL
Jeroen Visser719 views
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview by Leo Lorieri
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
Leo Lorieri2K views
Deis - Building our own PaaS at Springest by Wouter de Vos
Deis - Building our own PaaS at SpringestDeis - Building our own PaaS at Springest
Deis - Building our own PaaS at Springest
Wouter de Vos998 views

Similar to InterCon 2016 - Software as a service usando Go como principal linguagem: os cases globo.com

[Android devcamp] Android Bootcamp – 2012 by
[Android devcamp] Android Bootcamp – 2012[Android devcamp] Android Bootcamp – 2012
[Android devcamp] Android Bootcamp – 2012Douglas Drumond
2K views92 slides
Entre na fila. Processamento distribuído usando Gearman by
Entre na fila. Processamento distribuído usando GearmanEntre na fila. Processamento distribuído usando Gearman
Entre na fila. Processamento distribuído usando GearmanElton Minetto
1K views34 slides
Golang para desenvolvedores pragmáticos parte 2 by
Golang para desenvolvedores pragmáticos  parte 2Golang para desenvolvedores pragmáticos  parte 2
Golang para desenvolvedores pragmáticos parte 2Wilson Júnior
419 views81 slides
Python No Terra (2006-12-21) by
Python No Terra  (2006-12-21)Python No Terra  (2006-12-21)
Python No Terra (2006-12-21)Rudá Moura
619 views28 slides
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P... by
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...Danilo J. S. Bellini
1.3K views47 slides
Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphere by
Portando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSpherePortando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSphere
Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphereEloi Júnior
872 views37 slides

Similar to InterCon 2016 - Software as a service usando Go como principal linguagem: os cases globo.com(20)

[Android devcamp] Android Bootcamp – 2012 by Douglas Drumond
[Android devcamp] Android Bootcamp – 2012[Android devcamp] Android Bootcamp – 2012
[Android devcamp] Android Bootcamp – 2012
Douglas Drumond2K views
Entre na fila. Processamento distribuído usando Gearman by Elton Minetto
Entre na fila. Processamento distribuído usando GearmanEntre na fila. Processamento distribuído usando Gearman
Entre na fila. Processamento distribuído usando Gearman
Elton Minetto1K views
Golang para desenvolvedores pragmáticos parte 2 by Wilson Júnior
Golang para desenvolvedores pragmáticos  parte 2Golang para desenvolvedores pragmáticos  parte 2
Golang para desenvolvedores pragmáticos parte 2
Wilson Júnior419 views
Python No Terra (2006-12-21) by Rudá Moura
Python No Terra  (2006-12-21)Python No Terra  (2006-12-21)
Python No Terra (2006-12-21)
Rudá Moura619 views
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P... by Danilo J. S. Bellini
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...
Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphere by Eloi Júnior
Portando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSpherePortando app JavaME S40 para C# WP7:  Um estudo de caso real da app CalcSphere
Portando app JavaME S40 para C# WP7: Um estudo de caso real da app CalcSphere
Eloi Júnior872 views
Adeus Wordpress. Ola Pelican! by magnunleno
Adeus Wordpress. Ola Pelican!Adeus Wordpress. Ola Pelican!
Adeus Wordpress. Ola Pelican!
magnunleno810 views
Minicurso Python by rodrigopex
Minicurso PythonMinicurso Python
Minicurso Python
rodrigopex116 views
Introdução a linguagem Python by Luciano Ramalho
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
Luciano Ramalho3.4K views
TDC2018SP | Trilha Mobile - Flutter: do zero a publicacao by tdc-globalcode
TDC2018SP | Trilha Mobile - Flutter: do zero a publicacaoTDC2018SP | Trilha Mobile - Flutter: do zero a publicacao
TDC2018SP | Trilha Mobile - Flutter: do zero a publicacao
tdc-globalcode877 views
Cacheamento Lado Servidor by Mario Guedes
Cacheamento Lado ServidorCacheamento Lado Servidor
Cacheamento Lado Servidor
Mario Guedes5.3K views
Tutorial dev cpp 002 - criação, leitura e alteração de arquivos by Flávio Freitas
Tutorial dev cpp   002 - criação, leitura e alteração de arquivosTutorial dev cpp   002 - criação, leitura e alteração de arquivos
Tutorial dev cpp 002 - criação, leitura e alteração de arquivos
Flávio Freitas1.2K views
Python: Cabe no seu bolso, no seu micro, no seu cérebro. by Rodrigo Senra
Python: Cabe no seu bolso, no seu micro, no seu cérebro.Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Python: Cabe no seu bolso, no seu micro, no seu cérebro.
Rodrigo Senra2.5K views

More from iMasters

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro by
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroiMasters
1.4K views40 slides
Postgres: wanted, beloved or dreaded? - Fabio Telles by
Postgres: wanted, beloved or dreaded? - Fabio TellesPostgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesiMasters
603 views51 slides
Por que minha query esta lenta? - Suellen Moraes by
Por que minha query esta lenta? - Suellen MoraesPor que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesiMasters
370 views12 slides
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig... by
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...iMasters
298 views9 slides
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves by
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesiMasters
324 views31 slides
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -... by
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...iMasters
1.7K views52 slides

More from iMasters(20)

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro by iMasters
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
iMasters1.4K views
Postgres: wanted, beloved or dreaded? - Fabio Telles by iMasters
Postgres: wanted, beloved or dreaded? - Fabio TellesPostgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio Telles
iMasters603 views
Por que minha query esta lenta? - Suellen Moraes by iMasters
Por que minha query esta lenta? - Suellen MoraesPor que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen Moraes
iMasters370 views
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig... by iMasters
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
iMasters298 views
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves by iMasters
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
iMasters324 views
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -... by iMasters
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
iMasters1.7K views
Arquitetando seus dados na prática para a LGPD - Alessandra Martins by iMasters
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsArquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
iMasters3.3K views
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil... by iMasters
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
iMasters287 views
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud by iMasters
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
iMasters950 views
Use MDD e faça as máquinas trabalharem para você - Andreza Leite by iMasters
 Use MDD e faça as máquinas trabalharem para você - Andreza Leite Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
iMasters682 views
Entendendo os porquês do seu servidor - Talita Bernardes by iMasters
Entendendo os porquês do seu servidor - Talita BernardesEntendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita Bernardes
iMasters544 views
Backend performático além do "coloca mais máquina lá" - Diana Arnos by iMasters
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana Arnos
iMasters477 views
Dicas para uma maior performance em APIs REST - Renato Groffe by iMasters
Dicas para uma maior performance em APIs REST - Renato GroffeDicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato Groffe
iMasters595 views
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro by iMasters
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
iMasters475 views
Quem se importa com acessibilidade Web? - Mauricio Maujor by iMasters
Quem se importa com acessibilidade Web? - Mauricio MaujorQuem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio Maujor
iMasters480 views
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva by iMasters
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaService Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
iMasters603 views
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti by iMasters
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiErros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
iMasters559 views
Elasticidade e engenharia de banco de dados para alta performance - Rubens G... by iMasters
Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
iMasters569 views
Construindo aplicações mais confiantes - Carolina Karklis by iMasters
Construindo aplicações mais confiantes - Carolina KarklisConstruindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina Karklis
iMasters477 views
Monitoramento de Aplicações - Felipe Regalgo by iMasters
Monitoramento de Aplicações - Felipe RegalgoMonitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe Regalgo
iMasters709 views

Recently uploaded

As ferramentas gerenciais da qualidade são estabelecidas para auxiliar a empr... by
As ferramentas gerenciais da qualidade são estabelecidas para auxiliar a empr...As ferramentas gerenciais da qualidade são estabelecidas para auxiliar a empr...
As ferramentas gerenciais da qualidade são estabelecidas para auxiliar a empr...josecarlos413721
12 views2 slides
Um edifício é composto tanto de elementos estruturais — que são dimensionados... by
Um edifício é composto tanto de elementos estruturais — que são dimensionados...Um edifício é composto tanto de elementos estruturais — que são dimensionados...
Um edifício é composto tanto de elementos estruturais — que são dimensionados...josecarlos413721
14 views2 slides
SciELO: O Guia. by
SciELO: O Guia.SciELO: O Guia.
SciELO: O Guia.susieconceicao118
42 views8 slides
Competências para extrair inovação na tecnologia! by
Competências para extrair inovação na tecnologia!Competências para extrair inovação na tecnologia!
Competências para extrair inovação na tecnologia!AnneliseGripp1
9 views11 slides
Capturas microbit.docx by
Capturas microbit.docxCapturas microbit.docx
Capturas microbit.docxseruto231014
8 views5 slides
A documentação de um programa é fundamental, independentemente da linguagem d... by
A documentação de um programa é fundamental, independentemente da linguagem d...A documentação de um programa é fundamental, independentemente da linguagem d...
A documentação de um programa é fundamental, independentemente da linguagem d...josecarlos413721
12 views5 slides

Recently uploaded(10)

As ferramentas gerenciais da qualidade são estabelecidas para auxiliar a empr... by josecarlos413721
As ferramentas gerenciais da qualidade são estabelecidas para auxiliar a empr...As ferramentas gerenciais da qualidade são estabelecidas para auxiliar a empr...
As ferramentas gerenciais da qualidade são estabelecidas para auxiliar a empr...
josecarlos41372112 views
Um edifício é composto tanto de elementos estruturais — que são dimensionados... by josecarlos413721
Um edifício é composto tanto de elementos estruturais — que são dimensionados...Um edifício é composto tanto de elementos estruturais — que são dimensionados...
Um edifício é composto tanto de elementos estruturais — que são dimensionados...
josecarlos41372114 views
Competências para extrair inovação na tecnologia! by AnneliseGripp1
Competências para extrair inovação na tecnologia!Competências para extrair inovação na tecnologia!
Competências para extrair inovação na tecnologia!
AnneliseGripp19 views
A documentação de um programa é fundamental, independentemente da linguagem d... by josecarlos413721
A documentação de um programa é fundamental, independentemente da linguagem d...A documentação de um programa é fundamental, independentemente da linguagem d...
A documentação de um programa é fundamental, independentemente da linguagem d...
josecarlos41372112 views
O setor de PCP faz a gestão dos estoques de produtos acabados, matérias-prima... by josecarlos413721
O setor de PCP faz a gestão dos estoques de produtos acabados, matérias-prima...O setor de PCP faz a gestão dos estoques de produtos acabados, matérias-prima...
O setor de PCP faz a gestão dos estoques de produtos acabados, matérias-prima...
Uma exposição em um centro de convenção precisa contabilizar os visitantes po... by josecarlos413721
Uma exposição em um centro de convenção precisa contabilizar os visitantes po...Uma exposição em um centro de convenção precisa contabilizar os visitantes po...
Uma exposição em um centro de convenção precisa contabilizar os visitantes po...
josecarlos41372148 views
Competências para extrair inovação na tecnologia! by Annelise Gripp
Competências para extrair inovação na tecnologia!Competências para extrair inovação na tecnologia!
Competências para extrair inovação na tecnologia!
Annelise Gripp15 views

InterCon 2016 - Software as a service usando Go como principal linguagem: os cases globo.com