Forwarded from Golang вопросы собеседований
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - mgechev/revive: 🔥 ~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for golint
🔥 ~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for golint - mgechev/revive
🤬6🔥4❤3👍1
Пока большинство используют агентов как чат-бота, возникает знакомая проблема: каждую задачу приходится контролировать вручную.
Ты проверяешь шаги, перезапускаешь, исправляешь контекст. В какой-то момент это превращается не в автоматизацию, а в дополнительную работу.
В статье представлено очень простое решение. Перестать воспринимать агента как собеседника и начать относиться к нему как к инструменту.
Подход, который предлагают авторы - делать агентов в виде CLI-утилит. У каждого агента одна чёткая задача, понятный вход и предсказуемый выход.
Никаких долгих сессий и “памяти в голове модели” - всё состояние хранится в файлах. Конфигурация лежит рядом, логика описана явно, запуск происходит одной командой.
В этом формате агент ведёт себя как обычный Go-инструмент. Его можно обернуть в скрипт, соединить с другими через пайпы, прогнать в dry-run и увидеть весь контекст до выполнения. Если что-то пошло не так — это дебажится так же, как любой другой CLI.
Главное изменение - не пытаться сделать одного “умного” агента. Лучше работает обратное: несколько простых агентов, каждый делает свою часть. Композиция вместо усложнения.
В итоге исчезает сама необходимость “следить” за агентом. Ты запускаешь задачу, получаешь результат и идёшь дальше. Если без постоянного контроля ничего не работает - проблема не в модели, а в архитектуре.
Подробности в статье: https://dev.to/jrswab/how-to-stop-babysitting-your-ai-agents-4376
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🤬12❤10🔥5😁4🤔3
Готовый набор скилов, чтобы ускорить разработку на Go:
• готовая структура проекта как в продакшене
• линтинг и стандарты кода
• работа с зависимостями
• тестирование и CI
• лучшие практики для масштабируемых сервисов
Репозиторий: https://github.com/samber/cc-skills-golang
#golang
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤22🔥9😁5🤬3🥰1
Solod: новый язык, который транспилирует Go в чистый C. Без рантайма, без сборщика мусора
Антон Жиянов сделал Solod (So) - строгое подмножество Go, которое компилируется в читаемый C11.
Не в бинарник через Go-компилятор, а именно в исходный C-код. Файл main.go превращается в main.h + main.c.
Идея простая: пишешь на Go (со всем его тулингом, LSP, подсветкой, тестами), а на выходе получаешь C без рантайма, без GC, без скрытых аллокаций.
Всё по умолчанию на стеке, хип только через стандартную библиотеку и явно.
Из Go взяли структуры, методы, интерфейсы, слайсы, множественные возвраты, defer. Осознанно выкинули горутины, каналы, замыкания и дженерики.
Язык максимально простой, сопоставим по сложности с Hare.
Отдельно интересен C-интероп: вызывать C из So и So из C можно без CGO и без накладных расходов. Строки и слайсы автоматически конвертируются в C-типы при вызове внешних функций.
Карты (maps) фиксированного размера, на стеке, с линейным поиском. append работает только в пределах начальной ёмкости. make аллоцирует на стеке через alloca.
Философия: если нужен хип, бери пакет из стандартной библиотеки и управляй памятью вручную.
Пока не для продакшена, но концепция интерсная.
По сути это «Go как синтаксический сахар для C» с нулевым оверхедом.
Для embedded, системного программирования и всех, кто любит C, но устал от его синтаксиса.
https://antonz.org/solod/
👣 Полезные ресурсы Go 🚀Max
@Golang_google
Антон Жиянов сделал Solod (So) - строгое подмножество Go, которое компилируется в читаемый C11.
Не в бинарник через Go-компилятор, а именно в исходный C-код. Файл main.go превращается в main.h + main.c.
Идея простая: пишешь на Go (со всем его тулингом, LSP, подсветкой, тестами), а на выходе получаешь C без рантайма, без GC, без скрытых аллокаций.
Всё по умолчанию на стеке, хип только через стандартную библиотеку и явно.
Из Go взяли структуры, методы, интерфейсы, слайсы, множественные возвраты, defer. Осознанно выкинули горутины, каналы, замыкания и дженерики.
Язык максимально простой, сопоставим по сложности с Hare.
Отдельно интересен C-интероп: вызывать C из So и So из C можно без CGO и без накладных расходов. Строки и слайсы автоматически конвертируются в C-типы при вызове внешних функций.
Карты (maps) фиксированного размера, на стеке, с линейным поиском. append работает только в пределах начальной ёмкости. make аллоцирует на стеке через alloca.
Философия: если нужен хип, бери пакет из стандартной библиотеки и управляй памятью вручную.
Пока не для продакшена, но концепция интерсная.
По сути это «Go как синтаксический сахар для C» с нулевым оверхедом.
Для embedded, системного программирования и всех, кто любит C, но устал от его синтаксиса.
https://antonz.org/solod/
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁40❤12🤬11🔥10👍4👏3😱3🥰2🤔2🤯1
🚀 CI/CD без YAML на Go
Atkins - это пайплайн-раннер с концепцией skills
👉 https://github.com/titpetric/atkins
📌 Главное:
- Запускаешь задачи как команды, без YAML
- Skills = переиспользуемые пайплайны
- Подходит для CI/CD и локальной автоматизации
- Можно дергать как агент (в том числе через LLM)
По сути: DevOps превращается в код + команды, а не конфиги.
#golang #DevOps
Atkins - это пайплайн-раннер с концепцией skills
👉 https://github.com/titpetric/atkins
📌 Главное:
- Запускаешь задачи как команды, без YAML
- Skills = переиспользуемые пайплайны
- Подходит для CI/CD и локальной автоматизации
- Можно дергать как агент (в том числе через LLM)
По сути: DevOps превращается в код + команды, а не конфиги.
#golang #DevOps
👍14🔥3🤬3❤2😁1
Media is too big
VIEW IN TELEGRAM
🚀 Cursor 3 теперь не IDE, а оркестратор агентов
📌 Главное:
- Запускаешь сколько угодно агентов: локально, SSH, облако
- Работаешь сразу с несколькими репами и окружениями
- Переносишь сессии между облаком и локалкой без потерь
- Агенты сами делают демки и скриншоты
- Доводишь код до merged PR прямо в интерфейсе
Плюс:
встроенный браузер, маркетплейс с MCP, субагенты и skills
👉 https://cursor.com/blog/cursor-3лишь часть процесса
👣 Полезные ресурсы Go 🚀Max
@Golang_google
📌 Главное:
- Запускаешь сколько угодно агентов: локально, SSH, облако
- Работаешь сразу с несколькими репами и окружениями
- Переносишь сессии между облаком и локалкой без потерь
- Агенты сами делают демки и скриншоты
- Доводишь код до merged PR прямо в интерфейсе
Плюс:
встроенный браузер, маркетплейс с MCP, субагенты и skills
👉 https://cursor.com/blog/cursor-3лишь часть процесса
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🤬16❤6🔥4👍2
Media is too big
VIEW IN TELEGRAM
Врум-врум: разгоняемся на ВК ДжейТи Митап для Go-разработчиков!
Встречаемся в двух городах:
📍 Москва, 4 апреля
📍 Санкт-Петербург, 11 апреля
Формат — только офлайн, без трансляций. В программе — доклады от экспертов VK и другие активности.
Москва
• как боролись с вынужденными нагрузками и сократили число запросов с 400 млн до 200 тысяч
• как строится безопасная платформа мини-приложений с изоляцией, мультитенантностью и контролем ресурсов
Дальше выбирайте трек: архитектурная задача с разбором от экспертов VK или обсуждение новостей индустрии в подкасте с Никитой Галушко, ведущим разработчиком API ВКонтакте, членом программного комитета Golang Conf/Голанг Конф. А в завершение пит-стоп — вечеринка для нетворкинга.
Санкт-Петербург
• как строится безопасная платформа мини-приложений с изоляцией, мультитенантностью и контролем ресурсов
• устройство эффективного и быстрого клиента для Tarantool на Go — от наивного кода до оптимизаций с минимумом аллокаций и горутин
После докладов — командное решение архитектурной задачи и неформальное общение с экспертами и коллегами.
Приходите за практической пользой и обменом идеями! Регистрация по ссылке.
Встречаемся в двух городах:
📍 Москва, 4 апреля
📍 Санкт-Петербург, 11 апреля
Формат — только офлайн, без трансляций. В программе — доклады от экспертов VK и другие активности.
Москва
• как боролись с вынужденными нагрузками и сократили число запросов с 400 млн до 200 тысяч
• как строится безопасная платформа мини-приложений с изоляцией, мультитенантностью и контролем ресурсов
Дальше выбирайте трек: архитектурная задача с разбором от экспертов VK или обсуждение новостей индустрии в подкасте с Никитой Галушко, ведущим разработчиком API ВКонтакте, членом программного комитета Golang Conf/Голанг Конф. А в завершение пит-стоп — вечеринка для нетворкинга.
Санкт-Петербург
• как строится безопасная платформа мини-приложений с изоляцией, мультитенантностью и контролем ресурсов
• устройство эффективного и быстрого клиента для Tarantool на Go — от наивного кода до оптимизаций с минимумом аллокаций и горутин
После докладов — командное решение архитектурной задачи и неформальное общение с экспертами и коллегами.
Приходите за практической пользой и обменом идеями! Регистрация по ссылке.
🤬14❤5
В Go появился быстрый immutable map - альтернатива стандартному map
Это map, который нельзя менять после создания, зато он сильно быстрее и экономнее по памяти.
Зачем это нужно:
- много данных (миллионы ключей)
- данные не меняются
- важна скорость чтения
Обычный map в Go:
- ~56 байт на ключ
Immutable map:
- ~9 байт на ключ
- почти в 3 раза быстрее
Как использовать
Статья: https://lemire.me/blog/2026/03/29/a-fast-immutable-map-in-go/
Код: https://github.com/lemire/constmap
Это map, который нельзя менять после создания, зато он сильно быстрее и экономнее по памяти.
Зачем это нужно:
- много данных (миллионы ключей)
- данные не меняются
- важна скорость чтения
Обычный map в Go:
- ~56 байт на ключ
Immutable map:
- ~9 байт на ключ
- почти в 3 раза быстрее
Как использовать
package main
import (
"fmt"
"log"
"github.com/lemire/constmap"
)
func main() {
keys := []string{"apple", "banana", "cherry"}
values := []uint64{100, 200, 300}
cm, err := constmap.New(keys, values)
if err != nil {
log.Fatal(err)
}
fmt.Println(cm.Map("banana")) // 200
}
Статья: https://lemire.me/blog/2026/03/29/a-fast-immutable-map-in-go/
Код: https://github.com/lemire/constmap
🔥48👍9🤔8❤7
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Таблицы теперь живут прямо в терминале
Да, без Excel и без GUI.
Sheets - это инструмент, который позволяет читать и редактировать CSV прямо в терминале через TUI или CLI.
Что внутри:
- полноценная работа с таблицами без выхода из терминала
- vim-подобные хоткеи и навигация
- быстрые правки без лишнего оверхеда
Работает на Windows, macOS и Linux.
Идеально, если ты живёшь в терминале и не хочешь дергаться между окнами.
Excel начинает нервничать.
https://github.com/maaslalani/sheets
Да, без Excel и без GUI.
Sheets - это инструмент, который позволяет читать и редактировать CSV прямо в терминале через TUI или CLI.
Что внутри:
- полноценная работа с таблицами без выхода из терминала
- vim-подобные хоткеи и навигация
- быстрые правки без лишнего оверхеда
Работает на Windows, macOS и Linux.
Идеально, если ты живёшь в терминале и не хочешь дергаться между окнами.
Excel начинает нервничать.
https://github.com/maaslalani/sheets
👍22😁13🔥8❤7🎉1
🚨 Go теперь может напрямую работать с локальными LLM без API
Kronk - это попытка убрать прослойку SaaS и дать Go доступ к моделям напрямую.
По сути это SDK и модельный сервер, который позволяет встроить локальные LLM прямо в приложение. Под капотом используется llama.cpp, а API ощущается как OpenAI-совместимый.
Ты пишешь обычный Go-код и вызываешь модель так же, как привык через API. Только всё крутится локально. Без внешних запросов и без зависимости от провайдеров.
Есть стриминг, embeddings, rerank, токенизация. Всё через один интерфейс.
Отдельно важен момент с перфомансом. Проект заточен под hardware acceleration и работу с GGUF моделями. Это значит, что можно выжимать максимум из локального железа без костылей.
https://github.com/ardanlabs/kronk
👣 Полезные ресурсы Go 🚀Max
@Golang_google
#golang #go
Kronk - это попытка убрать прослойку SaaS и дать Go доступ к моделям напрямую.
По сути это SDK и модельный сервер, который позволяет встроить локальные LLM прямо в приложение. Под капотом используется llama.cpp, а API ощущается как OpenAI-совместимый.
Ты пишешь обычный Go-код и вызываешь модель так же, как привык через API. Только всё крутится локально. Без внешних запросов и без зависимости от провайдеров.
Есть стриминг, embeddings, rerank, токенизация. Всё через один интерфейс.
Отдельно важен момент с перфомансом. Проект заточен под hardware acceleration и работу с GGUF моделями. Это значит, что можно выжимать максимум из локального железа без костылей.
https://github.com/ardanlabs/kronk
@Golang_google
#golang #go
Please open Telegram to view this post
VIEW IN TELEGRAM
❤23🔥15🥰4🤬2👍1
🚀 Как держать 1M SSE соединений на одной машине
Разработчик разобрал, как строил MCPSprut - MCP-хаб, рассчитанный на десятки тысяч и даже миллионы активных SSE стримов.
Это уже не про «запустил сервер и всё работает». Каждое соединение - это нагрузка на память, сокеты и планировщик. Наивные решения умирают очень быстро.
Вся магия в инженерии:
• максимально дешёвые соединения
• контроль за горутинами
• минимум аллокаций
• аккуратная работа с сетью и файловыми дескрипторами
Go выбирают для high-load систем - можно выжать максимум из одной машины без сложной инфраструктуры.
Контекст важный. MCP и агентные системы всё чаще используют стриминг, а значит количество постоянных соединений растёт кратно.
Вопрос уже не в том, как обрабатывать запросы, а как держать тысячи и миллионы клиентов онлайн одновременно.
Хороший кейс, если работаешь с real-time, стримингом или агентами и упираешься в лимиты одной машины
Подробности: https://ernest-khas.hashnode.dev/part-1-10k-1m-or-more-active-sse-streams-building-mcpsprut-mcp-hub
👣 Полезные ресурсы Go 🚀Max
@Golang_google
Разработчик разобрал, как строил MCPSprut - MCP-хаб, рассчитанный на десятки тысяч и даже миллионы активных SSE стримов.
Это уже не про «запустил сервер и всё работает». Каждое соединение - это нагрузка на память, сокеты и планировщик. Наивные решения умирают очень быстро.
Вся магия в инженерии:
• максимально дешёвые соединения
• контроль за горутинами
• минимум аллокаций
• аккуратная работа с сетью и файловыми дескрипторами
Go выбирают для high-load систем - можно выжать максимум из одной машины без сложной инфраструктуры.
Контекст важный. MCP и агентные системы всё чаще используют стриминг, а значит количество постоянных соединений растёт кратно.
Вопрос уже не в том, как обрабатывать запросы, а как держать тысячи и миллионы клиентов онлайн одновременно.
Хороший кейс, если работаешь с real-time, стримингом или агентами и упираешься в лимиты одной машины
Подробности: https://ernest-khas.hashnode.dev/part-1-10k-1m-or-more-active-sse-streams-building-mcpsprut-mcp-hub
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤7🔥7