Исчерпывающий словарь терминов и определений языка программирования Go/Golang для разработчиков всех уровней.
🅰️ A
API (Application Programming Interface)
Интерфейс программирования приложений — набор функций и методов для взаимодействия между программными компонентами. В Go часто используется для создания REST API с помощью пакета net/http.
Array (Массив)
Фиксированная последовательность элементов одного типа. В Go размер массива является частью его типа: [5]int
и [10]int
— разные типы.
🅱️ B
Buffer
Временное хранилище данных в памяти. В Go используется bytes.Buffer
для эффективной работы со строками и байтовыми данными.
Build (Сборка)
Процесс компиляции Go кода в исполняемый файл. Команда go build
создает исполняемый файл из Go пакетов.
Benchmark (Бенчмарк)
Тест производительности кода. В Go создается функцией с префиксом Benchmark
и параметром *testing.B
.
🅲 C
Channel (Канал)
Механизм связи между горутинами в Go. Каналы позволяют горутинам безопасно передавать данные друг другу. Создаются с помощью make(chan Type)
.
Closure (Замыкание)
Функция, которая захватывает переменные из окружающей области видимости. В Go поддерживаются анонимные функции с замыканиями.
Concurrency (Конкурентность)
Способность программы выполнять несколько задач одновременно. Go обеспечивает конкурентность через горутины и каналы.
Context
Пакет для управления жизненным циклом операций, передачи данных между функциями и отмены длительных операций.
🅳 D
Defer
Ключевое слово Go, которое откладывает выполнение функции до момента возврата из текущей функции. Часто используется для освобождения ресурсов.
Duck Typing
Подход в Go, где тип определяется поведением, а не декларацией. Если тип реализует все методы интерфейса, он автоматически его удовлетворяет.
🅴 E
Embedded Type (Встроенный тип)
Механизм в Go для включения одного типа в другой без явного наименования поля. Обеспечивает композицию вместо наследования.
Error Handling (Обработка ошибок)
Подход Go к обработке ошибок через возврат значения типа error
из функций вместо использования исключений.
🅵 F
Function (Функция)
Блок кода, который выполняет определенную задачу. В Go функции являются типами первого класса и могут быть переданы как аргументы.
First-class Function (Функция первого класса)
В Go функции могут быть присвоены переменным, переданы как аргументы и возвращены из других функций.
🅶 G
Go Module (Go Модуль)
Система управления зависимостями в Go. Модуль — это коллекция пакетов, версионируемая как единое целое.
Garbage Collector (Сборщик мусора)
Автоматическое управление памятью в Go. Сборщик мусора освобождает память, занятую объектами, на которые больше нет ссылок.
Goroutine (Горутина)
Легковесный поток выполнения в Go. Горутины управляются Go runtime и позволяют легко создавать конкурентные программы.
GOPATH
Переменная окружения, определяющая рабочее пространство Go (до введения модулей). Содержит пути к исходному коду, пакетам и исполняемым файлам.
GOOS и GOARCH
Переменные окружения для кросс-компиляции. GOOS определяет целевую операционную систему, GOARCH — архитектуру процессора.
🅷 H
HTTP Handler
Функция в Go, обрабатывающая HTTP запросы. Должна иметь сигнатуру func(w http.ResponseWriter, r *http.Request)
.
Hash Map
Структура данных для хранения пар ключ-значение. В Go реализована как встроенный тип map
.
🅸 I
Interface (Интерфейс)
Тип в Go, определяющий набор методов. Любой тип, реализующий все методы интерфейса, автоматически его удовлетворяет.
Import Path
Строка, идентифицирующая пакет для импорта. Обычно это URL репозитория или стандартное имя пакета.
🅹 J
JSON (JavaScript Object Notation)
Формат обмена данными. Go предоставляет пакет encoding/json
для работы с JSON данными.
🅺 K
Keyword (Ключевое слово)
Зарезервированное слово в Go, которое нельзя использовать как идентификатор. В Go 25 ключевых слов: break, default, func, interface, select и др.
🅻 L
Literal (Литерал)
Значение, записанное непосредственно в коде. Примеры: 42
(числовой литерал), "hello"
(строковый литерал).
Lock (Блокировка)
Механизм синхронизации для защиты разделяемых ресурсов. В Go доступны через пакет sync (Mutex, RWMutex).
🅼 M
Map (Карта)
Встроенный тип Go для хранения пар ключ-значение. Аналог словаря или хэш-таблицы в других языках.
Method (Метод)
Функция с receiver’ом. Методы позволяют типам иметь поведение, связанное с ними.
Middleware
Промежуточное ПО для обработки HTTP запросов. Функция, которая оборачивает другой handler.
Mutex (Мьютекс)
Примитив синхронизации для взаимного исключения. Обеспечивает доступ к ресурсу только одной горутине.
🅽 N
nil
Нулевое значение в Go для указателей, интерфейсов, каналов, слайсов, map и функций.
🅾️ O
ORM (Object-Relational Mapping)
Техника связывания объектов с записями в базе данных. Популярная ORM для Go — GORM.
🅿️ P
Package (Пакет)
Основная единица организации кода в Go. Пакет — это директория с .go файлами, начинающимися с одного package declaration.
Panic
Механизм остановки нормального выполнения программы при критической ошибке. Может быть обработан с помощью recover.
Pointer (Указатель)
Переменная, хранящая адрес в памяти другой переменной. В Go обозначается символом *
.
Polymorphism (Полиморфизм)
Способность использовать один интерфейс для работы с объектами разных типов. В Go достигается через интерфейсы.
🅿️ Q
Query (Запрос)
В контексте баз данных — команда для получения или изменения данных. Go предоставляет пакет database/sql для работы с SQL запросами.
🆁 R
Race Condition (Состояние гонки)
Ошибка, возникающая когда несколько горутин одновременно обращаются к разделяемому ресурсу. Go предоставляет детектор гонок: go run -race
.
Receiver
Параметр метода в Go, указывающий к какому типу принадлежит метод. Может быть value receiver или pointer receiver.
Reflection (Рефлексия)
Способность программы исследовать свою структуру во время выполнения. В Go доступна через пакет reflect.
REST API
Архитектурный стиль для создания веб-служб. Go часто используется для создания RESTful API.
🆂 S
Slice (Слайс)
Динамический массив в Go. Слайсы построены поверх массивов и автоматически изменяют размер.
Struct (Структура)
Пользовательский тип, объединяющий поля разных типов. Основа для создания сложных типов данных в Go.
Select Statement
Управляющая конструкция для работы с каналами. Позволяет горутине ждать операции с несколькими каналами.
Synchronization (Синхронизация)
Координация выполнения горутин для предотвращения race conditions. В Go доступна через пакет sync.
🆃 T
Type Assertion
Операция извлечения конкретного типа из интерфейса. Синтаксис: value, ok := interface.(Type)
.
Type Switch
Конструкция switch для работы с типами в интерфейсах. Позволяет выполнить разные действия в зависимости от типа.
Testing (Тестирование)
Процесс проверки корректности кода. Go предоставляет встроенный пакет testing и команду go test
.
🆄 U
Unit Test (Юнит-тест)
Тест отдельного компонента (функции, метода). В Go создается функцией с префиксом Test
и параметром *testing.T
.
UTF-8
Кодировка символов, используемая в Go по умолчанию для строк. Поддерживает все символы Unicode.
🆅 V
Variable (Переменная)
Именованное хранилище данных. В Go переменные могут быть объявлены с помощью var
или короткой записи :=
.
Value Receiver
Метод, получающий копию значения. Изменения внутри метода не влияют на оригинал.
Vendor
Директория для хранения зависимостей внутри проекта. Использовалась до введения Go модулей.
🆆 W
WaitGroup
Примитив синхронизации из пакета sync для ожидания завершения группы горутин.
Web Framework
Набор инструментов для создания веб-приложений. Популярные Go фреймворки: Gin, Echo, Fiber.
🆇 X
XML
Формат разметки данных. Go предоставляет пакет encoding/xml для работы с XML.
🆈 Y
YAML
Формат сериализации данных. Часто используется для конфигурационных файлов в Go приложениях.
🆉 Z
Zero Value (Нулевое значение)
Значение по умолчанию для каждого типа в Go. Например: 0 для int, "" для string, nil для указателей.
📚 Полезные ссылки
Официальная документация: golang.org/doc/
Спецификация языка: golang.org/ref/spec
Эффективный Go: golang.org/doc/effective_go
FAQ по Go: golang.org/doc/faq
Не нашли нужный термин? Предложите добавить его в глоссарий!