SlideShare uma empresa Scribd logo
1 de 13
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

Mais procurados

Cross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appiumCross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appiumMaximiliano Alves
 
Introdução ao SQLAlchemy
Introdução ao SQLAlchemyIntrodução ao SQLAlchemy
Introdução ao SQLAlchemyJoão Toss Molon
 
ASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e Bower
ASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e BowerASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e Bower
ASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e Bowertdc-globalcode
 
Deploy mágico: o caso de sucesso do PHP'n Rio 11
Deploy mágico: o caso de sucesso do PHP'n Rio 11Deploy mágico: o caso de sucesso do PHP'n Rio 11
Deploy mágico: o caso de sucesso do PHP'n Rio 11Igor Santos
 
Workshop - Introdução a linguagem C#
Workshop - Introdução a linguagem C#Workshop - Introdução a linguagem C#
Workshop - Introdução a linguagem C#Cristiano Cunha
 
Introdução ao CMake
Introdução ao CMakeIntrodução ao CMake
Introdução ao CMakePaulo Remoli
 
Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013George Mendonça
 
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDBArquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDBMario Guedes
 
Laravel + Vue: Como começar
Laravel + Vue: Como começarLaravel + Vue: Como começar
Laravel + Vue: Como começarLeandro Ferreira
 

Mais procurados (14)

Cross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appiumCross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appium
 
Canal analogico do_pic
Canal analogico do_picCanal analogico do_pic
Canal analogico do_pic
 
Introdução ao SQLAlchemy
Introdução ao SQLAlchemyIntrodução ao SQLAlchemy
Introdução ao SQLAlchemy
 
ASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e Bower
ASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e BowerASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e Bower
ASP.NET 5 MVC Gerenciando dependencias com Nuget, NPM, Gulp e Bower
 
Hack Thursday - NodeJS
Hack Thursday - NodeJSHack Thursday - NodeJS
Hack Thursday - NodeJS
 
Deploy mágico: o caso de sucesso do PHP'n Rio 11
Deploy mágico: o caso de sucesso do PHP'n Rio 11Deploy mágico: o caso de sucesso do PHP'n Rio 11
Deploy mágico: o caso de sucesso do PHP'n Rio 11
 
Workshop - Introdução a linguagem C#
Workshop - Introdução a linguagem C#Workshop - Introdução a linguagem C#
Workshop - Introdução a linguagem C#
 
Introdução ao CMake
Introdução ao CMakeIntrodução ao CMake
Introdução ao CMake
 
Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013
 
Aula10 -PHP
Aula10 -PHPAula10 -PHP
Aula10 -PHP
 
Programando em Go
Programando em GoProgramando em Go
Programando em Go
 
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDBArquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDB
 
Laravel + Vue: Como começar
Laravel + Vue: Como começarLaravel + Vue: Como começar
Laravel + Vue: Como começar
 
Introdução OpenCV (Pt-Br) com exemplos
Introdução OpenCV (Pt-Br) com exemplosIntrodução OpenCV (Pt-Br) com exemplos
Introdução OpenCV (Pt-Br) com exemplos
 

Semelhante a Go (20)

Apostila de dev
Apostila de devApostila de dev
Apostila de dev
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Linguagens de Script: Caso de Estudo Lua
Linguagens de Script: Caso de Estudo LuaLinguagens de Script: Caso de Estudo Lua
Linguagens de Script: Caso de Estudo Lua
 
Linguagem c wellington telles - aula 02
Linguagem c   wellington telles - aula 02Linguagem c   wellington telles - aula 02
Linguagem c wellington telles - aula 02
 
Apostila de dev
Apostila de devApostila de dev
Apostila de dev
 
apostila de dev.pdf
apostila de dev.pdfapostila de dev.pdf
apostila de dev.pdf
 
Apostila de dev
Apostila de devApostila de dev
Apostila de dev
 
Apostila de dev
Apostila de devApostila de dev
Apostila de dev
 
Swift na linha de comando
Swift na linha de comandoSwift na linha de comando
Swift na linha de comando
 
Seminário: C++
Seminário: C++Seminário: C++
Seminário: C++
 
Apostila de devc++ novo
Apostila de devc++ novoApostila de devc++ novo
Apostila de devc++ novo
 
Introdução à Linguagem de Programação GO
Introdução à Linguagem de Programação GOIntrodução à Linguagem de Programação GO
Introdução à Linguagem de Programação GO
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o Python
 
Csharp
CsharpCsharp
Csharp
 
Automação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com PythonAutomação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com Python
 
Notas deaulas
Notas deaulasNotas deaulas
Notas deaulas
 
Python e Golang - Parte 1
Python e Golang - Parte 1Python e Golang - Parte 1
Python e Golang - Parte 1
 
Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.com
 
Apresentação c++ UFC-Quixadá
Apresentação c++ UFC-QuixadáApresentação c++ UFC-Quixadá
Apresentação c++ UFC-Quixadá
 
