Go на практике. 2 изд

Оглавление⌄
От издательства....24 О научном редакторе русскоязычного издания....24 Иллюстрация на обложке....23 Об авторах....22 Благодарности....16 Предисловие....14 О книге....18 Кому стоит прочитать эту книгу....18 Структура издания....18 О коде....20 Дополнительные онлайн-ресурсы....21 Часть I. Основы языка Go....25 Глава 1. Начало работы с Go....26 1.1. Язык Go....26 1.2. Важные особенности Go....29 1.2.1. Возврат нескольких значений....29 1.2.2. Современная стандартная библиотека....31 1.2.3. Реализация конкурентности с помощью горутин и каналов....34 1.2.4. Инструментарий Go....38 1.3. Место Go среди других языков программирования....45 1.3.1. C и Go....45 1.3.2. Rust, Zig, Nim и Go....47 1.3.3. Java и Go....47 1.3.4. Python, PHP, JavaScript и Go....49 1.4. Первые шаги в работе с Go....51 1.4.1. Установка Go....51 1.4.2. Работа с Git и системами контроля версий....51 1.4.3. Изучение рабочего пространства....52 1.4.4. Переменные окружения....52 1.4.5. Использование ИИ-инструментов вместе с Go....52 1.5. Привет, Go....53 Резюме....55 Глава 2. Создание консольного приложения....56 2.1. Создание CLI-приложений на языке Go....57 2.1.1. Флаги командной строки....57 2.1.2. Определение допустимых значений с помощью перечислений....60 2.1.3. Срезы, массивы и словари....62 2.1.4. Фреймворки для создания консольных приложений....63 2.2. Работа с конфигурацией....69 2.2.1. Использование конфигурационных файлов....70 2.2.2. Передача конфигурации через переменные окружения....75 2.3. Работа с веб-серверами в реальных условиях....77 2.3.1. Запуск и завершение работы сервера....77 2.3.2. Корректное завершение работы с использованием сигналов ОС....78 2.3.3. Маршрутизация веб-запросов....81 Резюме....91 Глава 3. Структуры, интерфейсы и обобщения....92 3.1. Представление данных с помощью пользовательских структур....93 3.1.1. Создание пользовательских структур данных....93 3.1.2. Функции внутри структур....95 3.1.3. Анонимные идентификаторы....98 3.1.4. Структурные теги....98 3.1.5. Преобразование данных в формат JSON....100 3.2. Сравнение Go с функциональными и объектно-ориентированными языками программирования....101 3.3. Расширение функциональности с помощью интерфейсов....106 3.4. Упрощение кода с помощью обобщений....109 3.4.1. Использование функций с обобщениями....112 3.4.2. Использование ограничений и аппроксимации типов....114 Резюме....116 Часть II. Создание надежных приложений....117 Глава 4. Обработка ошибок и паник....118 4.1. Обработка ошибок....119 4.1.1. Рекомендации по работе со значением nil....122 4.1.2. Пользовательские типы ошибок....125 4.1.3. Переменные ошибок....126 4.2. Оборачивание ошибок....129 4.3. Механизм паники....130 4.3.1. Отличие паники от ошибки....130 4.3.2. Обработка паник....132 4.3.3. Восстановление после паники....134 4.3.4. Перехват паники с помощью оператора defer....135 4.3.5. Обработка паник, возникших в горутинах....140 Резюме....148 Глава 5. Конкурентность в Go....149 5.1. Модель конкурентности в Go....150 5.2. Работа с горутинами....151 5.2.1. Ожидание завершения горутин....152 5.2.2. Блокировка с помощью мьютекса....157 5.3. Работа с каналами....162 5.3.1. Использование каналов....163 5.3.2. Закрытие каналов....166 5.3.3. Блокировка с помощью буферизованных каналов....171 Резюме....174 Глава 6. Форматирование, тестирование, отладка и оценка производительности....175 6.1. Поддержание чистоты кода и структуры проекта....176 6.1.1. Форматирование кода....176 6.1.2. Выявление типичных ошибок с помощью go vet....179 6.1.3. Обновление зависимостей....182 6.2. Логирование....182 6.2.1. Отправка логов в разные каналы вывода....186 6.2.2. Структурированное логирование....188 6.2.3. Получение доступа к трассировке стека и ее захват....190 6.3. Модульное тестирование в Go....193 6.3.1. Создание тестового набора с использованием табличного подхода....193 6.3.2. Фаззинг-тестирование....197 6.3.3. Именование тестов....202 6.3.4. Проверка тестового покрытия с помощью go cover....203 6.3.5. Подождите, а где отладчик?....205 6.4. Оценка и оптимизация производительности....205 Резюме....208 Глава 7. Доступ к файлам и основы сетевого взаимодействия....209 7.1. Работа с файлами....210 7.1.1. Чтение файлов....210 7.1.2. Запись в файлы....214 7.2. Организация сетевого взаимодействия через TCP....216 7.2.1. Логирование в сетевой ресурс....216 7.2.2. Обратное давление при сетевом логировании....218 7.3. Основы сетевого взаимодействия по UDP....220 7.4. Веб-сокеты и события, отправляемые сервером....222 7.4.1. Реализация онлайн-чата с использованием веб-сокетов....223 7.4.2. События, отправляемые сервером....229 Резюме....234 Часть III. Создание полноценных веб-приложений....235 Глава 8. Создание HTTP-сервера....236 8.1. Маршрутизация запросов и обработка данных....237 8.1.1. Маршрутизация на основе HTTP-методов....238 8.1.2. Расширение контроля над сервером....243 8.2. Маршрутизация на основе значений, извлеченных из пути запроса....246 8.2.1. Обработка данных POST-запросов и параметров запроса....249 8.2.2. Обработка данных форм....251 8.2.3. Чтение и запись cookie и других заголовков....254 8.2.4. Обработка веб-токенов JSON....257 8.3. Генерация ошибок и базовая аутентификация....259 Резюме....261 Глава 9. HTML-шаблоны и шаблоны электронных писем....262 9.1. Работа с HTML-шаблонами....263 9.1.1. Обзор стандартного пакета для работы с HTML....263 9.1.2. Добавление функциональности в шаблоны....268 9.1.3. Ограничение парсинга шаблонов....271 9.1.4. Когда выполнение шаблона завершается с ошибкой....272 9.1.5. Комбинирование шаблонов....275 9.2. Использование шаблонов для электронных писем....285 Резюме....287 Глава 10. Отправка и получение данных....288 10.1. Раздача статического содержимого....289 10.1.1. Раздача подкаталогов....291 10.1.2. Использование файлового сервера с пользовательскими страницами ошибок....292 10.1.3. Встраивание файлов в исполняемый файл....294 10.1.4. Раздача содержимого из альтернативного местоположения....296 10.2. Продвинутая обработка форм....298 10.2.1. Обработка запросов с данными формы....299 10.2.2. Обращение к нескольким значениям одного поля формы....300 10.2.3. Работа с файлами и отправка составного содержимого....301 10.2.4. Загрузка нескольких файлов....303 10.2.5. Проверка допустимости типа загружаемого файла....305 10.2.6. Инкрементное сохранение загружаемого файла....307 Резюме....311 Глава 11. Работа с внешними сервисами....312 11.1. Использование REST API в качестве полнофункционального клиента....313 11.1.1. Использование HTTP-клиента....313 11.1.2. Обработка ошибок....315 11.2. Обработка и передача ошибок по HTTP....319 11.2.1. Создание пользовательских ошибок....321 11.2.2. Обработка пользовательских ошибок....323 11.3. Парсинг и преобразование данных JSON....325 11.4. Версионирование REST API....329 11.4.1. Версия API в URL-адресе....329 11.4.2. Версия API в типе содержимого....331 11.5. Работа с протоколом gRPC....333 Резюме....338 Часть IV. Go в облаке, микросервисы и другие специализированные темы....339 Глава 12. Облачные приложения и взаимодействие между сервисами....340 12.1. Основы облачных вычислений....341 12.1.1. Модели облачных вычислений....341 12.1.2. Контейнеры и облачно-ориентированные приложения....343 12.2. Микросервисы и обеспечение их высокой доступности....346 12.3. Взаимодействие между сервисами....349 12.3.1. Ускорение REST-взаимодействия....349 12.4. Запуск приложений на облачных серверах....357 12.4.1. Определение среды во время выполнения....358 12.4.2. Сборка приложения для облачной среды....361 12.5. Мониторинг среды выполнения....364 Резюме....366 Глава 13. Рефлексия, генерация кода и продвинутые возможности Go....367 13.1. Три составляющие системы рефлексии....368 13.1.1. Переключение логики на основе типа и вида....369 13.1.2. Проверка реализации интерфейса....373 13.1.3 Анализ полей структуры....377 13.2. Структуры, теги и аннотации....381 13.2.1. Аннотирование структур....381 13.2.2. Использование тегов....383 13.2.3. Обработка тегов в структуре....384 13.3. Генерация кода средствами самого Go....390 13.4. Взаимодействие с кодом на других языках....396 Резюме....398
Описание
Ниже — практический обзор по теме «готовые».
Чтобы создавать надежные и готовые к использованию Go-приложения, вам нужно научиться реализовывать конкурентность, налаживать сетевые взаимодействия, получать доступ к файлам, использовать такие нативные протоколы передачи данных, как gRPC и TCP/REST, а также разбираться во множестве практических нюансов. Итак, вы освоили азы Go, что дальше? В этой книге приводятся готовые решения, которые можно незамедлительно применить в повседневной работе.
Издание охватывает новейшие возможности языка Go, включая дженерики, обработку паник и ошибок, современные модели конкурентности, а также такие продвинутые темы, как рефлексия и генерация кода. Здесь вы найдете описание десятков техник разработки и сопровождения Go-приложений в формате «проблема — решение — обсуждение». Кроме того, авторы дают полезные советы по интеграции в ваш процесс разработки ИИ-инструментов.
5 причин купить книгу:Описание десятков практических техник разработки и сопровождения Go-приложений в формате "проблема — решение — обсуждение".В книге приводятся готовые решения, которые можно незамедлительно применить в повседневной работе.Реализация конкурентности с помощью горутин и каналов.Веб-серверы и микросервисы.Логирование, кэширование и доступ к данным.
Если материал оказался полезен — сохраните страницу.
Поделиться
Частые вопросы
Можно ли скачать «Go на практике. 2 изд» бесплатно?
Да, «Go на практике. 2 изд» доступна для бесплатного скачивания на нашем сайте в формате PDF. Ссылка на файл находится на этой странице.
В каком формате и какого размера файл?
Книга предоставляется в формате PDF.
Кто автор и когда вышла книга?
автор — Батчер Мэтт , Козыра Натан , Фарина Мэтт, издательство Питер, год выпуска 2026, 400 страниц.
О чём книга «Go на практике. 2 изд»?
Итак, вы освоили азы Go, что дальше?