Category : golang

golang
Файлы прямо в бинаре. Go Embed

Стандартная ситуация - в вашем небольшом проекте на Go есть файлы переводов, картинки, миграции, html/gohtml темплейты, которые всегда должны быть рядом с проектом. Как бы странным это не казалось, но ни раз я видел, как люди упорно пытаются рядом со сбилженым бинарем положить эти файлики в нужной форме, мучают девопсов и насилуют пайпы. Пошла эта мода скорее из некомпилируемых языков, к примеру Java Script, который на месте своего нахождения и без этого плодит помойку из каталогов.Краткое, быс…

  • понедельник, 19 января 2026 г. в 00:00:09
golang
Разрабатываем тестовый стенд с автономным ИИ-агентом QA, способным заменить тестировщика в команде …

В этой статья я хочу поделиться концепцией тестового стенда с ии-агентом QA, интеграция которого в команду может покрыть все задачи тестирования бэкенда.Как родилась идея?Я занимаюсь разработкой ПО около 8 лет, имею опыт работы в нескольких крупных российских компаниях, за годы работы с разными бэкенд сервисами мне не раз приходилось плотно работать над тестированием и взаимодействовать с QA. Не скажу, что я безумно люблю покрывать бизнес логику тестами, искать баги и уязвимости, скорее наоборо…

  • понедельник, 19 января 2026 г. в 00:00:09
golang
Актуальный на 2026 Roadmap по Go: с нуля до middle

Всем привет!В прошлом году я выкладывал свой RoadMap по Go, который многим помог стартовать в разработке. Но IT-мир не стоит на месте: появляются новые инструменты, обновляются требования работодателей, а сам Go с каждым годом становится мощнее. Поэтому пришло время актуализировать материал и представить более свежий и релевантный роадмап на 2026 год.Как и раньше, это «народный» курс — собрание проверенных материалов и проектов, которые помогут вкатиться в Go с нуля, выстроить обучение по четко…

  • пятница, 16 января 2026 г. в 00:00:15
golang
Black-White Array: новая структура данных с O(log N) аллокаций

КраткоBlack-White Array (BWA) — это упорядоченная структура данных с амортизированным временем операций вставки/поиска/удаления и используемых участков памяти. Пример реализации и оригинальная научная публикация.ПреимуществаАмортизированное время вставки/удаления/поиска - сравнимое с BTree от Google;Количество аллокаций памяти при операциях вставки так же - меньше давления на сборщик мусора, ниже фрагментация памяти;Массивы под капотом: данные лежат рядом, что улучшает кэшируемость процессо…

  • четверг, 15 января 2026 г. в 00:00:11
golang
Проектирование сервиса персональной ленты. Как решать System Design?

Привет! Эта статья - текстовая версия моего стрима с разбором задачи на бесконечную ленту по System Design из https://t.me/siliconchannel/141 этого поста.Рассмотрим классическую задачу из System Design интервью - персональная лента подписок. По сути, мы проектируем упрощённый клон Instagram. Сама задача звучит следующим образом:Делаем сервис: подписки на авторов, публикации постов, выдача персональной ленты с пагинацией. Нагрузка: чтение доминирует - 30 тыс. RPS; запись постов 1000 RPS; есть “м…

  • вторник, 13 января 2026 г. в 00:00:11
golang
Go: сборщик мусора там, где его не ждут

Всем привет! Меня зовут Нина Пакшина, и я уже 5 лет пишу на Go.Пару лет назад я готовилась к докладу и глубоко изучала исходники runtime Go. Там я наткнулась на очень интересный код.На время я о нём забыла, но сейчас наконец смогла погрузиться. Теперь я хочу поделиться этим с вами, чтобы мы стали понимать Go чуточку глубже.Когда мы говорим о сборщике мусора, то сразу думаем о куче. Зачем сборщик мусора нужен в стеке? Переменная попала на стек, функция завершила исполнение — стек вжух! — и очист…

  • вторник, 13 января 2026 г. в 00:00:10
golang
Как сделать свой статический анализатор для Go?

Go разработчики постоянно сталкиваются с предупреждениями встроенного статического анализатора. А что делать, если его возможностей не хватает или нужно искать что-то специфичное для вашего проекта? Go предоставляет мощные инструменты для разбора и анализа кода. В этой статье мы поговорим о них и даже сделаем своё первое диагностическое правило.ВведениеОпыт работы с Go-инструментами для разбора кода был получен при разработке статического анализатора PVS-Studio для Go.Статья направлена на начин…

  • вторник, 13 января 2026 г. в 00:00:09
golang
Честный взгляд на Go: сильные стороны и болезненные ограничения

Команда Go for Devs подготовила перевод обзора языка Go от практикующего разработчика. Автор без прикрас разбирает сильные стороны Go — конкурентность, простоту и эргономику, — а затем подробно объясняет, почему его разочаровывают enum’ы, неизменяемость и модель ошибок.Я написал несколько небольших проектов на Go, так что не стоит воспринимать всё ниже как экспертное мнение о языке. Это всего лишь мои первые впечатления от работы с ним. Последние несколько месяцев я писал на Go. Сейчас я подум…

  • понедельник, 12 января 2026 г. в 00:00:05
golang
А может чайку

Все уже слышали, что в Go 1.25 завезли новый экспериментальный сборщик мусора - Green Tea GC. Теории о том, как он работает, много (в том числе на Хабре).Но когда мы с коллегой попытались просто включить GOEXPERIMENT=greenteagc на наших обычных бенчмарках, нас ждало разочарование: результаты были то чуть лучше, то чуть хуже, то вообще одинаковые. Сплошная лотерея.Мы задались целью: найти условия, в которых Green Tea GC побеждает безоговорочно. Не на 1-2% в пределах погрешности, а так, чтобы гра…

  • воскресенье, 4 января 2026 г. в 00:00:04