Pro Go. Полное руководство по программированию надежного и эффективного программного обеспечения с использованием Golang

Pro Go. Полное руководство по программированию надежного и эффективного программного обеспечения с использованием Golang

Pro Go. Полное руководство по программированию надежного и эффективного программного обеспечения с использованием Golang

Автор: Адам Фримен
Дата выхода: 2022
Издательство: Самиздат
Количество страниц: 1286
Размер файла: 13,5 МБ
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы

Часть I: Понимание языка Go
Глава 1: Ваше первое приложение Go
Настройка сцены
Установка средств разработки
Установка Git
Выбор редактора кода
Создание проекта
Определение типа данных и коллекции
Создание HTML-шаблонов
Загрузка шаблонов
Создание обработчиков HTTP и сервера
Написание функции обработки формы
Обработка данных формы
Добавление проверки данных
Резюме
Глава 2: Go в контексте
Почему вам стоит изучать Go?
В чем подвох?
Это действительно настолько плохо?
Что вы должны знать?
Какова структура этой книги?
Часть 1: Понимание языка Go
Часть 2: Использование стандартной библиотеки Go
Часть 3: Применение Go
Что не охватывает эта книга?
Что делать, если вы нашли ошибку в книге?
Много ли примеров?
Какое программное обеспечение вам нужно для примеров?
На каких платформах будут работать примеры?
Что делать, если у вас возникли проблемы с примерами?
Где взять пример кода?
Почему некоторые примеры имеют странное форматирование?
Как связаться с автором?
Что, если мне действительно понравилась эта книга?
Что, если эта книга меня разозлила, и я хочу пожаловаться?
Резюме
Глава 3: Использование инструментов Go
Использование команды Go
Создание проекта Go
Понимание объявления пакета
Понимание оператора импорта
Понимание функции
Понимание оператора кода
Компиляция и запуск исходного кода
Очистка
Использование команды go run
Определение модуля
Отладка кода Go
Подготовка к отладке
Использование отладчика
Использование подключаемого модуля редактора Delve
Линтинг Go-кода
Использование линтера
Отключение правил линтера
Исправление распространенных проблем в коде Go
Форматирование кода Go
Резюме
Глава 4. Основные типы, значения и указатели
Подготовка к этой главе
Использование стандартной библиотеки Go
Понимание основных типов данных
Понимание литеральных значений
Использование констант
Понимание нетипизированных констант
Определение нескольких констант с помощью одного
оператора
Пересмотр литеральных значений
Использование переменных
Пропуск типа данных переменной
Пропуск присвоения значения переменной
Определение нескольких переменных с помощью одного
оператора
Использование краткого синтаксиса объявления
переменных
Использование пустого идентификатора
Понимание указателей
Определение указателя
Следование указателю
Понимание нулевых значений указателя
Указывание на указатели
Понимание того, почему указатели полезны
Резюме
Глава 5: Операции и преобразования
Подготовка к этой главе
Понимание операторов Go
Понимание операторов Go
Объединение строк
Понимание операторов сравнения
Понимание логических операторов
Преобразование, анализ и форматирование значений
Выполнение явных преобразований типов
Преобразование значений с плавающей запятой в целые
числа
Парсинг из строк
Форматирование значений как строк
Резюме
Глава 6: Управление потоком
Подготовка к этой главе
Понимание управления потоком выполнения
Использование ключевого слова else
Использование ключевого слова else
Понимание области действия оператора if
Использование оператора инициализации с оператором if
Использование циклов for
Включение условия в цикл
Использование операторов инициализации и завершения
Продолжение цикла
Перечисление последовательностей
Использование операторов switch
Сопоставление нескольких значений
Принудительный переход к следующему оператору case
Предоставление пункта по умолчанию
Использование оператора инициализации
Исключение значения сравнения
Использование операторов меток
Резюме
Глава 7: Использование массивов, срезов и карт
Подготовка к этой главе
Работа с массивами
Использование литерального синтаксиса массива
Понимание типов массивов
Понимание значений массива
Сравнение массивов
Перечисление массива
Работа со срезами
Добавление элементов в срез
Добавление одного среза к другому
Создание срезов из существующих массивов
Указание емкости при создании среза из массива
Создание срезов из других срезов
Использование функции копирования
Удаление элементов среза
Перечисление срезов
Сортировка срезов
Сравнение срезов
Получение массива, лежащего в основе среза
Работа с картами
Использование литерального синтаксиса карты
Проверка элементов в карте
Удаление объектов с карты
Перечисление содержимого карты
Понимание двойной природы строк
Преобразование строки в руны
Перечисление строк
Резюме
Глава 8: Определение и использование функций
Подготовка к этой главе
Определение простой функции
Определение и использование параметров функции
Пропуск типов параметров
Пропуск имен параметров
Определение и использование результатов функции
Использование указателей в качестве параметров функций
Определение и использование результатов функции
Возврат функцией нескольких результатов
Использование ключевого слова defer
Резюме
Глава 9: Использование типов функций
Подготовка к этой главе
Понимание типов функций
Понимание сравнения функций и нулевого типа
Использование функций в качестве аргументов
Использование функций в качестве результатов
Создание псевдонимов функциональных типов
Использование литерального синтаксиса функции
Понимание области действия функциональной переменной
Непосредственное использование значений функций
Понимание замыкания функции
Резюме
Глава 10: Определение структур
Подготовка к этой главе
Определение и использование структуры
Создание структурных значений
Использование значения структуры
Частичное присвоение значений структуры
Использование позиций полей для создания значений
структуры
Определение встроенных полей
Сравнение значений структуры
Определение анонимных типов структур
Создание массивов, срезов и карт, содержащих структурные
значения
Понимание структур и указателей
Понимание удобного синтаксиса указателя структуры
Понимание указателей на значения
Понимание функций конструктора структуры
Использование типов указателей для полей структуры
Понимание нулевого значения для структур и указателей на
структуры
Резюме
Глава 11: Использование методов и интерфейсов
Подготовка к этой главе
Определение и использование методов
Определение параметров метода и результатов
Понимание перегрузки метода
Понимание получателей указателей и значений
Определение методов для псевдонимов типов
Размещение типов и методов в отдельных файлах
Определение и использование интерфейсов
Определение интерфейса
Реализация интерфейса
Использование интерфейса
Понимание эффекта приемников метода указателя
Сравнение значений интерфейса
Выполнение утверждений типа
Тестирование перед выполнением утверждения типа
Включение динамических типов
Использование пустого интерфейса
Использование пустого интерфейса для параметров
функций
Резюме
Глава 12: Создание и использование пакетов
Подготовка к этой главе
Понимание файла модуля
Создание пользовательского пакета
Использование пользовательского пакета
Понимание управления доступом к пакетам
Добавление файлов кода в пакеты
Разрешение конфликтов имен пакетов
Создание вложенных пакетов
Использование функций инициализации пакета
Использование внешних пакетов
Управление внешними пакетами
Резюме
Глава 13: Тип и состав интерфейса
Подготовка к этой главе
Понимание композиции типов
Определение базового типа
Типы композиций
Создание цепочки вложенных типов
Использование нескольких вложенных типов в одной и той
же структуре
Понимание, когда продвижение не может быть выполнено
Понимание композиции и интерфейсов
Использование композиции для реализации интерфейсов
Составление интерфейсов
Резюме
Глава 14. Использование горутин и каналов
Подготовка к этой главе
Понимание того, как Go выполняет код
Создание дополнительных горутин
Возврат результатов из горутин
Отправка результата с использованием канала
Получение результата с использованием канала
Работа с каналами
Координация каналов
Отправка и получение неизвестного количества значений
Ограничение направления канала
Использование операторов select
Получение без блокировки
Прием с нескольких каналов
Отправка без блокировки
Отправка на несколько каналов
Резюме
Глава 15. Обработка ошибок
Подготовка к этой главе
Работа с исправимыми ошибками
Генерация ошибок
Сообщение об ошибках через каналы
Использование удобных функций обработки ошибок
Работа с неисправимыми ошибками
Восстановление после паники
Паника после восстановления
Восстановление после паники в горутинах
Резюме
Часть II: Использование стандартной библиотеки Go
Глава 16. Обработка строк и регулярные выражения
Подготовка к этой главе
Обработка строк
Сравнение строк
Преобразование регистра строк
Работа с регистром символов
Проверка строк
Манипулирование строками
Обрезка строк
Изменение строк
Построение и генерация строк
Использование регулярных выражений
Компиляция и повторное использование шаблонов
Разделение строк с помощью регулярного выражения
Использование подвыражений
Замена подстрок с помощью регулярного выражения
Резюме
Глава 17: Форматирование и сканирование строк
Подготовка к этой главе
Написание строк
Форматирование строк
Понимание глаголов форматирования
Использование глаголов форматирования общего
назначения
Использование команд целочисленного форматирования
Использование глаголов форматирования значений с
плавающей запятой
Использование глаголов форматирования строк и символов
Использование глагола форматирования логических
значений
Использование глагола форматирования указателя
Сканирование строк
Работа с символами новой строки
Использование другого источника строк
Использование шаблона сканирования
Резюме
Глава 18: Математические функции и сортировка данных
Подготовка к этой главе
Работа с числами
Генерация случайных чисел
Сортировка данных
Сортировка числовых и строковых срезов
Поиск отсортированных данных
Сортировка пользовательских типов данных
Резюме
Глава 19: Даты, время и продолжительность
Подготовка к этой главе
Представление дат и времени
Представление дат и времени
Представление продолжительности
Использование функций времени для горутин и каналов
Перевод горутины в сон
Отсрочка выполнения функции
Получение уведомлений по времени
Получение повторяющихся уведомлений
Резюме
Глава 20:Чтение и запись данных
Подготовка к этой главе
Понимание средств чтения и записи
Понимание средств чтения
Понимание средств записи
Использование служебных функций для программ чтения и
записи
Использование специализированных средств чтения и записи
Использование пайпов
Объединение нескольких средств чтения
Объединение нескольких средств записи
Повторение данных чтения во Writer
Ограничение чтения данных
Буферизация данных
Использование дополнительных методов буферизованного
чтения
Выполнение буферизованной записи
Форматирование и сканирование с помощью средств чтения и
записи
Сканирование значений из считывателя
Запись отформатированных строк в Writer
Использование Replacer с Writer
Резюме
Глава 21: Работа с данными JSON
Подготовка к этой главе
Чтение и запись данных JSON
Кодирование данных JSON
Декодирование данных JSON
Резюме
Глава 22: Работа с файлами
Подготовка к этой главе
Чтение файлов
Использование функции удобства чтения
Использование файловой структуры для чтения файла
Запись в файлы
Использование функции удобства записи
Использование файловой структуры для записи в файл
Запись данных JSON в файл
Использование удобных функций для создания новых файлов
Работа с путями к файлам
Управление файлами и каталогами
Изучение файловой системы
Определение существования файла
Поиск файлов с помощью шаблона
Обработка всех файлов в каталоге
Резюме
Глава 23: Использование HTML и текстовых шаблонов
Подготовка к этой главе
Создание HTML-шаблонов
Загрузка и выполнение шаблонов
Понимание действий шаблона
Создание текстовых шаблонов
Резюме
Глава 24: Создание HTTP-серверов
Подготовка к этой главе
Создание простого HTTP-сервера
Создание прослушивателя и обработчика HTTP
Проверка запроса
Фильтрация запросов и генерация ответов
Использование удобных функций ответа
Использование обработчика удобной маршрутизации
Поддержка HTTPS-запросов
Создание статического HTTP-сервера
Создание статического маршрута к файлу
Использование шаблонов для генерации ответов
Ответ с данными JSON
Обработка данных формы
Чтение данных формы из запросов
Чтение составных форм
Чтение и настройка файлов cookie
Резюме
Глава 25: Создание HTTP-клиентов
Подготовка к этой главе
Отправка простых HTTP-запросов
Отправка POST-запросов
Настройка запросов HTTP-клиента
Использование удобных функций для создания запроса
Работа с файлами cookie
Управление перенаправлениями
Создание составных форм
Резюме
Глава 26: Работа с базами данных
Подготовка к этой главе
Подготовка базы данных
Установка драйвера базы данных
Открытие базы данных
Выполнение операторов и запросов
Запрос нескольких строк
Выполнение операторов с заполнителями
Выполнение запросов для отдельных строк
Выполнение других запросов
Использование подготовленных операторов
Использование транзакций
Использование рефлексии для сканирования данных в
структуру
Резюме
Глава 27: Использование рефлексии
Подготовка к этой главе
Понимание необходимости рефлексии
Использование рефлексии
Использование основных функций типа
Использование базовых возможностей Value
Определение типов
Идентификация байтовых срезов
Получение базовых значений
Установка Value с использованием рефлексии
Установка одного Value с помощью другого
Сравнение Value
Использование удобной функции сравнения
Преобразование значений
Преобразование числовых типов
Создание новых значений
Резюме
Глава 28: Использование рефлексии, часть 2
Подготовка к этой главе
Работа с указателями
Работа со значениями указателя
Работа с типами массивов и срезов
Работа со значениями массива и среза
Перечисление срезов и массивов
Создание новых срезов из существующих срезов
Создание, копирование и добавление элементов в срезы
Работа с типами карт
Работа со значениями карты
Установка и удаление значений карты
Создание новых карт
Работа с типами структур
Обработка вложенных полей
Поиск поля по имени
Проверка тегов структуры
Создание типов структур
Работа со структурными значениями
Установка значений поля структуры
Резюме
Глава 29: Использование рефлексии, часть 3
Подготовка к этой главе
Работа с типами функций
Работа со значениями функций
Создание и вызов новых типов функций и значений
Работа с методами
Вызов методов
Работы с интерфейсами
Получение базовых значений из интерфейсов
Изучение методов интерфейса
Работа с типами каналов
Работа со значениями канала
Создание новых типов и значений каналов
Выбор из нескольких каналов
Резюме
Глава 30: Координация горутин
Подготовка к этой главе
Использование групп ожидания
Использование взаимного исключения
Использование мьютекса чтения-записи
Использование условий для координации горутин
Обеспечение однократного выполнения функции
Использование контекстов
Отмена запроса
Установка крайнего срока
Предоставление данных запроса
Резюме
Глава 31. Модульное тестирование, бенчмаркинг и логирование
Подготовка к этой главе
Использование тестирования
Запуск модульных тестов
Управление выполнением теста
Код бенчмаркинга
Удаление установки из теста
Выполнение суббенчмаркингов
Журналирование ланных
Создание пользовательских регистраторов
Резюме
Часть III: Применение Go
Глава 32: Создание веб-платформы
Создание проекта
Создание некоторых основных функций платформы
Создание системы ведения журнала
Создание системы конфигурации
Управление службами с внедрением зависимостей
Определение жизненных циклов сервиса
Определение внутренних сервисных функций
Определение функций регистрации службы
Определение функций разрешения службы
Регистрация и использование сервисов
Резюме
Глава 33. ПО промежуточного слоя, шаблоны и обработчики
Создание конвейера запросов
Определение интерфейса компонента промежуточного
программного обеспечения
Создание конвейера запросов
Создание базовых компонентов
Создание HTTP-сервера
Настройка приложения
Оптимизация разрешения сервиса
Создание HTML-ответов
Создание макета и шаблона
Реализация выполнения шаблона
Создание и использование службы шаблонов
Знакомство с обработчиками запросов
Генерация URL-маршрутов
Подготовка значений параметров для метода обработчика
Сопоставление запросов с маршрутами
Резюме
Глава 34: Действия, сеансы и авторизация
Представляем результаты действий
Определение общих результатов действий
Обновление заполнителей для использования результатов
действий
Вызов обработчиков запросов из шаблонов
Обновление обработки запросов
Настройка приложения
Создание URL-адресов из маршрутов
Создание службы генератора URL
Определение альтернативных маршрутов
Проверка данных запроса
Выполнение проверки данных
Добавление сеансов
Отсрочка записи данных ответа
Создание интерфейса сеанса, службы и промежуточного
программного обеспечения
Создание обработчика, использующего сеансы
Настройка приложения
Добавление авторизации пользователя
Определение основных типов авторизации
Реализация интерфейсов платформы
Реализация контроля доступа
Реализация функций заполнителя приложения
Создание обработчика аутентификации
Настройка приложения
Резюме
Глава 35: SportsStore: настоящее приложение
Создание проекта SportsStore
Настройка приложения
Запуск модели данных
Отображение списка продуктов
Реализация (временного) репозитория
Отображение списка продуктов
Создание шаблона и макета
Настройка приложения
Добавление пагинации
Стилизация содержимого шаблона
Установка CSS-файла Bootstrap
Обновление макета
Стилизация содержимого шаблона
Добавление поддержки фильтрации категорий
Обновление обработчика запросов
Создание обработчика категории
Отображение навигации по категориям в шаблоне списка
товаров
Регистрация обработчика и обновление псевдонимов
Резюме
Глава 36: SportsStore: корзина и база данных
Создание корзины покупок
Определение модели корзины и репозитория
Создание обработчика запроса корзины
Добавление товаров в корзину
Настройка приложения
Добавление виджета «Сводка корзины»
Использование репозитория базы данных
Создание типов репозиториев
Открытие базы данных и загрузка команд SQL
Определение начального числа и операторов
инициализации
Определение основных запросов
Определение постраничных запросов
Определение службы репозитория SQL
Настройка приложения для использования репозитория
SQL
Резюме
Глава 37: SportsStore: оформление заказа и администрирование
Создание процесса оформления заказа
Определение модели
Расширение репозитория
Отключение временного репозитория
Определение методов и команд репозитория
Создание обработчика запросов и шаблонов
Создание функций администрирования
Создание функции администрирования продукта
Создание функции администрирования категорий
Резюме
Глава 38: SportsStore: отделка и развертывание
Завершение функций администрирования
Расширение репозитория
Реализация обработчиков запросов
Создание шаблонов
Ограничение доступа к функциям администрирования
Создание пользовательского хранилища и обработчика
запросов
Настройка приложения
Создание веб-службы
Подготовка к развертыванию
Установка сертификатов
Настройка приложения
Сборка приложения
Установка рабочего стола Docker
Creating the Docker Configuration Files
Резюме
 

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

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

 Каждая тема освещена в ясном, лаконичном и серьезном подходе, который наполнен деталями, которые вам необходимо изучить, чтобы быть по-настоящему эффективным. Главы включают общие проблемы и способы их избежать.


Похожее:

Список отзывов:

Нет отзывов к книге.