Давайте разберёмся, что делает анализатор omitzero.
Представьте, что вы пишете структуру с вложенными типами:
type User struct {
Name string `json:"name,omitempty"`
Address Address `json:"address,omitempty"`
}Многие ожидают, что
omitempty на поле Address сработает так же, как на Name — пропустит поле при сериализации, если оно пустое. Но нет.Для полей-структур тег
omitempty вообще ничего не делает. Пустая структура всё равно попадёт в JSON как "address": {}.omitzero находит все такие случаи и предлагает два варианта:1. Удалить тег, если он вам не нужен — зачем держать код, который ничего не делает.
2. Заменить на
omitzero — он работает правильно и пропустит поле, если структура имеет нулевое значение.Некоторые библиотеки сериализации интерпретируют
json:",omitzero" по-своему. Модернизатор автоматически пропускает пакеты с аннотациями +kubebuilder, чтобы ничего не сломать.📍 Навигация: Вакансии • Задачи • Собесы
#GoToProduction
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1
Новый кросс-платформенный фреймворк для создания нативных мобильных приложений. Без JavaScript, без костылей, без виртуальных машин — только Go.
Вы остаётесь в экосистеме Go. Используете привычные инструменты, библиотеки, тестирование. Не нужно учить Kotlin, Swift или какой-то специфичный DSL для UI.
Как начать работать:
# Ставите CLI
go install github.com/go-drift/drift/cmd/drift@latest
# Создаёте проект
drift init my-app
cd my-app
# Запускаете на Android
drift run android
Автор признаётся, что вдохновением для него был фреймворк Flutter. В репозитории лежит showcase-приложение с примерами всех виджетов — можете посмотреть, как это выглядит в реальности.
📍 Навигация: Вакансии • Задачи • Собесы
#GoToProduction
Please open Telegram to view this post
VIEW IN TELEGRAM
😁18🔥14❤5❤🔥2
Два расширения VS Code — «ChatGPT - 中文版» с миллионом установок и «ChatMoss» со 150 тысячами установок — работают как AI-помощники, но крадут весь ваш код и отправляют на сервера в Китай.
Расширения действительно работают. Они отвечают на вопросы, дополняют код, объясняют ошибки. Поэтому их установили 1.5 млн разработчиков. Под капотом — три скрытых канала утечки.
Три канала кражи данных
1. При открытии файла расширение читает его целиком, кодирует в Base64 и отправляет на сервер. Не 20 строк для автодополнения — весь файл. Триггер срабатывает на каждое изменение.
2. Сервер может удалённо запустить массовый сбор до 50 файлов без взаимодействия пользователя. Ваша кодовая база — в одной команде от полной эксфильтрации.
3. Невидимый iframe загружает четыре аналитических SDK: Zhuge.io, GrowingIO, TalkingData и Baidu Analytics; для сбора данных о вас, вашей компании и паттернах работы. Аналитика показывает, чьи файлы стоит красть.
Разработчики доверились, потому что расширения реально работают. Прошли модерацию маркетплейса. Имеют положительные отзывы. И воруют ваш код.
📍 Навигация: Вакансии • Задачи • Собесы
#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔10❤2🤩2
🔄 Обновление Fiber
Вышел Fiber v3.0.0 – крупное мажорное обновление фреймворка.
• Главное архитектурное изменение: Ctx как интерфейс
В предыдущих версиях контекст был конкретным типом, что делало невозможным создание кастомных реализаций или расширение функциональности без форков. Теперь
• Интеграция со стандартной библиотекой: context.Context
Долгое время одной из критик Fiber было отсутствие совместимости с контекстом из стандартной библиотеки Go.
В третьей версии
• Новая система Binding: единое API для парсинга данных
В версии 2 для извлечения данных из запроса нужно было использовать разные методы:
Третья версия вводит унифицированный Binding API, который умеет извлекать данные из всех источников через единый интерфейс. Метод
• Extractors: универсальная система извлечения данных
Новый пакет
Теперь есть единая система экстракторов с общим API. Вы создаёте экстрактор, указывая источник данных (cookie, header, query, form), и используете его везде.
И ещё куча исправлений и обновлений, обо всех можно почитать в репозитории проекта.
➡️ Release Notes
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека Go-разработчика
#GoLive
Вышел Fiber v3.0.0 – крупное мажорное обновление фреймворка.
• Главное архитектурное изменение: Ctx как интерфейс
В предыдущих версиях контекст был конкретным типом, что делало невозможным создание кастомных реализаций или расширение функциональности без форков. Теперь
fiber.Ctx — это интерфейс с десятками методов, а стандартная реализация называется DefaultCtx• Интеграция со стандартной библиотекой: context.Context
Долгое время одной из критик Fiber было отсутствие совместимости с контекстом из стандартной библиотеки Go.
В третьей версии
fiber.Ctx реализует интерфейс context.Context, что означает полную совместимость со стандартной экосистемой. Теперь можно передавать Fiber контекст в функции баз данных, gRPC клиенты, любые библиотеки, работающие с контекстом.• Новая система Binding: единое API для парсинга данных
В версии 2 для извлечения данных из запроса нужно было использовать разные методы:
QueryParser() для query параметров, BodyParser() для тела запроса, ParamsParser() для параметров маршрута.Третья версия вводит унифицированный Binding API, который умеет извлекать данные из всех источников через единый интерфейс. Метод
Bind().All() автоматически парсит query параметры, тело запроса, заголовки, параметры маршрута и даже cookies, заполняя вашу структуру данными из всех источников одновременно.• Extractors: универсальная система извлечения данных
Новый пакет
extractors решает распространённую проблему: в разных миддлварах была дублирующаяся логика извлечения токенов из запроса. Каждый миддлвар по-своему искал данные в заголовках, куках или query параметрах.Теперь есть единая система экстракторов с общим API. Вы создаёте экстрактор, указывая источник данных (cookie, header, query, form), и используете его везде.
И ещё куча исправлений и обновлений, обо всех можно почитать в репозитории проекта.
📍 Навигация: Вакансии • Задачи • Собесы
#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥15😁2🥱2😢1
Вышла новая версия библиотеки для генерации PDF на Go. Главное обновление — официальная поддержка Python.
Если у вас Python-сервис, но нужна мощная PDF-генерация — можно подключить gopdfsuit, не переписывая проект на Go. В релиз включены примеры кода, чтобы разобраться, как это работает.
Что нового, помимо поддержки питона:
• Добавили поддержку SVG — теперь векторные изображения можно встраивать напрямую в PDF без потери качества.
• Реализовали умные переносы текста, которые укладываются в заданные границы.
• Обновили веб-интерфейс и визуальный редактор — улучшили live-preview при создании шаблонов.
📍 Навигация: Вакансии • Задачи • Собесы
#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3
🚀 Первый заказ на фрилансе
Пока все воюют за заказы на биржах, локальный бизнес в радиусе 5 км от вас даже не знает, где искать разработчика. Вы станете единственным, кто предложил помощь, пока остальные штурмуют фриланс-площадки.
➡️ В статье 9 небанальных способов найти первые деньги айтишнику
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека Go-разработчика
Пока все воюют за заказы на биржах, локальный бизнес в радиусе 5 км от вас даже не знает, где искать разработчика. Вы станете единственным, кто предложил помощь, пока остальные штурмуют фриланс-площадки.
📍 Навигация: Вакансии • Задачи • Собесы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Разработчик поделился на Reddit своим AI-ассистентом для Dota 2, который анализирует игровую ситуацию в реальном времени и дает тактические советы прямо в игре.
Проект использует Game State Integration от Dota 2 – встроенный механизм, который отправляет JSON с игровым состоянием на HTTP-сервер. Go-приложение принимает эти данные, парсит их в структуры и сохраняет в thread-safe хранилище.
Дальше начинается интересное: система строит промпт не просто из текущего состояния игры, а использует полноценный RAG-пайплайн.
Сначала LLM генерирует поисковые запросы на основе ситуации в игре. Потом эти запросы ищутся в векторной базе знаний, где хранится информация о всех героях, предметах и способностях из Dota 2. Найденные релевантные куски знаний вместе с игровым контекстом формируют финальный промпт для AI.
💬 Где бы вы ещё применили подобные инструменты? Может Counter Strike?
📍 Навигация: Вакансии • Задачи • Собесы
#GoTalk
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22🥱4❤3⚡2
🔄 Ergo Framework v3.2.0
Вышел мажорный релиз Ergo Framework – Go-реализации actor model в стиле Erlang/OTP.
• Безопасность и сетевая инфраструктура
Главное нововведение – полноценная поддержка mutual TLS через новый интерфейс
Вторая важная фича – NAT support через
• Управление процессами
Появился контроль времени инициализации через
При graceful shutdown через
• Новые возможности API
Теперь можно делать синхронные запросы напрямую из
➡️ Release Notes
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека Go-разработчика
#GoLive
Вышел мажорный релиз Ergo Framework – Go-реализации actor model в стиле Erlang/OTP.
• Безопасность и сетевая инфраструктура
Главное нововведение – полноценная поддержка mutual TLS через новый интерфейс
gen.CertAuthManager. Теперь можно настроить ClientCAs, RootCAs, ClientAuth и ServerName для двусторонней аутентификации между нодами. Вторая важная фича – NAT support через
RouteHost и RoutePort в gen.AcceptorOptions, что решает проблему работы нод за NAT'ом или load balancer'ами.• Управление процессами
Появился контроль времени инициализации через
InitTimeout в gen.ProcessOptions – теперь можно ограничить длительность ProcessInit как для локальных, так и для удаленных процессов.При graceful shutdown через
ShutdownTimeout каждые 5 секунд логируются зависшие процессы с их состоянием и очередью.• Новые возможности API
Теперь можно делать синхронные запросы напрямую из
gen.Node через семейство методов Call*, инспектировать процессы через Inspect, резолвить PID по имени и обратно.📍 Навигация: Вакансии • Задачи • Собесы
#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2
Golang разработчик — до 350 000 ₽ и удалёнка.
Middle Golang Developer — 384 700 ₽ и удалёнка США.
Go Tech Lead — от 400 000 ₽ и удалёнка Москва.
📍 Навигация: Вакансии • Задачи • Собесы
#GoWork
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Разрешение конфликтов в Git через стандартные инструменты часто превращается в мучение. Появился интересный TUI-инструмент на Go — ec, который делает этот процесс значительно удобнее.
ec использует трёхпанельный интерфейс в стиле IntelliJ: слева ours, по центру результат слияния, справа theirs. Инструмент показывает только конфликтные блоки, между которыми можно быстро переключаться через
n/p.Можно запустить просто ec без аргументов внутри репозитория с конфликтами – инструмент покажет список файлов и даст выбрать нужный. Есть интеграция с git mergetool через конфиг
[mergetool "ec"].В репозитории есть минималистичный плагин для Neovim, который открывает ec в терминальном буфере.
Важный момент: ec не запускает git add после записи результата – это остаётся на усмотрение пользователя.
📍 Навигация: Вакансии • Задачи • Собесы
#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤5🥱1
🔄 Три Go обновления
Команда Go выпустила срочные обновления безопасности: стабильные версии Go 1.25.7 и Go 1.24.13, а также релиз-кандидат go1.26rc3. Релизы содержат исправления двух уязвимостей.
Исправления безопасности
• cmd/cgo — контрабанда кода через doc-комментарии. Расхождение между тем, как Go и C/C++ парсят комментарии, позволяло внедрять код в результирующий бинарный файл cgo. Теперь компилятор cgo больше не будет парсить пользовательские doc-комментарии.
• crypto/tls — неожиданное возобновление сессии при использовании
➡️ Анонсы про релизы и про релиз-кандидата
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека Go-разработчика
#GoLive
Команда Go выпустила срочные обновления безопасности: стабильные версии Go 1.25.7 и Go 1.24.13, а также релиз-кандидат go1.26rc3. Релизы содержат исправления двух уязвимостей.
Исправления безопасности
• cmd/cgo — контрабанда кода через doc-комментарии. Расхождение между тем, как Go и C/C++ парсят комментарии, позволяло внедрять код в результирующий бинарный файл cgo. Теперь компилятор cgo больше не будет парсить пользовательские doc-комментарии.
• crypto/tls — неожиданное возобновление сессии при использовании
Config.GetConfigForClient. 📍 Навигация: Вакансии • Задачи • Собесы
#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔4👍1😁1
Можно забыть про:
for i := 0; i < n; i++
С версии 1.22 пишем:
for i := range n { ... }Анализатор
rangeint автоматически подсказывает, где можно заменить. Работает, если переменная цикла и лимит не меняются внутри.Меньше букв, больше Go дзена.
📍 Навигация: Вакансии • Задачи • Собесы
#GoToProduction
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29🥱5😁2❤1😢1
Мем смешной, ситуация — не очень
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека Go-разработчика
#GoGiggle
📍 Навигация: Вакансии • Задачи • Собесы
#GoGiggle
Please open Telegram to view this post
VIEW IN TELEGRAM
😁15❤4👾1
Функция вызывает саму себя до инициализации. Код может запаниковать или выдать ответ? Давайте подумаем.
📍 Навигация: Вакансии • Задачи • Собесы
#ReadySetGo
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱11❤1👍1
Зачем Go-разработчику Python и агенты?
Даже если вы пишете микросервисы на Go, мир AI говорит на Python. Чтобы интегрировать умных агентов в свою архитектуру, нужно понимать, как они работают изнутри.
Курс «Разработка ИИ-агентов» стартовал. Мы разбираем архитектуру, которую можно перенести на любой язык, но кодим на Python.
Разбираем:
— паттерны взаимодействия агентов (
— работу с векторными БД (RAG);
— протоколы и API (то, с чем вам придётся интегрироваться).
—
Для прохождения нужны базовые знания Python. Первую лекцию открыли для всех.
Смотреть лекцию
Записаться на курс
Даже если вы пишете микросервисы на Go, мир AI говорит на Python. Чтобы интегрировать умных агентов в свою архитектуру, нужно понимать, как они работают изнутри.
Курс «Разработка ИИ-агентов» стартовал. Мы разбираем архитектуру, которую можно перенести на любой язык, но кодим на Python.
Разбираем:
— паттерны взаимодействия агентов (
A2A, иерархии);— работу с векторными БД (RAG);
— протоколы и API (то, с чем вам придётся интегрироваться).
—
Для прохождения нужны базовые знания Python. Первую лекцию открыли для всех.
Смотреть лекцию
Записаться на курс
🥱16❤1
Именованные возвращаемые значения — это когда переменные инициализируются автоматически и можно писать просто return без аргументов.
func rectangle(w, h float64) (area, perimeter float64) {
area = w * h
perimeter = 2 * (w + h)
return // Вернёт area и perimeter
}Плюсы
+ Документация в коде. Вместо загадочных
(string, string) видите (dir, file string).+ Удобство в defer. Именованная err доступна в defer, можно модифицировать результат после основной логики.
+ В коротких функциях с 1-2 возвратами избавляет от лишних объявлений.
Минусы
- Читаемость страдает. Когда функция больше экрана, голый return заставляет скроллить вверх. Явный return result, nil решает проблему мгновенно.
- Затенение — частая ошибка. Пишете
:= вместо = и создаётся новая переменная. Коварно с err: именованная остаётся nil, а локальная содержит ошибку. - Изменения через defer. Defer может модифицировать именованные переменные. Функция вернёт не то, что в return.
- Нули скрывают баги. Забыли присвоить результат — функция вернёт nil или 0. Без явного return сложнее заметить.
Правило: если нужно скроллить вверх, чтобы понять что возвращает return — используйте явный возврат.
📍 Навигация: Вакансии • Задачи • Собесы
#GoDeep
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤3
You Aren't Gonna Need It (YAGNI) — один из ключевых принципов хорошего кода, который призывает не реализовывать функциональность на будущее.
Суть проста: не пишите код, который может когда-нибудь пригодиться. Реализуйте только то, что нужно прямо сейчас для решения текущей задачи.
Go и YAGNI: идеальное сочетание
Go изначально спроектирован с учётом принципа простоты. Создатели языка сознательно отказались от модных фич, оставив только необходимое. И это не баг, а фича.
Нарушение YAGNI:
// На будущее создаём сложную структуру с кучей полей
type User struct {
ID int
Name string
Email string
Phone string
Address string
SecondPhone string // может пригодится
FaxNumber string // вдруг понадобится
SocialLinks map[string]string // для будущей интеграции
}
// Универсальный метод на все случаи жизни
func (u *User) UpdateProfile(opts ProfileOptions) error {
// Сложная логика для сотни сценариев,
// из которых реально используется три
}
Go-компилятор настолько педантичен к чистоте кода, что даже не позволит собрать программу с неиспользуемыми переменными или импортами. Это встроенная защита от нарушения YAGNI на уровне языка.
📍 Навигация: Вакансии • Задачи • Собесы
#GoToProduction
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24❤4🥱2
Разработчик решил не брать готовые решения типа Auth0 и создал полноценную систему двухфакторной аутентификации с нуля.
Результат — проект TickTOTP, который показывает, что за теми самыми 6-значными кодами, меняющимися каждые 30 секунд, стоит довольно элегантная логика.
Что внутри
Стек: Go для бэкенда, React + Vite + Tailwind для фронта, Redis для хранения секретов, всё упаковано в Docker Compose.
Три основных эндпоинта:
• Генерация TOTP-секрета и QR-кода
• Верификация 6-значного кода
• Проверка статуса пользователя
Автор отмечает, что для прода нужно добавить rate limiting, HTTPS, JWT-аутентификацию и резервные коды. Но как образовательный проект и база для своего решения — отличный старт.
📍 Навигация: Вакансии • Задачи • Собесы
#GoDeep
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤4🤩2
Go идеален для бэкенда. Но «мозги» пишут на Python
Вам не обязательно переходить на Python полностью, но понимать архитектуру AI-агентов необходимо, чтобы эффективно интегрировать их в свои Go-сервисы через API или gRPC.
На курсе мы разбираем архитектуру агентов: как они хранят состояние, как работают с инструментами (Tools) и протоколом MCP. Эти знания помогут вам строить надёжные мосты между высокопроизводительным Go-бэкендом и AI-логикой.
Что полезного для Go-разработчика:
— Понимание Model Context Protocol (MCP).
— Архитектура мультиагентных систем (оркестрация).
— Работа с векторными базами данных (актуально для любого языка).
Разобраться в архитектуре AI-систем
Вам не обязательно переходить на Python полностью, но понимать архитектуру AI-агентов необходимо, чтобы эффективно интегрировать их в свои Go-сервисы через API или gRPC.
На курсе мы разбираем архитектуру агентов: как они хранят состояние, как работают с инструментами (Tools) и протоколом MCP. Эти знания помогут вам строить надёжные мосты между высокопроизводительным Go-бэкендом и AI-логикой.
Что полезного для Go-разработчика:
— Понимание Model Context Protocol (MCP).
— Архитектура мультиагентных систем (оркестрация).
— Работа с векторными базами данных (актуально для любого языка).
Разобраться в архитектуре AI-систем
😁21🥱10❤1😢1🌚1
Собрали для вас самое главное за неделю.
— Fiber v3.0.0
— gopdfsuit v4.2.0
— Первый заказ на фрилансе
— Dota 2 + Go
— Ergo Framework v3.2.0
— Go 1.25.7, 1.24.13 и 1.26rc3
📍 Навигация: Вакансии • Задачи • Собесы
#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🌚1
Разработчик сделал утилиту fixr, которая приводит текст к единому стилю форматирования. Документация, заметки в проектах и письма коллегам выглядят аккуратно без ручной правки.
fixr использует ИИ, можно указать ключи для ChatGPT, Claude и даже на локальные LLM, поднятые с помощью ollama.
Установка:
git clone https://github.com/stadicshock/fixr && cd fixr
go build -o fixr .
Настроить конфиг:
./fixr config init
# В ~/.fixr/config.yaml указать ключ
Исправить текст из буфера обмена:
./fixr fix -c
📍 Навигация: Вакансии • Задачи • Собесы
#GoToProduction
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱7❤3👍1😁1