Go – превосходный системный язык. Созданный для удобной разработки современных приложений с параллельной обработкой, Go предоставляет встроенный набор инструментов для быстрого создания облачных, системных и веб-приложений. Знакомые с такими языками, как Java или C#, быстро освоят Go – достаточно лишь немного попрактиковаться, чтобы научиться писать профессиональный код.
Книга содержит решения десятков типовых задач в ключевых областях. Следуя стилю сборника рецептов – проблема/решение/обсуждение, – это практическое руководство опирается на основополагающие концепции языка Go и знакомит с конкретными приемами использования Go в облаке, тестирования и отладки, маршрутизации, а также создания веб-служб, сетевых и многих других приложений.
Издание адресовано опытным разработчикам, уже начавшим изучать язык Go и желающим научиться эффективно использовать его в своей профессиональной деятельности.
Предисловие 9
Введение 11
Благодарности 12
О книге 15
Об авторах 17
Об изображении на обложке 18
Часть I. Основные понятия и принципы 19
Глава 1. Введение в язык Go 20
1.1. Что представляет собой язык Go? 21
1.2. Примечательные особенности языка Go 23
1.2.1. Возврат нескольких значений 23
1.2.2. Современная стандартная библиотека 25
1.2.3. Параллельная обработка с помощью сопрограмм и каналов 28
1.2.4. Go – больше, чем язык 32
1.3. Место языка Go среди других языков программирования 38
1.3.1. C и Go 38
1.3.2. Java и Go 40
1.3.3. Python, PHP и Go 41
1.3.4. javascript, Node.js и Go 43
1.4. Подготовка и запуск программы на языке Go 45
1.4.1. Установка Go 45
1.4.2. Работа с Git, Mercurial и другими системами управления версиями 46
1.4.3. Знакомство с рабочей областью 46
1.4.4. Работа с переменными среды 47
1.5. Приложение Hello Go 47
1.6. Итоги 49
Глава 2. Надежная основа 51
2.1. CLI-приложения на Go 52
2.1.1. Флаги командной строки 52
2.1.2. Фреймворки командной строки 59
2.2. Обработка конфигурационной информации 65
2.3. Работа с действующими веб-серверами 73
2.3.1. Запуск и завершение работы сервера 74
2.3.2. Маршрутизация веб-запросов 79
2.4. Итоги 90
Глава 3. Параллельные вычисления в Go 92
3.1. Модель параллельных вычислений в Go 92
3.2. Работа с сопрограммами 93
3.3. Работа с каналами 108
3.4. Итоги 122
Часть II. Надежные приложения 123
Глава 4. Обработка ошибок и аварий 124
4.1. Обработка ошибок 125
4.2. Система аварий 134
4.2.1. Отличия аварий от ошибок 135
4.2.2. Работа с авариями 136
4.2.3. Восстановление после аварий 139
4.2.4. Аварии и сопрограммы 145
4.3. Итоги 154
Глава 5. Отладка и тестирование 155
5.1. Определение мест возникновения ошибок 156
5.1.1. Подождите, где мой отладчик? 156
5.2. Журналирование 157
5.2.1. Журналирование в Go 157
5.2.2. Работа с системными регистраторами 168
5.3. Доступ к трассировке стека 173
5.4. Тестирование 176
5.4.1. Модульное тестирование 177
5.4.2. Порождающее тестирование 183
5.5. Тестирование производительности и хронометраж 186
5.6. Итоги 194
Часть III. Интерфейсы приложений 195
Глава 6. Приемы работы с шаблонами HTML и электронной почты 196
6.1. Работа с HTML-шаблонами 197
6.1.1. Обзор пакетов для работы с HTML-разметкой в стандартной библиотеке 197
6.1.2. Добавление функциональных возможностей в шаблоны 199
6.1.3. Сокращение затрат на синтаксический разбор шаблонов 203
6.1.5. Соединение шаблонов 207
6.2. Использование шаблонов при работе с электронной почтой 218
6.3. Итоги 220
Глава 7. Обслуживание и получение ресурсов и форм 222
7.1. Обслуживание статического содержимого 223
7.2. Обработка форм 238
7.2.1. Введение в формы 238
7.2.2. Работа с файлами и предоставление составных данных 241
7.2.3. Работа с необработанными составными данными 249
7.3. Итоги 253
Глава 8. Работа с веб-службами 255
8.1. Использование REST API 256
8.1.1. Использование HTTP-клиента 256
8.1.2. При возникновении сбоев 258
8.2. Передача и обработка ошибок по протоколу HTTP 263
8.2.1. Генерация пользовательских ошибок 264
8.2.2. Чтение и использование пользовательских сообщений об ошибках 267
8.3. Разбор и отображение данных в формате JSON 270
8.4. Версионирование REST API 274
8.5. Итоги 279
Часть IV. Размещение приложений в облаке 281
Глава 9. Использование облака 282
9.1. Что такое облачные вычисления? 283
9.1.1. Виды облачных вычислений 283
9.1.2. Контейнеры и натуральные облачные приложения 286
9.2. Управление облачными службами 288
9.2.1. Независимость от конкретного провайдера облачных услуг 289
9.2.2. Обработка накапливающихся ошибок 293
9.3. Выполнение на облачных серверах 295
9.3.1. Получение сведений о среде выполнения 295
9.3.2. Сборка для облака 299
9.3.3. Мониторинг среды выполнения 302
9.4. Итоги 305
Глава 10. Взаимодействие облачных служб 306
10.1. Микрослужбы и высокая доступность 307
10.2. Взаимодействия между службами 309
10.2.1. Ускорение REST API 309
10.2.2. Выход за рамки прикладного программного интерфейса REST 317
10.3. Итоги 327
Глава 11. Рефлексия и генерация кода 328
11.1. Три области применения рефлексии 328
11.2. Структуры, теги и аннотации 343
11.2.1. Аннотирование структур 344
11.2.2. Использование тегов 345
11.3. Генерация Go-кода с помощью Go-кода 354
11.4. Итоги 361
Предметный указатель 363
Название: Go на практике
Автор: Батчер М., Фарина М.
Год: 2017
Жанр: программирование
Издательство: ДМК Пресс
Язык: Русский
Формат: pdf
Качество: eBook
Страниц: 374
Размер: 2 MB
Скачать Батчер М., Фарина М. - Go на практике (2017)
Скачать Skymonk по прямой ссылке