Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Введение в язык программирования Go

338 views

Published on

Устройство и история Go, примеры использования, ссылки на полезные ресурсы.
Весь Go-код здесь: https://github.com/rumyantseva/go-intro

Published in: Engineering
  • Be the first to comment

Введение в язык программирования Go

  1. 1. Язык программирования Go 05.02.2017
  2. 2. Важное объявление :) Практическая часть занятия состоится в воскресенье
 12 февраля в 12.00 в бизнес-инкубаторе Технопарка,
 ул. Николаева, 11. По желанию можно принести с собой ноутбук с установленным Go и прямо на воркшопе попробовать себя в разработке веб-сервисов. Любые вопросы по воркшопу можно адресовать в Sunday Go School: https://vk.com/sunday_go_school или по телефону +7 913 768 4381 (Елена).
  3. 3. 3 golangshow.com openprovider.nl Елена Граховац twitter.com/webdeva github.com/rumyantseva vk.com/grahovac elena@grahovac.me +7 913 768 43 81 podcast co-host backend web developer
  4. 4. План 4 - Что представляет собой Go - Для чего можно использовать Go - История появления - С чего начать новичку - Ресурсы для “продвинутых” - Сообщество - Практика: пишем веб-сервис - Практика: упаковываем сервис в докер- контейнер
  5. 5. Go 5 golang.org - компилируемый - многопоточный - статическая типизация - открытый исходный код - простой и понятный синтаксис - отлично подходит для облачных веб- сервисов - сильное и дружелюбное коммьюнити
  6. 6. Для чего подходит Go 6 - Инструменты и системы, позволяющие сделать разработку и эксплуатацию сервисов и приложений более эффективной Инфраструктура
  7. 7. Для чего подходит Go 7 - Отлично вписывается в REST-подход - Идеально для реализации серверной части API - Быстрая и эффективная реализация микросервисов Web Service Backend
  8. 8. Для чего подходит Go 8 - Бинарный файл, содержащий в себе все необходимые библиотеки - Кросс-компиляция под популярные платформы Инструменты командной строки
 и Интернет вещей
  9. 9. Для чего подходит Go 9 - Data Science - Мобильные платформы - … Другие эксперименты
  10. 10. Кто пишет на Go 10 https://github.com/golang/go/wiki/GoUsers
  11. 11. История 11 - Google - начало работы: сентябрь 2007 - первый релиз: ноябрь 2009 - Робер Грисемер (Robert Griesemer) - Роб Пайк (Rob Pike) - Кен Томпсон (Ken Thompson)
  12. 12. Текущее состояние 12 - Стабильная версия: Go 1.7.5 - Готовится к релизу в этом месяце: Go 1.8
  13. 13. Release parties 13 https://github.com/
 golang/go/wiki/
 Go-1.8-Release-Party
  14. 14. С чего начать новичку? 14 - Официальная документация - Вики на Github’е - Песочница - Тур в Go - Блог Гоферакадемии
  15. 15. Сообщество 15 - Международный форум - Международный Slack - Русскоязычный Slack - Go Bridge - Women Who Go
  16. 16. Встречи в Новосибирске 16 telegram.me/GDGNsk meetup.com/GolangNSK
  17. 17. Больше ресурсов! 17 - Golang News - Golang Weekly - Go Time - Golang Show - 4gophers.ru
  18. 18. Практика: пишем сервер 18 package main import ( "fmt" "log" "net/http" ) func main() { http.HandleFunc("/", handler) // each request calls handler log.Fatal(http.ListenAndServe("localhost:8000", nil)) } // handler echoes the Path component of the requested URL. func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "URL.Path = %qn", r.URL.Path) } Из книги «The Go Programming Language», https://github.com/adonovan/gopl.io/blob/master/ch1/server1/main.go
  19. 19. Практика: пишем сервер 19 - Запускаем приложение: 
 go run server.go - Делаем запрос curl’ом: 
 curl -X GET http://127.0.0.1:8000
  20. 20. Практика: добавляем роутер 20 import (
 "fmt"
 
 "net/http"
 "github.com/julienschmidt/httprouter"
 )
 
 func main() {
 router := httprouter.New()
 
 router.POST("/api/v1/users", createUser)
 router.GET("/api/v1/users/:id", findUserByID)
 
 http.ListenAndServe(":8000", router)
 } …
  21. 21. Практика: идем дальше 21 - Выносим хэндлеры в отдельный пакет - Добавляем немного логики
  22. 22. Кросс-компиляция 22 - Список поддерживаемых ОС и архитектур env GOOS=linux GOARCH=amd64 go build server.go
  23. 23. Слайды: https://goo.gl/Ld687V Код: https://goo.gl/KKTXYa Вопросы: elena@grahovac.me Этот доклад и примеры кода Елена Граховац 05.02.2017

×