Программирование на Go с нуля: 9 полезных видеоуроков
Кроссплатформенный, компилируемый и статически типизированный – это все о языке Go. Изучаем программирование на Go по этому курсу.
Ранее мы уже затрагивали блоги, статьи и книги по Go. Поговорим же теперь о видеоуроках с наиболее понятной подачей материала.
Программирование на Go. Введение
В первой вводной лекции автор рассказывает об истории программирования и о необходимости этого языка, а также о типах данных, переменных и условных операторах. Приводятся сравнительные примеры Go и Perl на тему скорости, производительности и удобства использования, т. к. в компании, в которой работает лектор, применяется именно программирование на Go. Очень доступное и понятное объяснение материала, и по традиции, “Hello World”. Как же без него?
https://www.youtube.com/watch?v=9Pk7xAT_aCU
Функции, структуры, интерфейсы
Из этой лекции вы узнаете, что такое функции, какие они бывают, и в чем их особенность работы в Go. Также пойдет разговор о структурах (struct, embeded) и наличии ООП в данном языке. Автор поведает об интерфейсе в Go, его применении и интересной особенности интерфейсов – их именуют с постфиксом -er (Reader, Fixer и т. д.) и применяют Duck typing.
https://www.youtube.com/watch?v=9Ia16QOY8rk
Асинхронная модель
Программирование на Go дает сразу большой профит – этот ЯП асинхронный из коробки. Основой асинхронности является процесс. Зачастую они (процессы) независимы друг от друга и имеют свое адресное пространство. Переменные, методы и данные одного процесса не доступны другому. Лектор затронет многопоточность и параллелизм, коснется Go-рутин и основных примитивов для синхронизации работы внутри языка: каналы, пакет sync, atomic.
https://www.youtube.com/watch?v=kFeM4R5TlCY
Web. Работа с сетью
В этой лекции речь пойдет о работе с сетью. Всем известно, что для связи двух разных процессов через сеть используется сокет и чаще всего протокол TCP. Статья научит: как создавать сетевое соединение в Golang, что нужно делать после установления коннекта, и какие подводные камни. Занятие хорошо подкреплено “расшариванием” экрана и подробными комментариями.
https://www.youtube.com/watch?v=lgh6zic15EA
Работа с СУБД
Видеоурок начинается с принципа работы сессии и cookie, для чего они нужны, и как применение этих технологий влияет на программный продукт, написанный на Go. Далее лектор переходит к непосредственному рассмотрению СУБД. MySQL и PostgreSQL не имеют больших отличий, поэтому, зная одну СУБД, вторую осилить не составит труда. А вот узнать что-то новое о Memcached, Redis, mongoDB и ORM будет интересно даже профессионалу.
https://www.youtube.com/watch?v=iho3_zq4tik
Система тестирования
На этой лекции вы узнаете массу полезной информации о системе тестирования, юнит-тестах и прочих инструментах для проверки своего приложения. Ключевой темой урока будут системы Continuos Integration, выполняющие работы по сборке и тестированию продукта на удаленном сервере. Сложная, но очень полезная тема для больших проектов. Если вы используете популярные GitLab или GitHub, то для тестирования можно применять GitLab CI и Travis CI соответственно.
https://www.youtube.com/watch?v=C9wQIYqWPiA
Reflect or generate
Язык программирования Go строго типизированный, и вы в основном пишете строго типизированный код, привязанный к каким-то структурам или типам. Данный ЯП обладает еще одной интересной способностью – исследовать структуру программы, в основном при помощи собственных типов. Данный процесс называется рефлексией. О ней, ее законах и причинах использования пойдет речь в седьмой секции курса.
https://www.youtube.com/watch?v=uCSMU8xF1dc
Производительность
В современном мире бизнеса все должно работать точно и продуктивно, чтобы можно было максимально быстро получить прибыль. Если ПО работает медленно, то бизнес теряет деньги на обеспечении ненужных вычислительных мощностей. Поэтому приложение должно быть оптимизированным, работать быстро и потреблять мало ресурсов. В этом уроке вы научитесь искать слабые места в софте, исправлять и приводить код к оптимизированному виду.
https://www.youtube.com/watch?v=agntRAtPkK4
Context, unsafe, safe и cgo
Как известно из предыдущих лекций, Golang применяется для сервисов, которые активно используют сетевые запросы. Чтобы работать с сетью, нужно использовать встроенный функционал в стандартную библиотеку. Но существует такое понятие, как контекст – информация, передаваемая во всех запросах при работе с API. Об этой неизведанной области и расскажет вам автор в последней лекции.
https://www.youtube.com/watch?v=LpOioZXgplU