Попросили коллег порекомендовать ресурсы — подкасты, ютуб-каналы, книги, блоги и GitHub-репозитории — для изучения языка программирования Go. Делитесь подборкой с друзьями: пригодится и начинающим, и опытным специалистам.
Зачастую достаточно простой документации — она структурная, емкая и понятная. Мы собрали эту подборку, чтобы было, чем разнообразить изучение Go.
Книга «Язык программирования Go»
Этот справочник подходит для действующих разработчиков, новичкам советую изучить другие ресурсы. Также нужно учитывать, что книга вышла в 2016 году, и информация по работе с пакетами возможно устарела. Но с паттернами объектов, структурами и «внутрянкой» Go разобраться помогает.
Авторы, Go-инженер Алан Донован и информатик Брайан Керниган, написали полноценный справочник, подкрепленный интересными темами про устройство языка «изнутри». Среди них — теория тестирования на go-test, параллельные серверы и элементы низкоуровневого программирования с помощью cgo.
Где найти
Книга доступна на сайте издательства. Также ее можно найти на полках российских магазинов.
Блог Дейва Чейни
Если Android-разработчики во время раздумий задают себе вопрос «What would Jake do?», то Go-разработчики должны спрашивать себя, как поступил бы Дейв Чейни.
В своем блоге Дейв рассказывает об особенностях Go — от обработки ошибок до инструментов конкурентного программирования. Особенно интересны рассказы автора о ценностях языка и о том, как им следовать.
Если уже разбираетесь в Go, но вам интересно познакомиться со стилем Дейва, почитайте его статью о SOLID.
Где найти
Все материалы Дейв публикует на своем сайте.
Канал The Art of Development
Видеоролики на канале грамотно «разбиты» по темам — с примерами кода и нюансами работы от опытного специалиста Артура Карапетова. На старте этот ресурс помог мне закрепить знания. Но рекомендую параллельно практиковаться, например, с помощью онлайн-курсов.
На канале есть материалы как для продвинутых, так и для начинающих Go-разработчиков. Вот несколько «универсальных» плейлистов:
- Уроки Golang – Advanced. Продвинутый курс про веб-серверы, REST API, СУБД, джейнерики, чистую архитектуру приложений на Go и другое.
- Разработка системы заметок. Мини-гайд по разработке приложений на базе Python, Go и микросервисной архитектуре. Подходит для разработчиков, которые хотят «покорить» проектирование систем, контейнеры Docker, MongoDB, PostgreSQL и другое.
- Что такое … за 200 секунд. Автор рассказывает «просто о сложном» в формате коротких видеороликов. Есть уже выпуски про Docker, nginx, микросервисы и Apache Kafka.
Теперь в Selectel доступны специальные версии PostgreSQL (с 10 по 14). Они позволяют использовать их как основную базу данных для 1С. Это хорошая альтернатива серверу MSSQL.
Где найти
Видео доступны по ссылке.
Канал Максима Жашкевича
Как и The Art of Development, канал Максима Жашкевича отлично подходит для старта в Go. Мне понравились видео про горутины и context, а также плейлист о реализации REST-сервера.
На канале автора — несколько плейлистов для начинающих и продвинутых разработчиков.
- Разработка & Язык Go. Основы языка в одном видео, работа с интерфейсами, unit-тестирование, горутины, потоки, основы Docker и основы баз данных.
- REST API на Go. Работа с фреймворком Gin Web, общая теория по структуре приложений и взаимодействию с базами данных, знакомство с Docker и другое.
- Telegram Бот на Golang. Архитектура бота и API, обработка ошибок, основы работы с BoltDB и другое.
Кроме видео на технические темы, автор рассказывает, как прокачать свои soft skills для эффективной работы в IT.
Где найти
Видео доступны по ссылке.
Хотите стать частью нашей команды разработчиков?
Следите за актуальными вакансиями на нашем сайте.
Гайд по написанию кода от Uber
Все best practices по написанию программ в одном месте. Удобно, что есть не только примеры «хорошего» кода, но и антипаттерны. Вместе с ними — грамотные объяснения, почему не стоит использовать ряд подходов при проектировании программ.
В комментариях под прошлой подборкой один из читателей отметил, что листинги с кодом в книгах неудобны. Отчасти это правда: если автор не оставляет ссылку на GitHub, желание переписывать примеры пропадает. Но что, если разместить всю теорию с примерами в одном репозитории?
Так и поступили разработчики из Uber: они подготовили гайд по написанию кода и оформили его внутри GitHub-репозитория. Большая часть материалов переведена на русский язык.
Где найти
Репозиторий доступен по ссылке.
Репозиторий go-videos-ru
Чаще всего годный материал на узкие темы — например, о проблемах и компиляторе Go, лайфхаках в разработке с ним — я встречаю на митапах. Люблю послушать коллег из Selectel, разработчиков VK, Ozon и Avito.
Формат митапов хорош тем, что позволяет отвлечься от сухой теории и послушать профессионалов. Иногда они делают доклады на хардкорные темы — например, об устройстве Go «под капотом».
У нас тоже есть свой митап, посвященный Go. Если вам интересно послушать о наболевшем тимлида Go-разработчиков или узнать про проектирование масштабируемых приложений, посмотрите запись прошлогоднего события.
Где найти
Наиболее полный список митапов есть в репозитории go-videos-ru.
Подкаст Go Get Podcast
Познакомился с Go Get Podcast летом этого года. На данный момент доступны всего шесть выпусков, но надеюсь, что скоро появятся новые.
Подкаст вышел в феврале 2022 года. На момент публикации есть шесть выпусков на разные темы — от технических до soft skill-топиков. Но самое главное — гости, которых приглашают спикеры. Среди них — разработчики из Яндекс, VK, Тинькофф и Qredo.
Руководят всей «кухней» Golang-сеньоры в Lamoda Николай Тузов и Дмитрий Матрёничев, и технический директор в Gaijin Глеб Яльчик.
Где найти
Выпуски можно послушать по ссылке.