Лучшие книги по Go

Concurrency in Go: Tools and Techniques for Developers
Параллелизм может быть достаточно сложным для правильного понимания, однако Concurrency in Go – книга, демонстрирующая, как язык программирования с открытым исходным кодом Go упрощает работу с параллелизмом и даже делает его понятным и легким. Здесь рассмотрены лучшие практики и паттерны, которые помогут вам интегрировать параллелизм в свои системы.
Автор шаг за шагом объясняет весь процесс, чтобы было понятно, как Go моделирует параллелизм, какие проблемы вытекают из этой модели и как можно составлять примитивы внутри этой модели для решения проблем. Книга позволит овладеть необходимыми навыками и инструментами, чтобы уверенно писать и реализовывать параллельные системы любого размера. Также освещается как Go решает основные проблемы, усложняющие правильную реализацию параллелизма, знакомит с основными отличиями между параллелизмом и конкурентностью, демонстрирует синтаксис примитивов синхронизации памяти в Go. Вы сможете создать паттерны из этих примитивов для написания поддерживаемого параллельного кода, сформируете эти паттерны в виде набора практик, позволяющих вам писать большие распределенные системы, которые масштабируются, а также узнаете о горутинах и о том, как рантайм Go объединяет все это вместе.
Об авторе
Кэтрин Кокс-Будей (Katherine Cox-Buday) – компьютерный специалист, сейчас работает в DigitalOcean.

Learning Go: An Idiomatic Approach to Real-World Go Programming 2nd Edition
Learning Go: An Idiomatic Approach to Real-World Go Programming – практическое руководство, которое поможет программистам научиться писать четкий и идиоматический код на языке Go, а не воспроизводить шаблоны других языков, не имеющих смысла в контексте Go. Эта книга научит вас мыслить как разработчик Go, независимо от вашего опыта. Автор представляет паттерны проектирования Go и исследует рациональность их использования. Второе издание также раскрывает тему дженериков и их специфичности в Go.
Прочитав книгу, вы научитесь писать код и создавать проекты на языке Go, настраивать среду разработки Go для себя или команды, когда и как использовать reflection, unsafe и cgo, инструменты Go для улучшения производительности, оптимизации использования памяти и уменьшения сбора мусора (GC), узнаете эффективные возможности языка и те, которые следует использовать очень осторожно или избегать, а также научитесь использовать расширенные инструменты разработки Go.
Об авторе
Джон Боднер (Jon Bodner) был инженером-программистом, ведущим разработчиком и архитектором более 20 лет. В то время он работал над программным обеспечением во многих областях, включая образование, финансы, коммерцию, здравоохранение, право, правительство и инфраструктуру Интернета. Сейчас он штатный инженер в Datadog. Джон часто выступает на конференциях Go, а его публикации в блоге о Go и разработке программного обеспечения прочли более 150 000 человек. Он является создателем библиотеки доступа к данным Proteus и соразработчиком check-out, ответвлением проекта LGTM.

Язык программирования Go
Go Programming Language – авторитетный источник для написания четкого и идиоматического кода на языке Go, который подойдет для любого программиста. Независимо от того, вам больше нравится JavaScript, Ruby, Python, Java или C++, эта книга будет понятна, поскольку не требует предварительного знания Go или опыта работы с любым конкретным языком.
В первых главах рассматриваются основные понятия Go, такие как аргументы командной строки, работа с GIF-изображениями, URL-адресами, разработка веб-серверов и т.д. Простые примеры включают в себя основные структурные элементы программ Go: синтаксис, поток управления, типы данных и организацию программы в пакеты, файлы и функции, не отвлекаясь на сложные алгоритмы или структуры данных. Позже подробнее разъясняется механизм пакетов и то, как создавать, тестировать и поддерживать проекты с помощью инструмента go. Разделы о методах и интерфейсах знакомят с нетрадиционным подходом Go к объектно-ориентированному программированию, объясняют ключевые принципы инкапсуляции, композиции и заменимости на реалистичных примерах. Следующие разделы о параллелизме, охватывающие основные механизмы goroutines и каналов, иллюстрируют стиль, известный как передача последовательных процессов, которыми известен Go и традиционные аспекты параллельности с общими переменными. Также читатель сможет ознакомиться с искусством метапрограммирования с помощью рефлексии, как использовать пакет unsafe, чтобы выйти за пределы системы типов в особых ситуациях, и как использовать инструмент cgo для создания привязок для библиотек C.
В книге представлены сотни интересных и практичных примеров хорошо написанного кода, которые помогут сразу начать программировать на Go и постепенно переходить к более сложным темам. Исходный код свободно доступен для загрузки с gopl.io, и его можно удобно получить, создать и установить с помощью команды go get.
Об авторах
Алан А. А. Донован (Alan Donovan) является членом команды разработчиков языка Go в Google в Нью-Йорке. Он получил научную степень в области информатики в Кембридже и МТИ, и занимается программированием с 1996 года. Начиная с 2005 года он работает в Google над проектами в области инфраструктуры и был одним из разработчиков патентованной системы построения Blaze. Им создано множество библиотек и инструментов для статического анализа программ на языке Go, включая oracle, godoc -analysis, eg и gorename.
Брайан У. Керниган (Brian Kernighan) – профессор факультета информатики в Принстонском Университете. С 1969 по 2000 он работал в опытном центре в Bell Labs, где занимался языками и инструментами для Unix. Он является соавтором ряда книг, включая Язык программирования C, 2-е издание и Практика программирования.
Читайте нас в Telegram, чтобы не пропустить обзор интересных книг.






