Введение Лекция 1 Фёдор Короткий * Добро пожаловать - Вы пришли на курс по Go .image gopher.png _ 400 * Ссылки .link https://wiki.yandex.ru/shad/groups/2018/Semester4/GoLang/ Вики страница .link https://gitlab.com/slon/shad-go Репозиторий .link https://t.me/joinchat/BjrYSxdPJGtJdd1pae08Zg Чат курса в телеграме [[https://p.go.manytask.org]] - эти слайды. * Что нас ждёт? - 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 * Принципы дизайна Небольшое число ортогональных фич. Простой синтаксис (понятный для людей *и* машин). Простая система типов. Объектно ориентированный, но без иерархий.