Golang вопросы собеседований
14.9K subscribers
790 photos
15 videos
1 file
584 links
@notxxx1 - админ

@Golang_google - Golang для разработчиков

@itchannels_telegram - 🔥лучшие из ит

@golangl - chat

@golangtests - golang tests

@golang_jobsgo - go chat jobs

@ai_machinelearning_big_data - AI

@data_analysis_ml

РКН: clck.ru/3FmtKd
Download Telegram
🚀 Фреймворк для разработки LLM-приложений на Go

Eino — это мощный фреймворк для создания приложений на основе LLM, вдохновленный лучшими практиками из сообщества. Он предлагает простоту, масштабируемость и надежность, а также множество компонентов и инструментов для упрощения разработки.

🚀 Основные моменты:
- Удобные абстракции и реализации компонентов для LLM-приложений.
- Система компоновки с поддержкой строгой типизации и управления потоками.
- Четкие и простые API для разработчиков.
- Набор лучших практик и примеров использования.
- Инструменты для визуализации и отладки на всех этапах разработки.

📌 GitHub: https://github.com/cloudwego/eino

#go
👍43🔥3🥰1
👣 Generics-first HTTP клиент для Go

httpx - это тонкая обертка над стандартным net/http, сделанная с упором на generics.

Идея простая:
- сохранить всю мощь и escape hatches обычного http.Client
- но сделать 90% повседневных запросов максимально простыми и типобезопасными

Что дает httpx
- типизированные запросы и ответы через generics
- минимум бойлерплейта для обычных GET/POST
- при необходимости — полный доступ к низкоуровневому API
- не прячет net/http, а аккуратно его расширяет

Подходит когда:
- надо быстро писать HTTP-код без ручного json.Unmarshal
- важна типобезопасность
- не хочется тяжелых фреймворков

Хороший пример того, как generics в Go можно использовать по делу, а не ради абстракций.

https://github.com/goforj/httpx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63🔥2😢1
🔍 Понимание процессов с witr

witr помогает выяснить, почему процессы или службы работают на вашем компьютере. Он предоставляет ясное объяснение причин существования процессов, связывая их с их источниками и контекстом. Это упрощает отладку и понимание системных процессов без необходимости использования нескольких инструментов.

🚀 Основные моменты:
- Объясняет, почему процесс существует
- Упрощает диагностику и отладку
- Поддерживает анализ по имени, PID и порту
- Выводит данные в удобочитаемом формате
- Безопасен и не требует конфигурации

📌 GitHub: https://github.com/pranshuparmar/witr
🔥151👍1
👣 Chitosocket: сверхлёгкая библиотека WebSockets для Go

Проект предлагает простую и быструую реализацию WebSocket-соединений с поддержкой *room systems* — как в чатах или игровых серверах.

#golang

https://github.com/sairash/chitosocket
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥5🤔53
💡 Portmaster: бесплатный open-source фаервол, который берет на себя всю тяжелую работу по защите сети.

Он помогает вернуть контроль над соединениями приложений и восстановить приватность — видно, кто и куда стучится, и можно быстро всё заблокировать.

Что умеет Portmaster:
• перехватывает весь сетевой трафик
• блокирует трекеры и нежелательные подключения
• позволяет настраивать правила для каждого приложения
• работает локально, без «облака»

Отличный вариант, если хочешь прозрачности в сетевых запросах и меньше лишней телеметрии.

GitHub: https://github.com/safing/portmaster
👍84🥰1
🚀 Фреймворк для разработки LLM-приложений на Go

Eino - это мощный фреймворк для создания приложений на основе LLM, вдохновленный лучшими практиками из сообщества. Он предлагает простоту, масштабируемость и надежность, а также множество компонентов и инструментов для упрощения разработки.

🚀 Основные моменты:
- Удобные абстракции и реализации компонентов для LLM-приложений.
- Система компоновки с поддержкой строгой типизации и управления потоками.
- Четкие и простые API для разработчиков.
- Набор лучших практик и примеров использования.
- Инструменты для визуализации и отладки на всех этапах разработки.

📌 GitHub: https://github.com/cloudwego/eino

#go
6🤔3👍1
🔍 Coroot — принципиально новый подход к мониторингу приложений. Этот open-source инструмент использует eBPF для автоматического сбора метрик, логов и трейсов без необходимости ручной интеграции. Он не просто собирает данные, а превращает их в готовые инсайты.

Инструмент обладает встроенной аналитикой. Система автоматически строит карту сервисов, выявляет аномалии и даже отслеживает SLO. При этом не нужно настраивать сложные дашборды — достаточно развернуть контейнер в Kubernetes или через Docker.

