Category : golang

golang
Три паттерна написания Agent Skills

Еще год-два назад большинство разработчиков даже не задумывались о том, что будут программировать агентами с помощью обычных Markdown-файлов. Сегодня ситуация изменилась буквально за несколько месяцев.Практически каждый современный AI-агент, будь то Claude Code, Cursor, Codex, Gemini CLI или OpenCode, предлагает один и тот же механизм расширения своих возможностей - напишите Skill, опишите процесс решения задачи, добавьте примеры, подключите документацию и агент начнет выполнять эту работу знач…

  • среда, 5 августа 2026 г. в 00:00:11
golang
Правила программирования Роба Пайка

Роб Пайк выступает на конференции OSCON 2010, источникВ этой рубрике мы уже рассказывали про Кена Томпсона и Денниса Ритчи, соавторов Unix, UTF-8 и операционной системы Plan 9. Они практически всю жизнь работали вместе в Bell Labs (AT&T, потом Lucent) как коллеги и единомышленники. Так вот, третьим членом их коллектива был Роб Пайк.Кроме соавторства Unix и нескольких учебников по программированию, он известен как создатель языка программирования Go. Этот язык родился из философии простоты в…

  • вторник, 4 августа 2026 г. в 00:00:13
golang
Выпекаем тесты на Go с Testo: делимся нашим open-source-фреймворком

Привет, Хабр! Я Вадим, разработчик QA-платформы в Ozon: делаю тестирование на Go лёгким и развиваю нашу собственную TMS-систему.Большим end-to-end-тестам часто необходима целая инфраструктура: наглядные отчёты, подключение к внешним ресурсам, хуки, фикстуры, параметризация, параллельные запуски и возможность расширения под процессы конкретной команды. Когда таких сценариев становится много, разрозненные решения усложняют разработку и поддержку тестов.С этим мы столкнулись внутри Ozon. Нам было …

  • вторник, 4 августа 2026 г. в 00:00:12
golang
Go прощает меньше, чем кажется: восемь ошибок, на которых спотыкается каждый новичок

Привет, Хабр! Go специально сделали маленьким языком. Ключевых слов немного, конструкций мало, за неделю осваиваешь синтаксис и начинаешь писать. Именно из-за этой простоты возникает ложное ощущение, что тут негде ошибиться — код компилируется, значит всё правильно.А потом оказывается, что компилятор пропускает целый класс вещей, которые в других языках он бы отловил или которые просто устроены не так, как ты привык. Цикл, который выдаёт не те значения. Слайс, который меняется сам собой. Горути…

  • вторник, 4 августа 2026 г. в 00:00:11
golang
Мониторинг, который не переживёт собственного падения

Всем привет! Хотел бы поговорить о мониторинге наших web, да и не только web, приложений, в первую очередь, о проблемах, с которыми мы сталкиваемся. В этой статье я буду использовать язык python и популярные сервисы, чтобы содержимое было максимально понятно большинству.К примеру, мы написали простой проект, ставить Prometheus с Grafana ради одной машины скорее избыточно, поэтому мы используем что‑то типо этого:curl -sf https://example.com/ >/dev/null || \ curl -s "https://api.telegram.o…

  • вторник, 4 августа 2026 г. в 00:00:09
golang
Go SDK для YDB: уменьшаем количество запросов к СУБД для интерактивных транзакций

Привет, Хабр! Меня зовут Степан Пестерников, мы с командой делаем Алису и активно используем СУБД Яндекса. Недавно коллеги из YDB провели большой рефакторинг в YDB Go SDK, где по умолчанию теперь используется новый Query Service.Я воспользовался этим рефакторингом, чтобы уменьшить количество сетевых запросов для интерактивных транзакций. Клиентские SDK устанавливают к распределённой СУБД Яндекса gRPC-подключения, поверх которых отправляются низкоуровневые команды. Какие-то из этих команд можно …

  • вторник, 4 августа 2026 г. в 00:00:08
golang
Делаем себе сложно

В пакете стандартной библиотеки slices есть функция Backward — итератор по элементам среза в обратном порядке:// Backward returns an iterator over index-value pairs in the slice, // traversing it backward with descending indices. func Backward[Slice ~[]E, E any](s Slice) iter.Seq2[int, E] Если вы не сильно погружены в тему дженериков и итераторов, то естественная реакция при взгляде на сигнатуру этой функции (и других из пакета slices) — «а что, нельзя попроще как-то было?».Чтобы ответить на эт…

  • воскресенье, 2 августа 2026 г. в 00:00:17
golang
Как я делал текстовую игру для веба

Привет, Хабр! Меня зовут Костя, я десять лет занимаюсь коммерческой Android-разработкой. Давно хотелось попробовать себя в вебе, а эксперименты с LLM давали некоторую уверенность в том, что по крайней мере есть шанс написать агентами поддерживаемый код и задеплоить.Что же можно сделать? Конечно тамагочи! Текстовая браузерная игра: герой живёт в мире мрачного будущего. Непрямое управление, возможность предлагать миссии, а также тюнинг предпочтений героя. Эдакий Годвилль, но на новый лад.Оглавлен…

  • суббота, 1 августа 2026 г. в 00:00:19
golang
Один интерфейс — девять LLM-провайдеров: как мы подружили Kimi K3, GLM-5.2, Claude и Ollama в одном…

Привет, Хабр! Я делаю execai — терминальный AI-агент на Go (bubbletea), в духе Claude Code. Он читает файлы, гоняет shell-команды, ходит в kubernetes и стримит ответы в TUI.В какой-то момент выяснилось, что пользователям нужен не «агент с одной моделью», а мультитул: у кого-то подписка Kimi Code за $19, у кого-то GLM Coding Plan за $18, у кого-то корпоративный ключ Anthropic, а кто-то хочет гонять Ollama локально и не платить вообще. И всё это — в одном чате, с общей историей, с переключением н…

  • суббота, 1 августа 2026 г. в 00:00:18