shad-go/lectures/00-intro/lecture.slide

82 lines
2.7 KiB
Text
Raw Normal View History

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
* Принципы дизайна
Небольшое число ортогональных фич.
Простой синтаксис (понятный для людей *и* машин).
Простая система типов. Объектно ориентированный, но без иерархий.