This repository has been archived by the owner on Apr 7, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 20
/
00-course-info.slide
187 lines (118 loc) · 6.34 KB
/
00-course-info.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
176
177
178
179
180
181
182
183
184
185
186
Програмиране с Go
03.10.2018
http://fmi.golang.bg/
@fmi_golang
* Здравейте
Нека ви обясним къде сте попаднали.
* За пета (не съвсем поредна) година
- Много оценяваме вашия feedback и се опитваме всяка година да сме по-добри
- Вече има резултат...
- ... разбираме от корейски интерфейси на проектори!
- Курсът ще е доста труден
* Лекции
- Сряда
- От 19:15 до около 21:00
- Зала 02 във ФМИ
* В интернеда
.link http://fmi.golang.bg/
.link https://github.com/fmi/go-lectures
.link https://github.com/fmi/go-homework
.link https://www.facebook.com/groups/fmi.golang/
.link http://twitter.com/fmi_golang @fmi_golang
* Торонто 🍕🏚
Вече не съществува
Сърцата ни са разбити
Но ще намерим къде да пием бира след курса. Добре дошли!
* Оценяване
Ще събирате точки
* Домашни
- 5-6 броя
- Всяко дава по 10 точки
- Ако много ни радават решения, можем да даваме бонуси
- Ако вършите глупости, вземаме точки
- Предават се онлайн на сайта на курса
- Проверяват се автоматизирано
- Стават публичния след крайния срок
- Ако преписвате, ви късаме
* Тестове
- Два броя
- 30 въпроса
- 1 верен отговор = 1 точка
* Проект
- Трябва сами да си харесате тема
- Ще ви дадем примерни
- До Бъдни вечер трябва да сте ни изпратили своята идея и ние да сме я одобрили
- В някоя от първите учебни седмици на 2019 ще защитавате структурата на проекта
- По време на сесията защитавате имплементация, тестове, стил...
- Само миналите първата защита отиват на изпит
- Oстаналите - септември
* Но поне сме щедри с точките
* Участие по време на лекция
- Ще раздаваме мъфини или Snickers-и
- Всеки мъфин/Snickers има код
- Всеки код носи точка
- Даваме ги при добър въпрос или отговор на въпрос
- Ще даваме мъфин и ако ни хванете в грешка
* Участие в сайта
- Добър пост във форумите (въпрос, отговор на въпрос или помощ на колега)
- Добър коментар на чуждо решение
- Предложена хитринка
* Помощ с материалите
- Качваме всяка лекция в [[https://github.com/fmi/go-lectures][GitHub]]
- Поправяне на грешки
- Примери от лекциите
- Неща, които сме пропуснали
* Предизвикателства
- Малки или странни задачки
- Неособено дълъг срок
- Обикновено са изненада дори за нас
* Защо всичко трябва да бъде толкова сложно!?
* Go
* Що е то Go?
- Сравнително нов програмен език
- Започнат 2007 година в Google от Robert Griesemer, Rob Pike и Ken Thompson
- Първата публична версия е от 2009, а версия 1.0 излиза през 2012
- Последния major release е 1.11 от преди месец
- За контраст - C е на 46 години, Python на 27 и Java на 23
- Хардуерът се променя
- Проблемите, които решаваме, също
* ...
- Go е език с отворен код от сравнително ниско ниво (между C/C++ и Java/.NET)
- Има C-подобен синтаксис
- Дълбоко залегнала идея за конкурентност
- Вграден, бърз и ефективен garbage collector
- Безумно бърза компилация до машинен код
- Минимален runtime, single statically-linked executable
- Cross-platform: Linux, OS X, Windows, BSD-та и Unix-и, mainframes, WebAssembly и мобилни устройства
- Създаден да scale-ва
- Изключително опростен
- UTF-8 by default
* ...
- Safe by default, но `unsafe` при необходимост
- Богата стандартна библиотека
- Много динамично развиващ се език
- Вградени инструменти за unit и benchmark тестове
- Race condition detector
- Документация като feature
- Екосистема от удобни инструменти и сайтове
- Единна конвенция за писане на код
- Интеграция със C (макар и леко гадна)
- `go`get`-u`golang.org/x/tools/cmd/present`
* ... и има ли почва у нас?
- Docker, rkt, etcd, fleet, deis, consul, terraform, kubernetes и сума ти контейнерни библиотеки и приложения
- tidb, CockroachDB, InfluxDB, BoltDB, vitess
- Grafana, ngrok, Gogs и много [[https://github.com/avelino/awesome-go][други проекти]]
- От доста време се използва в production от Google, Cloudflare, Soundcloud и [[https://github.com/golang/go/wiki/GoUsers][доста други компании]]
* hello world
.play code/course-info/hello_world.go
* hello world on steroids
.play code/course-info/hello_http.go /func main/,/^}/
* The Go gopher
.image assets/gopherbw.png
* Подробности
Вид гризач
Създаден от [[https://www.instagram.com/reneefrench][Renée French]]
[[https://blog.golang.org/gopher][История]]
И отговорът на въпроса, който всички си задавате...
_да_, можете да го купите онлайн.