Postgresql +python
Postgresql +pythonPostgresql +python
Postgresql +python
 

Mais de eurosigdoc acm

Blockchain e o Futuro do Setor Financeiro
Blockchain e o Futuro do Setor FinanceiroBlockchain e o Futuro do Setor Financeiro
Blockchain e o Futuro do Setor Financeiroeurosigdoc acm
 
No code – Caso Prático no App Inventor - BroTrip
No code – Caso Prático no App Inventor - BroTripNo code – Caso Prático no App Inventor - BroTrip
No code – Caso Prático no App Inventor - BroTripeurosigdoc acm
 
The oracle problem nos smart contracts
The oracle problem nos smart contractsThe oracle problem nos smart contracts
The oracle problem nos smart contractseurosigdoc acm
 
Robotic process automation
Robotic process automation Robotic process automation
Robotic process automation eurosigdoc acm
 
Robotic Process Automation: caso de estudo Delloite
Robotic Process Automation: caso de estudo DelloiteRobotic Process Automation: caso de estudo Delloite
Robotic Process Automation: caso de estudo Delloiteeurosigdoc acm
 
Projeção do Crowdfunding em Portugal: a plataforma ppl
Projeção do Crowdfunding em Portugal: a plataforma pplProjeção do Crowdfunding em Portugal: a plataforma ppl
Projeção do Crowdfunding em Portugal: a plataforma ppleurosigdoc acm
 
Implementação de uma aplicação em Power Apps – Low Code
Implementação de uma aplicação em Power Apps – Low CodeImplementação de uma aplicação em Power Apps – Low Code
Implementação de uma aplicação em Power Apps – Low Codeeurosigdoc acm
 
Proteção de dados e redes sociais
Proteção de dados e redes sociaisProteção de dados e redes sociais
Proteção de dados e redes sociaiseurosigdoc acm
 
CLOUD COMPUTING E SUSTENTABILIDADE EMPRESARIAL
CLOUD COMPUTING E SUSTENTABILIDADE EMPRESARIALCLOUD COMPUTING E SUSTENTABILIDADE EMPRESARIAL
CLOUD COMPUTING E SUSTENTABILIDADE EMPRESARIALeurosigdoc acm
 
CROWDFUNDING: IMPACTO DA GAMIFICAÇÃO NAS PLATAFORMAS DE CROWDFUNDING
CROWDFUNDING: IMPACTO DA GAMIFICAÇÃO NAS PLATAFORMAS DE CROWDFUNDINGCROWDFUNDING: IMPACTO DA GAMIFICAÇÃO NAS PLATAFORMAS DE CROWDFUNDING
CROWDFUNDING: IMPACTO DA GAMIFICAÇÃO NAS PLATAFORMAS DE CROWDFUNDINGeurosigdoc acm
 
Low code: O futuro do desenvolvimento de aplicações
Low code: O futuro do desenvolvimento de aplicaçõesLow code: O futuro do desenvolvimento de aplicações
Low code: O futuro do desenvolvimento de aplicaçõeseurosigdoc acm
 
Robotic Process Automation
Robotic Process AutomationRobotic Process Automation
Robotic Process Automationeurosigdoc acm
 
Crowdsourcing: DEFINIÇÕES E APLICAÇÕES NA ÁREA DA SAÚDE
Crowdsourcing: DEFINIÇÕES E APLICAÇÕES NA ÁREA DA SAÚDECrowdsourcing: DEFINIÇÕES E APLICAÇÕES NA ÁREA DA SAÚDE
Crowdsourcing: DEFINIÇÕES E APLICAÇÕES NA ÁREA DA SAÚDEeurosigdoc acm
 
Business Intelligence e o Desporto
Business Intelligence e o DesportoBusiness Intelligence e o Desporto
Business Intelligence e o Desportoeurosigdoc acm
 
Blockchain: viável ou em luta com o meio ambiente?
Blockchain: viável ou em luta com o meio ambiente?Blockchain: viável ou em luta com o meio ambiente?
Blockchain: viável ou em luta com o meio ambiente?eurosigdoc acm
 
Cloud Computing e a sua Implementação na Educação no Contexto de Pandemia COV...
Cloud Computing e a sua Implementação na Educação no Contexto de Pandemia COV...Cloud Computing e a sua Implementação na Educação no Contexto de Pandemia COV...
Cloud Computing e a sua Implementação na Educação no Contexto de Pandemia COV...eurosigdoc acm
 
Viabilidade das NFT’s a Longo Prazo
Viabilidade das NFT’s a Longo Prazo Viabilidade das NFT’s a Longo Prazo
Viabilidade das NFT’s a Longo Prazo eurosigdoc acm
 
Outsystems e o Universo do Low-Code
Outsystems e o Universo do Low-CodeOutsystems e o Universo do Low-Code
Outsystems e o Universo do Low-Codeeurosigdoc acm
 

Mais de eurosigdoc acm (20)

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

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)