-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgoIntro.slide
175 lines (116 loc) · 3.38 KB
/
goIntro.slide
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
Go for Baby Gophers
Primeiros passos em Go
Tags: Go, Golang, Baby Gophers
Alê Borba
Program Manager, Developer Relations at Google
https://twitter.com/ale_borba
https://plus.google.com/+DesenvolvedoresGoogle
* Agenda
- História
- Hello World
- Command Line
- Web
- Hardware
- Tools
- Refs
.image assets/agenda.jpg
* História
*2009*
- Lançada como Open Source
- Mantida pelo Google (Go Team)
- Foco em programadores C/C++ e Java
*2010*
- Adoção por parte de outros programadores...
- ...começam a surgir grandes projetos
.image assets/gopher.png
* o tempo passa...
* História
*2016*
.image assets/grafico.png 525 800
* Talk is cheap! Show me the code!
* Hello World
.play scripts/hello.go
.image assets/gopher.png
* Estrutura de diretórios
bin/
streak # command executable
todo # command executable
pkg/
linux_amd64/
github.com/nf/todo/
task.a # package object
src/
github.com/nf/
todo/
.git/ # git repository metadata
task/
task.go # package source
todo.go # command source
.image assets/gopher.png
* Estrutura de Package
.code scripts/postmon.go /START_1 OMIT/,/END_1 OMIT/ HLpackage
- Todos os arquivos do pacote devem usar o mesmo package _name_
- O nome não precisa ser unico, apenas o _import_path_ precisa ser
- Por convensão o nome do pacote é o último elemento do _import_path_
.image assets/gopher.png
* Estrutura de Package
.code scripts/postmon.go /START_2 OMIT/,/END_2 OMIT/ HLpack
* Estrutura de testes unitários
.code scripts/postmon_test.go /START_1 OMIT/,/END_1 OMIT/ HLtest
.code scripts/postmon_test.go /START_2 OMIT/,/END_2 OMIT/ HLtest
.image assets/gopher.png
* Estrutura de documentação
.code scripts/doc.go /START_1 OMIT/,/END_1 OMIT/ HLdoc
.code scripts/doc.go /START_2 OMIT/,/END_2 OMIT/ HLdoc
.image assets/gopher.png
* Command Line
.play scripts/cmd_sample.go /START OMIT/,/END OMIT/ HLcmd
- Rodar um _go_build_ para testar a compilação
- Rodar um _go_install_ para instalar o pacote
.image assets/gopher.png
* Web
.code scripts/martiniSampleApp.go /START_1 OMIT/,/END_1 OMIT/ HLmartini
.image assets/gopher.png
* Web
.code scripts/martiniSampleApp.go /START_2 OMIT/,/END_2 OMIT/ HLmartini
.image assets/gopher.png
* Hardware
.code scripts/leapgo.go /START_1 OMIT/,/END_1 OMIT/ HLleap
.image assets/gopher.png
* Hardware
.play scripts/leapgo.go /START_2 OMIT/,/END_2 OMIT/ HLleap
* Tools
- *go*build*
Compila todos os pacotes e dependencias, sem instalar.
- *go*install*
Compila e instala pacotes e dependencias.
- *go*get*
Faz o download e instala pacotes e dependecias.
- *go*test*
Roda a suite de testes.
- *go*run*
Compila e roda um programa em Go
* Tools
- *godoc*
GoDoc é vida!
godoc -http=:8080
- *gofmt*
Varre todos os arquivos .go e refatora para o padrão da linguagem.
- *goimports*
Faz um update dos seus imports. Adiciona os que ainda não existem e tira os que não estão sendo usados.
- *golint*
Verifica por erros de "boas práticas" no código.
* Refs
- _golang.org_
- _golangbr.org_
- _godoc.org_
- _gopheracademy.com_
- _goinggo.net_
- _golang-book.com_
- Programando com Go - Casa do Código
.image assets/gopher.png
* GopherCon Brasil 2016
- gopherconbr.org
- 4, 5 e 6 de Novembro, 2016
- Florianópolis