2020-02-01 20:16:15 +00:00
|
|
|
|
Введение
|
|
|
|
|
Лекция 1
|
|
|
|
|
|
|
|
|
|
Фёдор Короткий
|
|
|
|
|
|
|
|
|
|
* Добро пожаловать
|
|
|
|
|
|
|
|
|
|
- Вы пришли на курс по Go
|
|
|
|
|
|
2020-02-09 18:14:30 +00:00
|
|
|
|
.image gopher.png _ 400
|
2020-02-01 20:16:15 +00:00
|
|
|
|
|
2020-02-09 18:14:30 +00:00
|
|
|
|
* Ссылки
|
2020-02-01 20:16:15 +00:00
|
|
|
|
|
2020-02-09 18:14:30 +00:00
|
|
|
|
.link https://wiki.yandex.ru/shad/groups/2018/Semester4/GoLang/ Вики страница
|
|
|
|
|
.link https://gitlab.com/slon/shad-go Репозиторий
|
|
|
|
|
.link https://t.me/joinchat/BjrYSxdPJGtJdd1pae08Zg Чат курса в телеграме
|
2020-02-10 13:40:22 +00:00
|
|
|
|
[[https://p.go.manytask.org]] - эти слайды.
|
2020-02-09 18:14:30 +00:00
|
|
|
|
|
|
|
|
|
* Что нас ждёт?
|
|
|
|
|
|
|
|
|
|
- 12+ занятий
|
|
|
|
|
- Семинарские задания после каждой лекции. *Дедлайн*10*дней.*
|
|
|
|
|
- 4 _больших_ домашних задания. *Дедлайн*3*недели.*
|
|
|
|
|
- Критерий оценки: *TODO*.
|
|
|
|
|
|
|
|
|
|
* Hello world
|
|
|
|
|
|
|
|
|
|
.play -edit helloworld.go
|
|
|
|
|
|
|
|
|
|
* Go
|
|
|
|
|
|
|
|
|
|
Concurrent
|
|
|
|
|
|
|
|
|
|
Garbage Collected
|
|
|
|
|
|
|
|
|
|
Systems
|
|
|
|
|
|
|
|
|
|
Language
|
|
|
|
|
|
|
|
|
|
* Современный мир
|
|
|
|
|
|
|
|
|
|
- Море библиотек. Большие деревья зависимостей.
|
|
|
|
|
: Нам нужен язык, который будет помогать контролировать сложность at large.
|
|
|
|
|
- Архитектура построена вокруг сервисов, которые общаются по сети.
|
|
|
|
|
: Скорее вам придётся писать stateless сервис. Statefull сервисы общаются с базой данных по сети.
|
|
|
|
|
- Многоядерные процессоры даже в телефонах.
|
|
|
|
|
|
|
|
|
|
* Скорость разработки
|
|
|
|
|
|
|
|
|
|
- Компиляция занимает много времени
|
|
|
|
|
- Инструменты замедляются
|
|
|
|
|
- Число зависимостей постоянно растёт
|
|
|
|
|
- Ноутбуки не становятся быстрее
|
|
|
|
|
- Проекты продолжают расти
|
|
|
|
|
|
|
|
|
|
* Цели Go
|
|
|
|
|
|
|
|
|
|
- Эффективность статической типизации. Удобство динамической типизации.
|
|
|
|
|
- Type-safe и memory-safe.
|
|
|
|
|
- Хорошая поддержка многопоточности.
|
|
|
|
|
- Эффективный сборщик мусора, без пауз.
|
|
|
|
|
- Быстрая компиляция.
|
|
|
|
|
- Эффективная работа с большими объемами кода.
|
|
|
|
|
|
|
|
|
|
* Compilation Demo
|
|
|
|
|
|
|
|
|
|
# 1 пакет за 200 ms
|
|
|
|
|
time go build -a -v math
|
|
|
|
|
|
|
|
|
|
# 84 пакета за 7 секунд
|
|
|
|
|
time go build -a -v github.com/golang/protobuf/...
|
|
|
|
|
|
|
|
|
|
.image compiling.png
|
|
|
|
|
|
|
|
|
|
* Принципы дизайна
|
|
|
|
|
|
|
|
|
|
Небольшое число ортогональных фич.
|
|
|
|
|
|
|
|
|
|
Простой синтаксис (понятный для людей *и* машин).
|
|
|
|
|
|
|
|
|
|
Простая система типов. Объектно ориентированный, но без иерархий.
|