Привет, Хабр! Относительно недавно мы уже публиковали подборку книг по Go для начинающих разработчиков. Теперь пришёл черёд изданий для специалистов с опытом. В этой статье рассказываем о книгах для программистов, у которых уже есть опыт работы с Golang и кто готов двигаться дальше. Книги актуальные, написаны как на русском, так и на английском языке. Как всегда, просьба: если у вас есть собственные предпочтения, расскажите о них в комментариях.
Язык программирования Go
Авторы: Алан Донован, Брайан Керниган
Эта книга есть у многих разработчиков, поскольку её можно назвать классикой. В ней рассказывается о преимуществах Go перед другими языками программирования, раскрываются нюансы разработки на этом языке, приводятся практические примеры. Кроме того, авторы отвечают на самые популярные вопросы, причём делают это неплохо.
Начинается всё с более-менее общих вещей, и дальше авторы двигаются к практическим примерам, раскрывая многие нюансы работы с Go. Если базовых знаний по языку нет, лучше почитать что-то для начинающих, а потом уже приступить к изучению этого издания. Для суперпрофи, вероятно, нового здесь не очень много, но разработчикам с уровнем, близким к среднему, есть с чем ознакомиться.
Книга написана живым языком, большим плюсом является то, что авторы приводят действительно много примеров. Кроме того, они дают задания, которые помогают закрепить полученные ранее знания. Лучше, конечно, ознакомиться с оригиналом, но если знание английского не очень хорошее, то подойдёт и издание на русском.
Go: идиомы и паттерны проектирования
Автор: Джон Боднер
Это практическое руководство, которое будет полезно многим. В нём есть важнейшая информация для разработки на Go. Она помогает начать думать как Go-разработчик, даёт полезную информацию по шаблонам проектирования, которые используют многие программисты. Кроме того, в ней рассказывается о дженериках.
Есть нюансы работы в Go, включая дизайнерские решения, рассказывается о том, как правильно настроить среду разработки, когда стоит использовать рефлексию, cgo и какие функции Go позволяют ему работать эффективнее других языков.
Книга может пригодиться и новичку, но более всего она полезна для программиста с опытом. Дело в том, что автор рассказывает об «истоках» Golang, помогает осознать преимущества разработки на Go. В целом книга даёт возможность синхронизировать уже накопленные знания с основными концепциями работы в Go, точнее, с теми нюансами, которые могли остаться закрытыми для новичка.
Modern Web Development with Go
Автор: Душан Стоянович
Книга на английском языке, она даёт возможность научиться создавать приложения веб-сервера с использованием Golang. Книга новая, выпущена в 2023 году, поэтому в ней есть много интересных нюансов, которые имеют отношение к современным тенденциям разработки веб-приложений. Автор рассказывает, как спроектировать, создать и протестировать приложение, учитывая важные моменты из сферы информационной безопасности.
После прочтения книги можно начать создавать серверные проекты либо же осуществить работу над уже готовыми проектами, понимая, что и как устроено. Как и положено хорошей книге по разработке, в этом издании очень много практических примеров. При этом они не отвлечённые, а непосредственно относятся к практике современного программирования.
В каждой главе есть примеры и сценарии использования определённых технологий. Это даёт читателю возможность повторить в собственных проектах то, что рассказывается и показывается в книге. Также автор раскрывает важную информацию об инструментах и библиотеках, которые используются в веб-разработке на Go. Особенное внимание автор уделил вопросам параллелизма и масштабируемости. Так, в книге показано, как на практике применить эти функции, для того чтобы создать хорошо работающее масштабируемое приложение.
К сожалению, перевода на русский нет, есть только английская версия книги.
Golang для профи
Автор: Михалис Цукалос
В книге множество примеров, есть шаблоны и, конечно, объяснения для всего этого — автор не бросит читателя на произвол судьбы. Цукалос раскрывает нюансы типов и структур, пакетов, параллельной работы и т. п. В конце каждой главы есть упражнения, которые позволяют закрепить полученные знания на практике.
Среди прочих важных нюансов стоит упомянуть вопросы использования Go в производственных системах, рассказ о том, как работают внутренние механизмы языка, приведены примеры создания и оптимизации сетевого кода для серверных и клиентских приложений.
Также автор рассказывает о взаимодействии с другими системами посредством WebAssembly, JSON и gRPC. А ещё о разработке систем машинного обучения на этом языке. Причём актуальных систем — как простых, так и достаточно сложных. Положительный момент в том, что Цукалос добавляет советы работы и с Docker, Git, UNIX.
Black Hat Go: Программирование для хакеров и пентестеров
Автор: Том Стил
Ещё одна книга на русском языке, которую стоит использовать в качестве настольной специалистам по кибербезопасности. Она позволяет разобраться в вопросах тестирования систем, разработке важных инструментов и методов противодействия злоумышленникам.
Есть, кстати, и рассказ о синтаксисе и философии языка — на случай, если вам нужно обновить что-то в памяти. После этого автор приступает к демонстрации практических примеров использования Go для работы с протоколами HTTP, DNS и SMB. Естественно, книга полностью соответствует названию, поскольку в ней разбираются задачи противодействия краже данных, сниффингу, также рассматривается работа с эксплойтами.
Ещё рассказывается о криптографии, стеганографии и прочих важных темах, конечно, в русле всё того же языка Go. Книга будет крайне полезной для разработчиков, которые интересуются вопросами информационной безопасности. Если вы являетесь специалистом по инфобезу с опытом разработки, то с «Black Hat Go: программирование для хакеров и пентестеров» обязательно стоит ознакомиться.
Let’s Go Further
Автор: Алекс Эдвардс
Ещё одна книга на английском языке, которую нельзя пропустить. Дело в том, что она идеально подходит для дальнейшего изучения Golang, после того как вы освоили основы. Автор помогает узнать гораздо больше, чем вы знали раньше, знакомит с продвинутыми паттернами для разработки и развёртывания API и веб-приложений.
Автор раскрывает крайне важные темы, включая отправку и получение JSON-данных. Рассказывает он и о практиках современных разработчиков, об управлении фоновыми задачами, а также о том, как создать отчёты по метрикам.
Всё, что изложено в этой книге, пригодится в ежедневной работе, так что не пропустите это издание.
Комментарии (2)
MaksIII
19.09.2023 00:50Go: идиомы и паттерны проектирования читал, хорошая. В принципе и с нуля зайдет, слог там легкий.
mrobespierre
Первая чертовски хороша для начинающих, но "meh" для продолжающих, остальные просто не нужны (у меня есть все кроме последней, если что). Вместо них лучше читать "Облачный Go" и "Concurrency in Go".