Go

Как читать: дизассемблер и Plan 9-синтаксис

Как читать: дизассемблер и Plan 9-синтаксис

Как читать чужой Go-ассемблер: go tool objdump и -gcflags=-S, Plan 9-синтаксис (порядок операндов, суффиксы размера, псевдорегистры FP/SB/SP/PC) и разбор дизасма наивного dot product — доказательство того, что компилятор не векторизовал цикл

Конкурентность в Go: горутины, каналы и context без подводных камней

Конкурентность в Go: горутины, каналы и context без подводных камней

Как в Go на самом деле устроена конкурентность: дешёвые горутины и M:N-планировщик, каналы против мьютексов, context для отмены, рабочие паттерны (worker pool, fan-in/out, pipeline) и типичные подводные камни — гонки, утечки горутин и дедлоки

Go modules: go.mod, версионирование и управление зависимостями

Go modules: go.mod, версионирование и управление зависимостями

go.mod, go.sum, семантический импорт версий, minimal version selection, replace/exclude, vendoring и workspaces (go.work). Как Go решает, какие версии зависимостей брать, почему MVS отличается от других менеджеров пакетов, и как этим управлять на практике

slog: структурированное логирование в стандартной библиотеке Go

slog: структурированное логирование в стандартной библиотеке Go

log/slog (Go 1.21) — структурированное логирование в стандартной библиотеке: уровни, атрибуты, группы, JSON и text-хендлеры, With для контекста и связка с context. Как устроены Handler/Record, как писать свой хендлер и почему slog вытесняет самописные обёртки над log — на живых примерах вывода

sqlc и SQL-builders в Go: генерация кода из SQL vs конструирование запросов

sqlc и SQL-builders в Go: генерация кода из SQL vs конструирование запросов

Два подхода к работе с SQL в Go без ORM на одном домене: sqlc генерирует типизированный код из SQL, а SQL-builders (squirrel, goqu) конструируют запросы программно. Где каждый силён, где кусается и как их комбинировать