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

Concurrency in Go: Tools and Techniques for Developers. Katherine Cox-Buday

Concurrency in Go: Tools and Techniques for Developers

Katherine Cox-Buday
2017238 ст.
Английский Для продвинутых Golang
Подробнее

Параллелизм может быть достаточно сложным для правильного понимания, однако Concurrency in Go – книга, демонстрирующая, как язык программирования с открытым исходным кодом Go упрощает работу с параллелизмом и даже делает его понятным и легким. Здесь рассмотрены лучшие практики и паттерны, которые помогут вам интегрировать параллелизм в свои системы.

Автор шаг за шагом объясняет весь процесс, чтобы было понятно, как Go моделирует параллелизм, какие проблемы вытекают из этой модели и как можно составлять примитивы внутри этой модели для решения проблем. Книга позволит овладеть необходимыми навыками и инструментами, чтобы уверенно писать и реализовывать параллельные системы любого размера. Также освещается как Go решает основные проблемы, усложняющие правильную реализацию параллелизма, знакомит с основными отличиями между параллелизмом и конкурентностью, демонстрирует синтаксис примитивов синхронизации памяти в Go. Вы сможете создать паттерны из этих примитивов для написания поддерживаемого параллельного кода, сформируете эти паттерны в виде набора практик, позволяющих вам писать большие распределенные системы, которые масштабируются, а также узнаете о горутинах и о том, как рантайм Go объединяет все это вместе.

Об авторе

Кэтрин Кокс-Будей (Katherine Cox-Buday) – компьютерный специалист, сейчас работает в DigitalOcean.

Learning Go: An Idiomatic Approach to Real-World Go Programming 2nd Edition. Jon Bodner

Learning Go: An Idiomatic Approach to Real-World Go Programming 2nd Edition

Jon Bodner
2024400 ст.
Английский Для начинающих Golang
Подробнее

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 Programming Language. Alan Donovan, Brian Kernighan

Язык программирования Go

Алан А. А. Донован, Брайан У. Керниган
2015400 ст.
АнглийскийРусский Для начинающихДля продвинутых Golang
Подробнее

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, чтобы не пропустить обзор интересных книг.