O go(golang), é uma linguagem de programação criada pelo Google. O go é um ambiente de programação de código aberto que faz com que seja fácil de construir software simples, confiável e eficiente. Principalmente quando trabalha-se com com concorrência, paralelismo da linguagem. Essa é uma parte da linguagem é mais avançada, que não é o nosso foco, no minicurso iremos entender os princípios da linguagem, vendo a sua sintaxe, convenções, boas práticas, pacotes, tudo mais... GO ou Bora?
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 ...
4. objetivo
× Introduzir os conceitos de programação
usando a linguagem GO
× Entender aonde aplicar GO
× Fazer Networking, promover comunidade GO
na UFPB
5. “Go is an open source
programming language that
makes it easy to build simple,
reliable, and efficient
software.”
6. É 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?
8. 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
9. Dica #1!
A dica mais importante,:
Sempre que for pesquisar sobre GO, use
GOLANG
Participe da comunidade Golang Brasil,
acessem: www.golangbr.org
14. Hello Word #2!
package main
import "fmt"
func main() {
var nome string = "Abraao"
fmt.Println("Hello", nome)
}
15. 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)
}
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 de variável
nome := "Abraao Allysson"
Não precisa declarar o var
C: Int i = 1;
GO: i :=1
25. 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
}
27. Problema de estrutura de
repetição #2!
Problema, verificar se o cliente tem dinheiro suficiente
para comprar o café
28. 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
}
29. Problema de estrutura de
repetição #3!
Problema, verificar se o prato escolhido do cliente
encontra-se no cardápio
30. 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.
31. Problema com estrutura de repetiçãoNão possui () e as {} são sempre necessárias.
For comando {
//lógica vai se repetir
}
34. Dica #4!
Recomendo a leitura do artigo!
50 Shades of Go: Traps, Gotchas, and Common
Mistakes for New Golang Devs
35. 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