Программирование на Go с нуля: 9 полезных видеоуроков

0
4632

Кроссплатформенный, компилируемый и статически типизированный – это все о языке Go. Изучаем программирование на Go по этому курсу.

Программирование на Go. Введение

В первой вводной лекции автор рассказывает об истории программирования и о необходимости этого языка, а также о типах данных, переменных и условных операторах. Приводятся сравнительные примеры Go и Perl на тему скорости, производительности и удобства использования, т. к. в компании, в которой работает лектор, применяется именно программирование на Go. Очень доступное и понятное объяснение материала, и по традиции, “Hello World”. Как же без него?

Функции, структуры, интерфейсы

Из этой лекции вы узнаете, что такое функции, какие они бывают, и в чем их особенность работы в Go. Также пойдет разговор о структурах (struct, embeded) и наличии ООП в данном языке. Автор поведает об интерфейсе в Go, его применении и интересной особенности интерфейсов – их именуют с постфиксом -er (Reader, Fixer и т. д.) и применяют Duck typing.

Асинхронная модель

Программирование на Go дает сразу большой профит – этот ЯП асинхронный из коробки. Основой асинхронности является процесс. Зачастую они (процессы) независимы друг от друга и имеют свое адресное пространство. Переменные, методы и данные одного процесса не доступны другому. Лектор затронет многопоточность и параллелизм, коснется Go-рутин и основных примитивов для синхронизации работы внутри языка: каналы, пакет sync, atomic.

Web. Работа с сетью

В этой лекции речь пойдет о работе с сетью. Всем известно, что для связи двух разных процессов через сеть используется сокет и чаще всего протокол TCP. Статья научит: как создавать сетевое соединение в Golang, что нужно делать после установления коннекта, и какие подводные камни. Занятие хорошо подкреплено “расшариванием” экрана и подробными комментариями.

Работа с СУБД

Видеоурок начинается с принципа работы сессии и cookie, для чего они нужны, и как применение этих технологий влияет на программный продукт, написанный на Go. Далее лектор переходит к непосредственному рассмотрению СУБД. MySQL и PostgreSQL не имеют больших отличий, поэтому, зная одну СУБД, вторую осилить не составит труда. А вот узнать что-то новое о Memcached, Redis, mongoDB и ORM будет интересно даже профессионалу.

Система тестирования

На этой лекции вы узнаете массу полезной информации о системе тестирования, юнит-тестах и прочих инструментах для проверки своего приложения. Ключевой темой урока будут системы Continuos Integration, выполняющие работы по сборке и тестированию продукта на удаленном сервере. Сложная, но очень полезная тема для больших проектов.  Если вы используете популярные GitLab или GitHub, то для тестирования можно применять GitLab CI и Travis CI соответственно.

Reflect or generate

Go – это строго типизированный язык, и вы в основном пишете строго типизированный код, привязанный к каким-то структурам или типам. Данный ЯП обладает еще одной интересной способностью – исследовать структуру программы, в основном при помощи собственных типов. Данный процесс называется рефлексией. О ней, ее законах и причинах использования пойдет речь в седьмой секции курса.

Производительность

В современном мире бизнеса все должно работать точно и продуктивно, чтобы можно было максимально быстро получить прибыль. Если ПО работает медленно, то бизнес теряет деньги на обеспечении ненужных вычислительных мощностей. Поэтому приложение должно быть оптимизированным, работать быстро и потреблять мало ресурсов. В этом уроке вы научитесь искать слабые места в софте, исправлять и приводить код к оптимизированному виду.

Context, unsafe, safe и cgo

Как известно из предыдущих лекций, Go применяется для сервисов, которые активно используют сетевые запросы. Чтобы работать с сетью, нужно использовать встроенный функционал в стандартную библиотеку. Но существует такое понятие, как контекст – информация, передаваемая во всех запросах при работе с API. Об этой неизведанной области и расскажет вам автор в последней лекции.

Другие материалы по теме:

Ищете с чего начать?

Подпишитесь на нашу рассылку, чтобы получать больше интересных материалов:

И не беспокойтесь, мы тоже не любим спам. Отписаться можно в любое время.




Оставьте комментарий