Hello!I am Abraão Állysson
Hello!
@AbraaoHonorio @AbraaoHonorio
Escopo da apresentação
1- Parte Teórica: Introdução:
○ História
○ Quando usar
○ Dicas
○ Recurso da linguagem
2- Parte Prática:
○ Mão na massa:
■ Exercício I
■ Exercício II
■ Exercício III
■ Exercício IV
■ Exercício V
■ Exercício ...
1.
Parte Teórica
Let’s start!
objetivo
× Introduzir os conceitos de programação
usando a linguagem GO
× Entender aonde aplicar GO
× Fazer Networking, promover comunidade GO
na UFPB
“Go is an open source
programming language that
makes it easy to build simple,
reliable, and efficient
software.”
É uma linguagem open
source criada em 2007
pelo Google, mais
especificamente por
caras como Robert
Griesemer, Rob Pike e Ken
Thompson.
O que é Go?
linguagens estáticas:
Possuem tipagem estática
Linguagens dinâmicas:
Possuem tipagem dinâmica.
E GO, o melhor dos dois
mundos?
GO é
Por que utilizar GO?
Por que utilizar GO no seu backend?
GO(fast)
GO é leve, em termos
de uso de memória,
Altamente escalável ,
desenhada para
trabalhar com
concorrência
E compila muito
rápido
Simples
Go possui sintaxe
intuitiva, tem
apenas 25 palavras
reservadas, possui
Garbage collection,
multiplataforma e
altamente escalável
Quem está usando
Go?
● Google
● Facebook
● Dropbox
● Twitter
● Uber
● Globo.com
Dica #1!
A dica mais importante,:
Sempre que for pesquisar sobre GO, use
GOLANG
Participe da comunidade Golang Brasil,
acessem: www.golangbr.org
Recurso da
linguagem
Recurso da
linguagem
Recurso da linguagem
Valores
● Numérico
● String
● Numérico
● Array
● Struct
● ...
Funcionalidades
● ; invisível
● Funções de
multi-retorno
● Não conseguir
compilar com
variáveis ou imports
não utilizados
● goroutines(tipagem
automática)
● Strings com funções
nativas
Tipos
● Primitivos
● Compostos
2.
Parte Prática
Let’s start! ;)
Hello Word!
package main
import "fmt"
func main() {
var nome string = "Abraao"
fmt.Println("Hello", nome)
}
Hello Word #2!
package main
import "fmt"
func main() {
var nome string = "Abraao"
fmt.Println("Hello", nome)
}
Hello Word #3!
package main
import "fmt"
func main() {
var nome string = "Abraao"
fmt.Println("Meu nome é", nome)
var matricula int= 11320000
fmt.Println("Minha matricula é", matricula)
}
Trabalhando com Números #1!
package main
import "fmt"
func main() {
var idade int = 17
fmt.Println("Minha idade é", idade)
var precoCafe float = 2.50
fmt.Println("preco do café é", precoCafe)
}
Trabalhando com Números #2!
package main
import "fmt"
func main() {
var idade int = 17
fmt.Println("Minha idade é", idade)
var precoCafe float = 2.50
fmt.Println("preco do café é", precoCafe)
}
Trabalhando com Números #2!
package main
import "fmt"
func main() {
var idade int = 17
fmt.Println("Minha idade é", idade)
var precoCafe float32 = 2.50
fmt.Println("preco do café é", precoCafe)
}
Trabalhando com Números #3!
package main
import "fmt"
func main() {
const pi = 3.14
fmt.Println("O número pi tem valor de", pi)
}
Trabalhando com Números #3!
package main
import "fmt"
func main() {
const pi = 3.14
fmt.Println("O número pi tem valor de", pi)
}
O valor da const
é imutável
Trabalhando com Pacotes #1 - MATH!
package main
import "fmt"
import "reflect"
func main() {
var nome = "Abraao Allysson"
var matricula = 11320000
var raizQuadrada = math.Sqrt(9)
fmt.Println("Olá sr.", nome, "sua matricula é", matricula)
fmt.Println("Este programa está na versão", versao)
fmt.Println("a raiz quadrada de 9 é", raizQuadrada)
}
Trabalhando com Pacotes #2 - reflect!
package main
import "fmt"
import "reflect"
func main() {
var nome = "Abraao Allysson"
var matricula = 11320000
var versao = 1.1
fmt.Println("Olá sr.", nome, "sua matricula é", matricula)
fmt.Println("Este programa está na versão", versao)
fmt.Println("O tipo da variável versão é", reflect.TypeOf(versao))
}
Entrada de dados #1!
package main
import "fmt"
func main() {
var nome = "Abraao Allysson"
var matricula = 11320000
var idade
fmt.Println("Olá sr.", nome, "sua matricula é", matricula)
fmt.Println("Qual sua idade? ")
fmt.Scanf("%d",&idade)
fmt.Println("sua idade é ", idade)
}
Dica #2!Declaração de variável
nome := "Abraao Allysson"
Não precisa declarar o var
C: Int i = 1;
GO: i :=1
Problema com estrutura condicionalNão possui () e as {} são sempre necessárias.
IF condição {
//sua lógica
//caso for verdadeira
}
else {
//sua lógica
//caso for falsa
}
Problema com estrutura
condicional #2!
Problema, verificar se o cliente tem dinheiro suficiente
para comprar o café
Problema de estrutura de
repetição #2!
Problema, verificar se o cliente tem dinheiro suficiente
para comprar o café
Problema com estrutura condicionalNão possui () e as {} são sempre necessárias.
switch comando {
case 1:
//sua lógica
case 2:
//sua lógica
default:
//lógica para entradas padrões
}
Problema de estrutura de
repetição #3!
Problema, verificar se o prato escolhido do cliente
encontra-se no cardápio
Dica #3!
Break?
Para quem vem de outras linguagens de
programação, pode estranhar o não uso do break,
ao final do código de cada caso do switch. No GO
não a necessidade do uso do break, o código será
executado e o switch será encerrado.
Problema com estrutura de repetiçãoNão possui () e as {} são sempre necessárias.
For comando {
//lógica vai se repetir
}
Problema de estrutura de
repetição #3!
Problema, somar o números de 0s a 100
Problema de estrutura de
repetição #3!
Problema, somar o números de 0 a 100
Dica #4!
Recomendo a leitura do artigo!
50 Shades of Go: Traps, Gotchas, and Common
Mistakes for New Golang Devs
ATENÇÃO
Como os códigos ficarão maiores daqui para frente não colocarei mais no slides, mas
Códigos estão no github, é só acessar o link: www.github.com/abraaohonorio/minicursoGO
Sorteio do livroSistema de sorteio feito em GO
THANKS!Alguma pergunta ?
Contato: @abraaohonorio & abraao.allyson@eng.ci.ufpb.br
referências
Referência técnica
https://imasters.com.br/linguagens/trabalhando-com-go-golang-
a-linguagem-do-google/?trace=1519021197
http://devs.cloudimmunity.com/gotchas-and-common-mistakes-i
n-go-golang/
Material para construção Slides
× Presentation template by SlidesCarnival
× Photographs by Startupstockphotos

