2.53M
Category: programmingprogramming

Golang разработчик. Основные концепции языка Go

1.

Golang разработчик
Основные концепции
языка Go
Спикер: Виталий Лихачев

2.

Golang разработчик
Значимые отличия
● C-подобный
● Строгий компилятор
● Конкурентность - часть языка
func main() {
c := make(chan int, 1)
c <- 100500
}

3.

Golang разработчик
Обманчивая простота
var m map[string]int
m[“key”] = 100500
panic: assignment to entry in nil map

4.

Golang разработчик
Структурная типизация
type Point struct {
Lat float64
Lng float64
}
func (l location) Distance(p Point) float64 {
return 123.456
}
ООП подобная, но со своими особенностями

5.

Golang разработчик
“Утиная” типизация
type Metrics interface {
Increment(key string, value int)
}
type PrometheusClient struct {}
type StatsdClient struct {}
func (p PrometheusClient) Increment(key string, value int) {}
func (s StatsdClient) Increment(key string, value int) {}
Только для компилятора

6.

Golang разработчик
Батарейки в комплекте
http
db/sql
encoding/json
crypto/aes
html/template
unit testing
etc.
Слоган python, но отчасти подходит и для golang.
Стандартная библиотека содержит неплохой набор функционала, но
его для больших проектов недостаточно.

7.

Большие фреймворки не в почете
Golang разработчик
● php: laravel, symfony
● python: django
● java: spring
Предпочитаем простоту реализации, а не магию, скрытую внутри фреймворков.
Относительно новый язык.

8.

Golang разработчик
Спасибо
за внимание!
English     Русский Rules