Я старый фуллстек-разработчик и не знаю слов любви, но около полугода назад при очередной итерации сервера почувствовал себя утомленным путником, который узрел нежную красоту wr-обработчика нативного net/http
! Вот раньше всё было ужасно - а теперь красиво, приятно читать и интересно показать! За несколько месяцев я переделал свои сотни обработчиков на новый стиль - и всё еще доволен! Почистил авгиевы конюшни слоев логики - теперь там царит запах фиалок! Также у меня была возможность посмотреть как пилят http профессионалы бэкенда - далеко не как фуллстеки, о чем тоже непременно хочется рассказать!
Рубрика «golang»
Люблю я http, и вот как я его готовлю
2025-04-17 в 22:12, admin, рубрики: api, fullstack, golang, httpПроксирование из коробки: сравнительный анализ HAProxy, Envoy, Nginx, Caddy и Traefik
2025-04-13 в 15:22, admin, рубрики: Caddy, envoy, Go, golang, haproxy, K6, nginx, traefikВсем привет, меня зовут Стас, я техлид в Mish Product Lab.
Тема возникла не просто так: внутри команды у нас было немало споров и дискуссий о том, какой инструмент для проксирования и терминации SSL лучше использовать в различных ситуациях. Изначально все наши гипотезы были основаны больше на личных предпочтениях, чем на реальных данных. Мы долго спорили, надеясь, что истина будет где-то рядом с нашими любимыми решениями. Но в итоге пришли к выводу, что единственный способ получить действительно объективный ответ — это протестировать и сравнить различные варианты на практике.

База
Параллельность - выполнение задач в один момент времени на разных логических ядрах.
Конкурентность - выполнение задач последовательно, но со сменой контекста на другую задачу в ожидание завершения иной задачи. У пользователя может возникнуть иллюзия многозадачности даже в однопроцессорной системе, поскольку смена контекста происходит быстро (микросекунды).
Процессы:
Удобное сканирование в структуры в связке Go-PgX. Решение проблемы сканирования в PgX. Golang
2025-03-28 в 11:16, admin, рубрики: driver, Go, golang, golang orm, orm, pgx, sql, sqlx, орм в гоРаботая с базами данных в Go, многие из нас сталкивались с библиотекой pgx — высокопроизводительным драйвером для PostgreSQL. Однако при всей ее мощи есть одна неудобная особенность: сканирование результатов запросов в структуры может быть довольно громоздким, особенно когда речь идет о вложенных структурах или списках.
Проблема неудобного сканирования в go/pgx
Как кросс-компилировать WebView Go-приложение с CGO для Linux с macOS: Zig, Docker и немного магии
2025-03-26 в 7:15, admin, рубрики: golang, linux, MacOS, WebView, zig, кросскомпиляцияПролог
Недавно я столкнулся с задачей собрать своё Go‑приложение написаное вокруг библиотеки github.com/webview/webview_go
, которая является обёрткой для C/C++ библиотеки webview, для Linux, из чего вытекает необходимость использования CGO. Казалось бы, что сложного? Укажи GOOS=linux, пропиши компилятор CC= и CXX=, выполни go build — и готово. Но нет, CGO и зависимости вроде GTK превратили это в настоящий квест. После нескольких часов борьбы с ошибками вроде Package webkit2gtk-4.0 was not found in the pkg-config search path.
, я наконец‑то разобрался, как это сделать без виртуальной машины, используя Zig и Docker (Читать полностью »
Планировщик Go — самый подробный гайд простым языком
2025-03-17 в 16:56, admin, рубрики: Go, golang, внутреннее устройство, планировщик go, под капотом
Давайте спроектируем с нуля планировщик Go — начнём с самой простой и понятной наивной реализации, а затем шаг за шагом будем разбираться, какие изъяны в ней есть, и придумывать как их решать, постепенно усложняя общую модель.
15 мс на ответ: как мы добились высокой скорости работы API Gateway
2025-03-14 в 12:15, admin, рубрики: api, golang, LFU, LRU, кэширование, оптимизацияМеня зовут Николай Кокоулин, я бэкенд-разработчик в Ви.Tech — это IT-дочка ВсеИнструменты.ру. В этой статье поделюсь нашим опытом о том, как мы в ходе разделения монолитного приложения на микросервисы столкнулись с вызовом: как сохранить производительность и масштабируемость системы при росте нагрузки.

#1.2 Самописное ядро для Minecraft — ULE на Go lang
2025-03-07 в 9:15, admin, рубрики: golang, minecraft, minecraft java edition, minecraft server, ПесочницаПриветствую всех! Раз вы попали сюда, значит, вы хотите создать собственное ядро для игры Minecraft на языке программирования Go. Эта статья — римейк статьи о создании ядра, поэтому авторство можно приписать первоначальному автору. Однако так как он перешел на Rust, я получил эстафету и продолжил написание ядра на Go. В его коде было много ошибок, так как почти всё хранилось на его GitHub, который он почистил для Rust. Я переработал систему, чтобы вся основная часть хранилась локально, кроме библиотеки.
Итак, мы будем использовать компилятор GoLand от JetBrains. Версия Go — 1.20.
Как я написал пакет для быстрого создания и управления формами в Go
2025-03-07 в 6:15, admin, рубрики: api, backend, backend-программирование, backend-разработка, Go, golang, web, библиотека go, разработкаПривет, Хабровчане! Сегодня я хочу рассказать о своём небольшом проекте - пакете goform, который я написал для упрощения работы с HTML-формами в Go. Это не просто ещё один пакет, а результат моего опыта и желания сделать процесс работы с формами более удобным и эффективным. В этой статье я поделюсь историей создания, функциональностью пакета и тем, как он может быть полезен другим разработчикам.