Category : golang

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
golang
ChatGPT Atlas не нужен: Пишем свой AI-«браузер» который не стыдно запустить

Снова здравствуйте, уважаемые хабровчане.Почти каждый день в ленте я вижу новости про очередного "революционного" AI-агента. AutoGPT, BabyAGI, Devin, Cursor, Perplexity, Atlas, Windsurf, Antigravity.... мол они заменят программистов, браузеры, людей, машины, а в итоге.... даже говорить не хочетсяЯ, как человек простой, хотел бы инструмент, который просто работает, мол "ыы зайди в гугл, найди доку, скажи мне ответ". Я скачал пару ( два ) популярных решений ( все они на питухоне …

  • четверг, 1 января 2026 г. в 00:00:06
golang
Go 1.25 + Rust через Wasm

Новая эра межъязыкового взаимодействияДо 2024 года интеграция Go и Rust была либо через хрупкий CGO, либо через сетевые вызовы с накладными расходами. Выход Go 1.24 с директивой //go:wasmexport и дальнейшие оптимизации в Go 1.25 изменили правила игры благодаря WebAssembly Component Model (WCM).Компонентная модель - это стандартизированная система типов (WIT) и ABI, позволяющая компонентам на разных языках взаимодействовать напрямую, без сериализации. Сегодня мы создадим Go-компонент и запустим …

  • четверг, 1 января 2026 г. в 00:00:05
golang
Как устроено фаззинг-тестирование на Go, которое знает о ваших багах больше, чем вы сами

Привет, Хабр! Меня зовут Иван, я инженер по информационной безопасности в департаменте разработки общей платформы компании YADRO. Я занимаюсь фаззинг-тестированием уже два года, через мой фаззинг прошло много кода на языках C и Go. В этой статье будет и теория, и практика. Сначала разберемся, как устроен фаззинг, его алгоритмы и при чем тут ГОСТ. Затем я расскажу, как написать инструмент для фаззинг-тестирования проектов на Go. В практической части подробно опишу процесс разработки и покажу при…

  • среда, 31 декабря 2025 г. в 00:00:07
golang
Основы виртуальной памяти

Что и почему?Задумывались ли вы о том, зачем компьютерам нужна оперативная память (ОП, RAM), когда у них уже есть дисковое хранилище (диск)? Ответ кроется в скорости доступа. Хотя диск является постоянным, он намного медленнее, чем ОП. ОП жертвует изменчивостью ради скорости - данные исчезают при выключении питания, но время доступа гораздо меньше. Как следствие, центральный процессор (ЦП, CPU) имеет доступ только к ОП, а не к диску.ЦП имеют встроенные регистры, которые еще быстрее, чем ОП. Тог…

  • среда, 31 декабря 2025 г. в 00:00:06
golang
Плагины с человеческим лицом: истории комьюнити OpenIDE

Мы в OpenIDE хорошо понимаем, что среда разработки — это не просто набор инструментов и функций. Это пространство, в котором разработчик проводит значительную часть своего времени: думает, экспериментирует, ошибается и создаёт новое. Именно поэтому для нас особенно важны открытость, доступность и ощущение живого диалога внутри экосистемы. IDE - это не только кодовый редактор, вспомогательные инструменты и графические интерфейсы. IDE - это комьюнити. Люди, которые расширяют возможности платформы…

  • среда, 31 декабря 2025 г. в 00:00:05