Category : golang

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
golang
Как подключить нейросеть и MCP-сервер к VS Code

На самом деле, я человек, который предпочитает писать всю документацию самостоятельно. Меня не страшит код, я довольно хорошо работаю с регулярными выражениями, поэтому преобразование файлов из кода в Markdown не занимает у меня много времени. Но даже мне пришлось согласиться, что в некоторых случаях использовать нейросеть гораздо быстрее и удобнее. И я разберу эти два случая в этой статье.Какие случаи мы рассмотримВ этой статье я покажу:Кейс 1: как сгенерировать документацию к коду с помощью р…

  • вторник, 30 декабря 2025 г. в 00:00:08
golang
Разбираем net/http на практике: пишем веб-сервис DeadDrop для безопасного обмена сообщениями

ДисклеймерВАЖНО: Это учебная статья для начинающихДанный материал — первая часть цикла, где мы поэтапно изучаем net/http.Код в этой статье сознательно упрощён для ясности изложения и НЕ является production-ready.Что опущено в этой части (будет в следующих):Меры безопасности (CSRF, security headers, валидация)Graceful shutdown и таймаутыStructured logging (slog)Полноценная архитектураЦель данной статьи: показать базовые механизмы net/http на практическом примере.Не используйте этот код в product…

  • вторник, 30 декабря 2025 г. в 00:00:08
golang
Python (FastAPI) vs Go: нагрузочный тест и анализ производительности

СодержаниеВведениеУсловия экспериментаАрхитектура тестируемых серверовНастройки нагрузочного тестаРезультаты тестированияПрактические выводыОтветы на вопросыЗаключениеВведениеВыбор backend-языка почти всегда упирается в компромисс между скоростью разработки и производительностью. Python с FastAPI ценят за простоту, читаемость и быстрый старт. Go - за предсказуемость, высокую производительность и эффективную работу под нагрузкой.В обсуждениях часто звучат общие тезисы: «Go быстрее», «FastAPI дос…

  • понедельник, 29 декабря 2025 г. в 00:00:12
golang
Как создать документацию к коду, а потом ее обновить с помощью нейросети

На самом деле, я человек, который предпочитает писать всю документацию самостоятельно. Меня не страшит код, я довольно хорошо работаю с регулярными выражениями, поэтому преобразование файлов из кода в Markdown не занимает у меня много времени. Но даже мне пришлось согласиться, что в некоторых случаях использовать нейросеть гораздо быстрее и удобнее. И я разберу эти два случая в этой статье.Какие случаи мы рассмотримВ этой статье я покажу:Кейс 1: как сгенерировать документацию к коду с помощью р…

  • понедельник, 29 декабря 2025 г. в 00:00:11
golang
Go после Rust: краб и суслик

Как это началосьСлучилось так, что мне пришлось участвовать в разработке на Go. До этого с Go я был знаком шапочно, большую часть времени работая с Rust. Изучить Go оказалось не сложно, но после того, как мы приступили к разработке, обнаружились неприятные моменты. Выяснилось, что по сравнению с Rust, в Go местами не хватает гибкости языка, местами есть способы выстрелить себе в ногу.Так что спустя почти полтора года промышленной разработки на Go, я решил написать эту статью, где (без какого-то…

  • суббота, 27 декабря 2025 г. в 00:00:07
golang
Генерация кроссвордов: «достаточно хорошее» решение NP-полной задачи

Генерация кроссвордов — NP-полная задача. Каждая ячейка, в которой пересекаются два слова, создаёт ограничение, которому должны удовлетворять оба слова, и эти ограничения перемножаются в сетке, приводя к комбинаторному взрыву. Эффективного алгоритма, гарантирующего решение, не существует, но вооружившись подходящими эвристиками, можно создать нечто, работающее на удивление хорошо.В конце 2021 года, уже сильно после начала локдауна, моя одержимость кроссвордом газеты The New York Times превратил…

  • пятница, 26 декабря 2025 г. в 00:00:07