Mini curso GOLANG

  • 1.
    Hello!I am AbraãoÁllysson Hello! @AbraaoHonorio @AbraaoHonorio
  • 2.
    Escopo da apresentação 1-Parte Teórica: Introdução: ○ História ○ Quando usar ○ Dicas ○ Recurso da linguagem 2- Parte Prática: ○ Mão na massa: ■ Exercício I ■ Exercício II ■ Exercício III ■ Exercício IV ■ Exercício V ■ Exercício ...
  • 3.
  • 4.
    objetivo × Introduzir osconceitos de programação usando a linguagem GO × Entender aonde aplicar GO × Fazer Networking, promover comunidade GO na UFPB
  • 5.
    “Go is anopen source programming language that makes it easy to build simple, reliable, and efficient software.”
  • 6.
    É uma linguagemopen source criada em 2007 pelo Google, mais especificamente por caras como Robert Griesemer, Rob Pike e Ken Thompson. O que é Go? linguagens estáticas: Possuem tipagem estática Linguagens dinâmicas: Possuem tipagem dinâmica. E GO, o melhor dos dois mundos?
  • 7.
    GO é Por queutilizar GO?
  • 8.
    Por que utilizarGO no seu backend? GO(fast) GO é leve, em termos de uso de memória, Altamente escalável , desenhada para trabalhar com concorrência E compila muito rápido Simples Go possui sintaxe intuitiva, tem apenas 25 palavras reservadas, possui Garbage collection, multiplataforma e altamente escalável Quem está usando Go? ● Google ● Facebook ● Dropbox ● Twitter ● Uber ● Globo.com
  • 9.
    Dica #1! A dicamais importante,: Sempre que for pesquisar sobre GO, use GOLANG Participe da comunidade Golang Brasil, acessem: www.golangbr.org
  • 10.
  • 11.
    Recurso da linguagem Valores ●Numérico ● String ● Numérico ● Array ● Struct ● ... Funcionalidades ● ; invisível ● Funções de multi-retorno ● Não conseguir compilar com variáveis ou imports não utilizados ● goroutines(tipagem automática) ● Strings com funções nativas Tipos ● Primitivos ● Compostos
  • 12.
  • 13.
    Hello Word! package main import"fmt" func main() { var nome string = "Abraao" fmt.Println("Hello", nome) }
  • 14.
    Hello Word #2! packagemain import "fmt" func main() { var nome string = "Abraao" fmt.Println("Hello", nome) }
  • 15.
    Hello Word #3! packagemain import "fmt" func main() { var nome string = "Abraao" fmt.Println("Meu nome é", nome) var matricula int= 11320000 fmt.Println("Minha matricula é", matricula) }
  • 16.
    Trabalhando com Números#1! package main import "fmt" func main() { var idade int = 17 fmt.Println("Minha idade é", idade) var precoCafe float = 2.50 fmt.Println("preco do café é", precoCafe) }
  • 17.
    Trabalhando com Números#2! package main import "fmt" func main() { var idade int = 17 fmt.Println("Minha idade é", idade) var precoCafe float = 2.50 fmt.Println("preco do café é", precoCafe) }
  • 18.
    Trabalhando com Números#2! package main import "fmt" func main() { var idade int = 17 fmt.Println("Minha idade é", idade) var precoCafe float32 = 2.50 fmt.Println("preco do café é", precoCafe) }
  • 19.
    Trabalhando com Números#3! package main import "fmt" func main() { const pi = 3.14 fmt.Println("O número pi tem valor de", pi) }
  • 20.
    Trabalhando com Números#3! package main import "fmt" func main() { const pi = 3.14 fmt.Println("O número pi tem valor de", pi) } O valor da const é imutável
  • 21.
    Trabalhando com Pacotes#1 - MATH! package main import "fmt" import "reflect" func main() { var nome = "Abraao Allysson" var matricula = 11320000 var raizQuadrada = math.Sqrt(9) fmt.Println("Olá sr.", nome, "sua matricula é", matricula) fmt.Println("Este programa está na versão", versao) fmt.Println("a raiz quadrada de 9 é", raizQuadrada) }
  • 22.
    Trabalhando com Pacotes#2 - reflect! package main import "fmt" import "reflect" func main() { var nome = "Abraao Allysson" var matricula = 11320000 var versao = 1.1 fmt.Println("Olá sr.", nome, "sua matricula é", matricula) fmt.Println("Este programa está na versão", versao) fmt.Println("O tipo da variável versão é", reflect.TypeOf(versao)) }
  • 23.
    Entrada de dados#1! package main import "fmt" func main() { var nome = "Abraao Allysson" var matricula = 11320000 var idade fmt.Println("Olá sr.", nome, "sua matricula é", matricula) fmt.Println("Qual sua idade? ") fmt.Scanf("%d",&idade) fmt.Println("sua idade é ", idade) }
  • 24.
    Dica #2!Declaração devariável nome := "Abraao Allysson" Não precisa declarar o var C: Int i = 1; GO: i :=1
  • 25.
    Problema com estruturacondicionalNão possui () e as {} são sempre necessárias. IF condição { //sua lógica //caso for verdadeira } else { //sua lógica //caso for falsa }
  • 26.
    Problema com estrutura condicional#2! Problema, verificar se o cliente tem dinheiro suficiente para comprar o café
  • 27.
    Problema de estruturade repetição #2! Problema, verificar se o cliente tem dinheiro suficiente para comprar o café
  • 28.
    Problema com estruturacondicionalNão possui () e as {} são sempre necessárias. switch comando { case 1: //sua lógica case 2: //sua lógica default: //lógica para entradas padrões }
  • 29.
    Problema de estruturade repetição #3! Problema, verificar se o prato escolhido do cliente encontra-se no cardápio
  • 30.
    Dica #3! Break? Para quemvem de outras linguagens de programação, pode estranhar o não uso do break, ao final do código de cada caso do switch. No GO não a necessidade do uso do break, o código será executado e o switch será encerrado.
  • 31.
    Problema com estruturade repetiçãoNão possui () e as {} são sempre necessárias. For comando { //lógica vai se repetir }
  • 32.
    Problema de estruturade repetição #3! Problema, somar o números de 0s a 100
  • 33.
    Problema de estruturade repetição #3! Problema, somar o números de 0 a 100
  • 34.
    Dica #4! Recomendo aleitura do artigo! 50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs
  • 35.
    ATENÇÃO Como os códigosficarão maiores daqui para frente não colocarei mais no slides, mas Códigos estão no github, é só acessar o link: www.github.com/abraaohonorio/minicursoGO
  • 36.
    Sorteio do livroSistemade sorteio feito em GO
  • 37.
    THANKS!Alguma pergunta ? Contato:@abraaohonorio & abraao.allyson@eng.ci.ufpb.br
  • 38.