SlideShare uma empresa Scribd logo
GO
Introdução ao Software de Código Aberto
Ano Lectivo: 2017/2018
Professor: Carlos Costa
Trabalho realizado por:
Diogo Neto Conceição - 80427
GO
● Liguagem open source criada em 2007 para
satizfazer as necessidades da google:
– Desepenho
– Escalabilidade
– Facilidade de manutenção
GO
● Novos paradigmas da computação atual
● Trabalho em grupo focado na velociadade
● Criação de linguagem
– Facilmente interpretada como python e javascript
– Eficiencia e segurança de C e C++
GO
● Sintaxe parecida com C
● Não tem classes
● Não tem heranças
● Não tem overload de métodos
● Não tem excepções (try/catch)
● Tem funcões multi-retorno
GO
● Tipos de dados
– Simples (string, int, bool, float64)
– Definidos pelo usuário (struct e interface)
– Compostos
● array (vetor de tamanho fixo)
● slice (vetor de tamanho dinamico
● map (estrutura de dados para armazenar chaves e valores)
● channel ( condição com a qual podemos enviar e receber
valores com o operador ‘<-’)
GO
● Programação concorrente/paralela nativa
● Desempenho baseado em C, é altamente
otimizado.
● Multiplataforma: Linux, Windows, Mac OS,
FreeBSD e mobile
● Facilmente escalável
● Garbage Collector Nativo
● Open Source
GO
● Custos
– Desenvimento : linguagem de fácil uso e
documentação bem definida
– Compilação: garbage-collected diminui o custo de
compilação
– Execução: alta performance
– Manutenção: estruturas simples de construir e ler
permitem uma fácil adaptação ao código
GO
Vantagens
● Desempenho
● Fácil manutenção
Desvantagens
● Parsing de JSON lento
● Má gestão de dependências
Ameaças
● Linguagens alternativas
como Java, Scala,
Clojure, Python, Erlang,
C#, F#, Ocaml Haskell.
Oportunidades
● Opensource facilita a
contante manutenção
● Multi-plataforma
possibilita a utilização em
todos os sistemas e
dispositivos móveis
GO
//HelloWorld
package main
import “fmt”
func main(){
fmt.Printf(“Hello World!”)
}
GO
//HelloWorld
package main //programa que está no pacote main
import “fmt” //importa pacote fmt (entrada e saída)
func main(){ //função principal do programa
fmt.Printf(“Hello World!”) //String que será apresentada
}
GO
Exemplos ciclo for:
i := 1
for i <= 3 {
fmt.Println(i)
i = i + 1
}
for j := 7; j <= 9; j++ {
fmt.Println(j)
}
for n := 0; n <= 5; n++ {
if n%2 == 0 {
continue
}
fmt.Println(n)
}
GO
Exemplo concorrencia:
packace main
import “fmt”
func calculaUmValor(c chan
float 64){
c ← 2,45435/432,3234
}
Func usaGoRotine() float64{
canal ← make(chan float64)
go calculaUmValor(canal)
return ← canal
}
func main(){
valor := usarGoRotine()
fmt.Printf(“Resultado: %v”,
valior)
GO
https://gobyexample.com/
https://play.golang.org/
Exemplos:
Testar código:

Mais conteúdo relacionado

PDF
Programando Software Livre em C
PDF
Qual linguagem escolher?
PDF
GraphQL: PUTs, onde foram parar os verbos HTTP?
PDF
Visao geralti netshoes03
PDF
Visao geralti netshoes03
PDF
Aula 9 - Introdução ao Python
PDF
Pythonificando a Universidade
PPTX
O front-end moderno e sua lib mais popular: React
Programando Software Livre em C
Qual linguagem escolher?
GraphQL: PUTs, onde foram parar os verbos HTTP?
Visao geralti netshoes03
Visao geralti netshoes03
Aula 9 - Introdução ao Python
Pythonificando a Universidade
O front-end moderno e sua lib mais popular: React

Mais procurados (14)

PDF
Cross testing mobile com ruby, cucumber e appium
PDF
Canal analogico do_pic
PDF
Introdução ao SQLAlchemy
PPT
ASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e Bower
PDF
Hack Thursday - NodeJS
PDF
Deploy mágico: o caso de sucesso do PHP'n Rio 11
PDF
Workshop - Introdução a linguagem C#
PPTX
Introdução ao CMake
PDF
Oficina de PHP - Software Freedom Day Luziânia 2013
ODP
PDF
PPTX
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
PDF
Laravel + Vue: Como começar
PPTX
Introdução OpenCV (Pt-Br) com exemplos
Cross testing mobile com ruby, cucumber e appium
Canal analogico do_pic
Introdução ao SQLAlchemy
ASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e Bower
Hack Thursday - NodeJS
Deploy mágico: o caso de sucesso do PHP'n Rio 11
Workshop - Introdução a linguagem C#
Introdução ao CMake
Oficina de PHP - Software Freedom Day Luziânia 2013
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
Laravel + Vue: Como começar
Introdução OpenCV (Pt-Br) com exemplos
Anúncio

Semelhante a Go (20)

PDF
Apostila de dev
PDF
Introdução a linguagem Python
PDF
Linguagens de Script: Caso de Estudo Lua
PDF
Linguagem c wellington telles - aula 02
PDF
apostila de dev.pdf
PDF
Apostila de dev
PDF
Apostila de dev
PDF
Apostila de dev
PDF
_Aula 1 - Introdução à Linguagem Java.pdf
PDF
Paradigmas de programação, imperativo, objeto
PDF
Swift na linha de comando
PPTX
Seminário: C++
PDF
Apostila de devc++ novo
PDF
Introdução à Linguagem de Programação GO
ODP
Matando o Java e Mostrando o Python
PPTX
Automação de Aplicativos: Scripting com Python
PDF
Notas deaulas
PDF
Python e Golang - Parte 1
ZIP
Python e Django na Globo.com
Apostila de dev
Introdução a linguagem Python
Linguagens de Script: Caso de Estudo Lua
Linguagem c wellington telles - aula 02
apostila de dev.pdf
Apostila de dev
Apostila de dev
Apostila de dev
_Aula 1 - Introdução à Linguagem Java.pdf
Paradigmas de programação, imperativo, objeto
Swift na linha de comando
Seminário: C++
Apostila de devc++ novo
Introdução à Linguagem de Programação GO
Matando o Java e Mostrando o Python
Automação de Aplicativos: Scripting com Python
Notas deaulas
Python e Golang - Parte 1
Python e Django na Globo.com
Anúncio

Mais de eurosigdoc acm (20)

PPTX
Blockchain e o Futuro do Setor Financeiro
PPTX
No code – Caso Prático no App Inventor - BroTrip
PPTX
The oracle problem nos smart contracts
PPTX
Robotic process automation
PPTX
Robotic Process Automation: caso de estudo Delloite
PPT
Projeção do Crowdfunding em Portugal: a plataforma ppl
PPTX
Implementação de uma aplicação em Power Apps – Low Code
PPTX
Proteção de dados e redes sociais
PDF
CLOUD COMPUTING E SUSTENTABILIDADE EMPRESARIAL
PDF
CROWDFUNDING: IMPACTO DA GAMIFICAÇÃO NAS PLATAFORMAS DE CROWDFUNDING
PPTX
Low code: O futuro do desenvolvimento de aplicações
PPTX
Robotic Process Automation
PPTX
Crowdsourcing: DEFINIÇÕES E APLICAÇÕES NA ÁREA DA SAÚDE
PPTX
Business Intelligence e o Desporto
PPTX
Blockchain
PPTX
Blockchain: viável ou em luta com o meio ambiente?
PPTX
Cloud Computing e a sua Implementação na Educação no Contexto de Pandemia COV...
PPTX
Viabilidade das NFT’s a Longo Prazo
PPTX
Outsystems e o Universo do Low-Code
Blockchain e o Futuro do Setor Financeiro
No code – Caso Prático no App Inventor - BroTrip
The oracle problem nos smart contracts
Robotic process automation
Robotic Process Automation: caso de estudo Delloite
Projeção do Crowdfunding em Portugal: a plataforma ppl
Implementação de uma aplicação em Power Apps – Low Code
Proteção de dados e redes sociais
CLOUD COMPUTING E SUSTENTABILIDADE EMPRESARIAL
CROWDFUNDING: IMPACTO DA GAMIFICAÇÃO NAS PLATAFORMAS DE CROWDFUNDING
Low code: O futuro do desenvolvimento de aplicações
Robotic Process Automation
Crowdsourcing: DEFINIÇÕES E APLICAÇÕES NA ÁREA DA SAÚDE
Business Intelligence e o Desporto
Blockchain
Blockchain: viável ou em luta com o meio ambiente?
Cloud Computing e a sua Implementação na Educação no Contexto de Pandemia COV...
Viabilidade das NFT’s a Longo Prazo
Outsystems e o Universo do Low-Code

Último (19)

PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Aula 18 - Manipulacao De Arquivos python
Aula04-Academia Heri- Tecnologia Geral 2025
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
COBITxITIL-Entenda as diferença em uso governança TI
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Processos na gestão de transportes, TM100 Col18
Apple Pippin Uma breve introdução. - David Glotz
Custos e liquidação no SAP Transportation Management, TM130 Col18
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Otimizador de planejamento e execução no SAP Transportation Management, TM120...

Go

  • 1. GO Introdução ao Software de Código Aberto Ano Lectivo: 2017/2018 Professor: Carlos Costa Trabalho realizado por: Diogo Neto Conceição - 80427
  • 2. GO ● Liguagem open source criada em 2007 para satizfazer as necessidades da google: – Desepenho – Escalabilidade – Facilidade de manutenção
  • 3. GO ● Novos paradigmas da computação atual ● Trabalho em grupo focado na velociadade ● Criação de linguagem – Facilmente interpretada como python e javascript – Eficiencia e segurança de C e C++
  • 4. GO ● Sintaxe parecida com C ● Não tem classes ● Não tem heranças ● Não tem overload de métodos ● Não tem excepções (try/catch) ● Tem funcões multi-retorno
  • 5. GO ● Tipos de dados – Simples (string, int, bool, float64) – Definidos pelo usuário (struct e interface) – Compostos ● array (vetor de tamanho fixo) ● slice (vetor de tamanho dinamico ● map (estrutura de dados para armazenar chaves e valores) ● channel ( condição com a qual podemos enviar e receber valores com o operador ‘<-’)
  • 6. GO ● Programação concorrente/paralela nativa ● Desempenho baseado em C, é altamente otimizado. ● Multiplataforma: Linux, Windows, Mac OS, FreeBSD e mobile ● Facilmente escalável ● Garbage Collector Nativo ● Open Source
  • 7. GO ● Custos – Desenvimento : linguagem de fácil uso e documentação bem definida – Compilação: garbage-collected diminui o custo de compilação – Execução: alta performance – Manutenção: estruturas simples de construir e ler permitem uma fácil adaptação ao código
  • 8. GO Vantagens ● Desempenho ● Fácil manutenção Desvantagens ● Parsing de JSON lento ● Má gestão de dependências Ameaças ● Linguagens alternativas como Java, Scala, Clojure, Python, Erlang, C#, F#, Ocaml Haskell. Oportunidades ● Opensource facilita a contante manutenção ● Multi-plataforma possibilita a utilização em todos os sistemas e dispositivos móveis
  • 9. GO //HelloWorld package main import “fmt” func main(){ fmt.Printf(“Hello World!”) }
  • 10. GO //HelloWorld package main //programa que está no pacote main import “fmt” //importa pacote fmt (entrada e saída) func main(){ //função principal do programa fmt.Printf(“Hello World!”) //String que será apresentada }
  • 11. GO Exemplos ciclo for: i := 1 for i <= 3 { fmt.Println(i) i = i + 1 } for j := 7; j <= 9; j++ { fmt.Println(j) } for n := 0; n <= 5; n++ { if n%2 == 0 { continue } fmt.Println(n) }
  • 12. GO Exemplo concorrencia: packace main import “fmt” func calculaUmValor(c chan float 64){ c ← 2,45435/432,3234 } Func usaGoRotine() float64{ canal ← make(chan float64) go calculaUmValor(canal) return ← canal } func main(){ valor := usarGoRotine() fmt.Printf(“Resultado: %v”, valior)