First part of lecture 0.
This commit is contained in:
parent
48455f1b45
commit
1a6f837afe
3 changed files with 76 additions and 5 deletions
BIN
lectures/00-intro/compiling.png
Normal file
BIN
lectures/00-intro/compiling.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 28 KiB |
7
lectures/00-intro/helloworld.go
Normal file
7
lectures/00-intro/helloworld.go
Normal file
|
@ -0,0 +1,7 @@
|
|||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
func main() {
|
||||
fmt.Println("Hello, 世界")
|
||||
}
|
|
@ -7,10 +7,74 @@
|
|||
|
||||
- Вы пришли на курс по Go
|
||||
|
||||
.image gopher.png
|
||||
.image gopher.png _ 400
|
||||
|
||||
* Оргвопросы
|
||||
* Ссылки
|
||||
|
||||
- Чат курса в телеграме
|
||||
- Репозиторий с материалами
|
||||
- 12+ лекций
|
||||
.link https://wiki.yandex.ru/shad/groups/2018/Semester4/GoLang/ Вики страница
|
||||
.link https://gitlab.com/slon/shad-go Репозиторий
|
||||
.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
|
||||
|
||||
* Принципы дизайна
|
||||
|
||||
Небольшое число ортогональных фич.
|
||||
|
||||
Простой синтаксис (понятный для людей *и* машин).
|
||||
|
||||
Простая система типов. Объектно ориентированный, но без иерархий.
|
||||
|
|
Loading…
Reference in a new issue