🤖 GitHub
👍7🔥3🥰2
👣 Websocket

Если начинаешь новый проект на Go, стоит смотреть в сторону этой либо.

Почему это хорошее решение сейчас:

- чистый и современный API
- минималистичная и идиоматичная библиотека
- активно поддерживается
- быстрее аналогов в реальных нагрузках

Главное отличие по производительности - zero-alloc чтение и запись.
У gorilla/websocket есть накладные аллокации, которые складываются при высоких RPS.

go get github.com/coder/websocket

Итого: меньше кода, проще поддерживать, выше скорость - отличный вариант для новых сервисов.

github.com/coder/websocket
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍52🌭2👏1
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Чек-лист для запуска 1000 задач с использованием пула воркеров в Go.

Сохрани себе: Чтобы запустить 1000 задач параллельно в Go, тротлинг и использование пула воркеров - ключ к сохранению ресурсов сервера. Применяй следующий пример с использованием канала и горутин.



package main
import (
"fmt"
"sync"
)
func worker(id int, wg *sync.WaitGroup) {
defer wg.Done()
fmt.Printf("Worker %d is processing\n", id)
}
func main() {
const numWorkers = 100
const numTasks = 1000
var wg sync.WaitGroup
taskChan := make(chan struct{}, numWorkers)
for i := 0; i < numTasks; i++ {
taskChan <- struct{}{} // Добавляем задачу в канал
🥴17🤣161👏1
🔥 Go HTTP Connection Pools - то, что ломает производительность «тихонько»

Очень многие пишут HTTP-клиенты в Go так, будто каждый запрос - независимый.
А потом удивляются:
- почему нагрузка растёт
- почему latency прыгает
- почему CPU уходит в космос
- почему сервис «умирает» на большом количестве запросов

Причина часто одна - пул соединений и то, как Go реально переиспользует TCP/TLS.

Ключевая мысль:
http.Client в Go - должен быть долгоживущим
создавать http.Client{} на каждый запрос - почти всегда ошибка

Почему это важно:
- TCP соединения переиспользуются через keep-alive
- TLS рукопожатие дорогое (особенно при высокой частоте запросов)
- пул соединений живёт внутри Transport
- если вы постоянно создаёте новые Transport`/`Client - вы постоянно пересоздаёте пул

Что стоит запомнить:
- один `http.Client` на сервис
- настраивайте Transport под нагрузку
- следите за MaxIdleConns, MaxIdleConnsPerHost, IdleConnTimeout
- таймауты - обязательны (иначе получите вечные зависания)

Если ваш сервис ходит в другие сервисы - connection pool это не «оптимизация», а база.

Источник: davidbacisin.com/writing/golang-http-connection-pools-1
👍112🔥2
📌 GitHub: gocronx-team / gocron — планировщик задач для Go

Если ты пишешь на Go и тебе нужно запускать фоновые задачи по расписанию - этот проект стоит добавить в закладки.

gocron - это лёгкий и удобный планировщик задач, встроенный прямо в приложение. По сути, это программный аналог cron, но без внешних конфигов и системных настроек.

🚀 Что умеет

- Запуск задач каждые N секунд / минут / часов
- Планирование на конкретное время
- Работа внутри Go-приложения
- Подходит для сервисов, ботов, API, микросервисов
- Простая интеграция без тяжёлых зависимостей

Почему лучше обычного cron

- Управляется кодом
- Не зависит от ОС
- Работает внутри контейнеров без лишней настройки
- Легко масштабируется вместе с сервисом

Идеальный инструмент, когда нужно, чтобы приложение само управляло своим расписанием, а не полагалось на системный cron.

🔗 github.com/gocronx-team/gocron
🔥83👍1
🔥 Полезная подборка каналов только код, практика и самые передовые инструменты, которые используют разработчики прямо сейчас.👇

🖥 ИИ: t.me/ai_machinelearning_big_data

🖥 Python: t.me/pythonl

🖥 Linux: t.me/linuxacademiya

🖥 C++ t.me/cpluspluc

🖥 Docker: t.me/DevopsDocker

🖥 Хакинг: t.me/linuxkalii

🖥 Devops: t.me/DevOPSitsec

👣 Golang: t.me/Golang_google

🖥 Аналитика: t.me/data_analysis_ml

🖥 Javascript: t.me/javascriptv

🖥 C#: t.me/csharp_ci

🖥 Java: t.me/javatg

🖥 Базы данных: t.me/sqlhub

👣 Rust: t.me/rust_code

🤖 Технологии: t.me/vistehno

💰 Экономика и инвестиции в ИИ t.me/financeStable

💼 Актуальные вакансии: t.me/addlist/_zyy_jQ_QUsyM2Vi

🖥 Chatgpt бот в тг: t.me/Chatgpturbobot

📚 Бесплатные ит-книги: https://t.me/addlist/HwywK4fErd8wYzQy

🖥Подборка по Golang: https://t.me/addlist/MUtJEeJSxeY2YTFi

⚡️ Лучшие ИИ ресурсы: https://t.me/addlist/2Ls-snqEeytkMDgy

Самое лучшее в этом: ты учишься даже тогда, когда “нет времени, просто потому что читаешь правильную ленту.
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2🥰1
🔥 Нашёл интересный проект: go-openexr - чистая реализация формата OpenEXR на Go.

OpenEXR - это high dynamic range (HDR) формат, который используют в:
- VFX / кино-пайплайнах
- 3D-рендере
- профессиональной графике
- сценах, где важны точные значения яркости (не просто 8-bit RGB)

Что важно:
pure Go (без C-биндингов)
можно читать/писать OpenEXR прямо в Go-проектах
удобно для серверных пайплайнов, рендера, обработки изображений и ML-датасетов

Если работаешь с графикой, рендером, генерацией данных или компьютерным зрением на Go - мастхев.

GitHub: github.com/mrjoshuak/go-openexr

#golang #OpenEXR #HDR #ImageProcessing
🔥5👍1😍1
This media is not supported in your browser
VIEW IN TELEGRAM
👣 Snitch - это “человеческий ss/netstat” 🐀

Если ты когда-либо открывал ss -tulpn и думал: “что за каша?” — вот решение.

Snitch показывает сетевые соединения нормальным, читаемым видом:
- таблица в терминале
- интерактивный TUI-интерфейс
- быстрый просмотр: кто куда подключён и на каких портах

По сути — это ss/netstat, но сделанный для людей, а не для страданий.

Установка:


go install github.com/karol-broda/snitch@latest


📌 GitHub: github.com/karol-broda/snitch
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥5🥰3
👣 Go 1.26 - что нового в релизе

Вышел Go 1.26 - обновление, которое делает язык быстрее, стабильнее и удобнее для разработки продакшен-сервисов.

Вот ключевые изменения.

Производительность и компилятор
- Улучшена оптимизация компилятора — меньше аллокаций и быстрее выполнение
- Снижение времени сборки для крупных проектов
- Более эффективная работа с generics и inline-функциями

Runtime
- Улучшения в работе garbage collector — ниже паузы и лучшее использование памяти
- Оптимизация планировщика горутин
- Более стабильная работа под высокой нагрузкой

Стандартная библиотека
- Расширения и улучшения в net/http для более эффективной работы серверов
- Обновления криптографии и безопасности
- Улучшения в работе с файловой системой и сетью

Инструменты разработчика
- Улучшения в go vet — больше проверок потенциальных ошибок
- Улучшения диагностики компилятора и сообщений об ошибках
- Более стабильная работа go test и профилирования

Почему это важно

Каждый релиз Go делает фокус на:
- стабильности в продакшене
- предсказуемой производительности
- улучшении DX без усложнения языка

Go 1.26 — это не про новые «фичи», а про то, чтобы ваш код работал быстрее и надёжнее без изменений.

Документация: https://go.dev/doc/go1.26
Видео: https://www.youtube.com/watch?v=59_vyLcwh3g
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18😍75🥱1
👻 gh-ost - инструмент для миграций схемы MySQL без даунтайма.

Если тебе надо сделать ALTER TABLE на большой продовой таблице и не положить сервис - gh-ost это прям must-have.

Большинство online-schema-change тулов используют триггеры и создают лишнюю нагрузку.
А gh-ost идёт по другому пути:

Triggerless - вообще без триггеров
Читает изменения через binlog stream и асинхронно применяет их к “ghost table”
Даёт полный контроль над процессом миграции:
- пауза/резюм
- throttle (снижение нагрузки)
- аудит и статус
- безопасный cut-over

Как это работает (по-простому):
1) создаётся “ghost table” с новой схемой
2) данные копируются постепенно
3) параллельно изменения ловятся из binlog
4) в конце таблицы меняются местами почти мгновенно

