First part of lecture 0.

This commit is contained in:
Fedor Korotkiy 2020-02-09 21:14:30 +03:00
parent 48455f1b45
commit 1a6f837afe
3 changed files with 76 additions and 5 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View file

@ -0,0 +1,7 @@
package main
import "fmt"
func main() {
fmt.Println("Hello, 世界")
}

View file

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