Идеально для:
🔥 таблиц на десятки миллионов строк
🔥 production-систем
🔥 миграций без блокировок

📌 Репо: github.com/github/gh-ost
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍3🥰2
👣 Andurel - Rails-подобный фреймворк для Go

Если вам нравится скорость разработки в Rails, но вы хотите производительность и надёжность Go — стоит посмотреть на Andurel.

Главная идея:
минимум бойлерплейта — максимум скорости разработки.

Что даёт Andurel

Мгновенный CRUD
- Генерация полноценного ресурса одной командой
- Готовый backend, формы и логика
- Код остаётся вашим — можно свободно менять и расширять

Live Reload
- Горячая перезагрузка Go, шаблонов и CSS
- Быстрый цикл разработки без ручных перезапусков

Типобезопасность на всех уровнях
- SQLC — безопасный SQL
- Templ — типобезопасные HTML-шаблоны
- Go — вся бизнес-логика

Batteries Included
Встроено из коробки:
- Echo (HTTP)
- фоновые задачи
- сессии и аутентификация
- CSRF-защита
- email
- telemetry
- опционально: Docker, workflows, AWS SES

PostgreSQL-first
- pgx драйвер
- River для очередей
- UUID support

Философия

Сгенерировать всё один раз → дальше код полностью под вашим контролем.
Никакой магии, которая ломает архитектуру позже.

Почему это интересно

Тренд Go-экосистемы сейчас —
меньше фреймворков, больше генерации и типобезопасности.

Andurel даёт опыт уровня Rails,
но с производительностью и простотой Go.
#golang

https://github.com/mbvlabs/andurel

🚀Max
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍6😁4🔥2
👣 В Go 1.26 логирование стало намного удобнее.

Добавили slog.NewMultiHandler, теперь можно отправлять логи сразу в несколько мест.

Что это даёт:

• Один вызов → несколько выходов
• В консоль — в текстовом виде
• В файл — в JSON
• Разные уровни для разных обработчиков

Пример:


h := slog.NewMultiHandler(
slog.NewTextHandler(os.Stdout, nil),
slog.NewJSONHandler(logFile, &slog.HandlerOptions{
Level: slog.LevelWarn,
}),
)

logger := slog.New(h)

logger.Info("hello")
// уйдёт в stdout (text)
// и в файл (json, если уровень Warn+)


Раньше приходилось:

• писать обёртки
• дублировать логгеры
• или использовать сторонние библиотеки

Теперь всё это есть в стандартной библиотеке.

https://www.youtube.com/shorts/zpXs8OUVlyQ

🚀Max

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4010🔥9❤‍🔥2🌚1💯1
🚀 Управление браузером для AI-агентов

PinchTab — минималистичный инструмент для автоматизации браузера, созданный специально для AI.

Что внутри:

- Один Go-бинарник — всего 12 MB
- Ноль конфигурации — скачал и запустил
- Подход accessibility-first — управление через доступные элементы интерфейса, а не хрупкие селекторы

Почему это важно для AI-агентов:

- Стабильная работа даже при изменении верстки
- Меньше «ломается», чем классическая автоматизация через DOM
- Отлично подходит для:
- автономных агентов
- web-операций
- тестирования
- автоматизации задач в браузере

Тренд очевиден:

AI всё чаще работает не через API,
а напрямую с интерфейсами — как человек.

Лёгкий бинарник + Go + надёжность = отличный инструмент для агентных систем.

GitHub: https://github.com/pinchtab/pinchtab

#golang #ai #automation

🚀Max

@golang_interview
🔥8👍54
👣 Go 1.26: go fix теперь реально модернизирует код

В Go 1.26 команда полностью переписала подкоманду go fix.
Теперь это не просто инструмент совместимости, а система для автоматической модернизации кода.

Что делает новый go fix

* находит устаревшие конструкции
* переписывает код под современные возможности языка
* обновляет использование стандартной библиотеки
* улучшает код без ручного рефакторинга

Как использовать


go fix ./...


Под капотом - набор анализаторов, которые ищут возможности улучшения, а не только ошибки.
Инструмент эволюционирует в сторону умного статического анализа.

Ключевая идея релиза
Self-service анализ.

Компании и мейнтейнеры смогут:

* добавлять собственные правила
* кодировать внутренние стандарты
* автоматически применять best practices ко всему проекту

Языки начинают сами улучшать код за разработчика.

Статический анализ становится частью инженерной культуры, а не отдельным инструментом.

https://go.dev/blog/gofix

🚀Max

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👍239🔥7
🐶 Watchdog на Go: уроки из реального мониторинга

Крутая статья о том, как автор собирал monitoring system на Go и какие грабли поймал по дороге.

Это не “теория про метрики”.
Это практический разбор:
- как проектировать watchdog/health-check систему
- как ловить зависания и деградации сервиса
- как правильно думать про таймауты, ретраи и алерты
- почему “просто ping” - вообще не мониторинг 😄

Если пишешь микросервисы на Go или строишь инфраструктуру - обязательно сохрани.

Ссылка: nightsnest.hashnode.dev/watchdog-lessons-from-building-a-monitoring-system-in-go
10🔥6🥰3🤣3