Безопасная обработка ошибок в Go- важнее, чем кажется.
В новом гайде от JetBrains разбирают, почему error handling в Go может становиться источником уязвимостей, если с ним работать неаккуратно. В Go ошибки — это обычные значения, которые можно передавать, оборачивать и анализировать. Но именно из-за этого они легко могут утекать наружу вместе с чувствительными данными.
Типичная проблема, когда внутренние ошибки напрямую возвращаются клиенту. В них могут оказаться:
- пути файлов
- SQL-запросы
- токены и идентификаторы
- stack trace
Такая информация может использоваться для атак или анализа внутренней архитектуры сервиса.
Один из рекомендуемых подходов — разделять внутренние и публичные ошибки.
То есть хранить техническую ошибку внутри системы, а пользователю возвращать безопасное сообщение без деталей.
Также важно:
- не логировать сырые пользовательские данные
- переводить ошибки инфраструктуры (например SQL или API) в доменные ошибки
- не возвращать
- добавлять контекст к ошибкам, но только безопасный
Правильная обработка ошибок помогает не только с безопасностью, но и делает сервисы более стабильными и наблюдаемыми в продакшене.
https://blog.jetbrains.com/go/2026/03/02/secure-go-error-handling-best-practices/
👣 Полезные ресурсы Go 🚀Max
@Golang_google
#golang #go
В новом гайде от JetBrains разбирают, почему error handling в Go может становиться источником уязвимостей, если с ним работать неаккуратно. В Go ошибки — это обычные значения, которые можно передавать, оборачивать и анализировать. Но именно из-за этого они легко могут утекать наружу вместе с чувствительными данными.
Типичная проблема, когда внутренние ошибки напрямую возвращаются клиенту. В них могут оказаться:
- пути файлов
- SQL-запросы
- токены и идентификаторы
- stack trace
Такая информация может использоваться для атак или анализа внутренней архитектуры сервиса.
Один из рекомендуемых подходов — разделять внутренние и публичные ошибки.
То есть хранить техническую ошибку внутри системы, а пользователю возвращать безопасное сообщение без деталей.
Также важно:
- не логировать сырые пользовательские данные
- переводить ошибки инфраструктуры (например SQL или API) в доменные ошибки
- не возвращать
err.Error() напрямую в HTTP-ответах - добавлять контекст к ошибкам, но только безопасный
Правильная обработка ошибок помогает не только с безопасностью, но и делает сервисы более стабильными и наблюдаемыми в продакшене.
https://blog.jetbrains.com/go/2026/03/02/secure-go-error-handling-best-practices/
@Golang_google
#golang #go
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍33❤10🔥8🤔1
- PlantUML — диаграммы
- Mermaid — графы и схемы
- KaTeX — математические формулы
- Live Reload — автоматическое обновление страницы при изменении файлов
Можно редактировать Markdown и сразу видеть результат в браузере со всеми диаграммами и формулами.
github.com/patakuti/markdown-proxy
#golang
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔19👍6❤5🥰3😁3🤬3🤯2
🔥 Полезная подборка каналов только код, практика и самые передовые инструменты, которые используют разработчики прямо сейчас.👇
👣 Golang: t.me/golang_books
🖥 ИИ: 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
🖥 Аналитика: 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
🖥 Подборка по Golang: https://xn--r1a.website/addlist/MUtJEeJSxeY2YTFi
⚡️ Лучшие ИИ ресурсы: https://xn--r1a.website/addlist/2Ls-snqEeytkMDgy
Max ИИ: https://max.ru/ai_machinelearning_big_data
Max Ml: https://max.ru/vistehno
Max python: https://max.ru/pythonl
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Max Java: https://max.ru/javatg
Max Sql: https://max.ru/sqlhub
Max Devops: https://max.ru/DevOPSitsec
Анализ данных: https://max.ru/data_analysis_ml
C++ : https://max.ru/cpluspluc
C#: https://max.ru/csharp_ci
🖥 Chatgpt бот в тг: t.me/Chatgpturbobot
📚 Бесплатные ит-книги: https://xn--r1a.website/addlist/HwywK4fErd8wYzQy
💰 Экономика и инвестиции в ИИ t.me/financeStable
💼 Актуальные вакансии: t.me/addlist/_zyy_jQ_QUsyM2Vi
⚡️ Лучшие ИИ ресурсы: https://xn--r1a.website/addlist/2Ls-snqEeytkMDgy
Max ИИ: https://max.ru/ai_machinelearning_big_data
Max Ml: https://max.ru/vistehno
Max python: https://max.ru/pythonl
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Max Java: https://max.ru/javatg
Max Sql: https://max.ru/sqlhub
Max Devops: https://max.ru/DevOPSitsec
Анализ данных: https://max.ru/data_analysis_ml
C++ : https://max.ru/cpluspluc
C#: https://max.ru/csharp_ci
📚 Бесплатные ит-книги: https://xn--r1a.website/addlist/HwywK4fErd8wYzQy
Please open Telegram to view this post
VIEW IN TELEGRAM
🤬6❤3👍3🔥3😁3🥰2
В гайде не только теория, но и практические паттерны: работа с памятью, конкурентность и реальные узкие места, с которыми сталкиваешься в продакшене.
Гайд только что обновили и добавили больше глубины (атомики, компромиссы в конкурентности и т.д.), так что стоит перечитать его, даже если уже видел.
https://goperf.dev/
@Golang_google
#golang #go
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22❤4🤬4🔥3
Иногда хорошая работа сама находит🕵
У нас есть @job_radar_2gis_bot — он мониторит все ИТ-вакансии 2ГИС и присылает именно те, что подходят по профилю. Для этого нужно отметить направление и формат работы. Как только подходящая вакансия появится, бот пришлёт уведомлялку.
Подключайтесь, новые вакансии уже там🔥
У нас есть @job_radar_2gis_bot — он мониторит все ИТ-вакансии 2ГИС и присылает именно те, что подходят по профилю. Для этого нужно отметить направление и формат работы. Как только подходящая вакансия появится, бот пришлёт уведомлялку.
Подключайтесь, новые вакансии уже там🔥
🔥5
Folio -полезный интервента для работы с PDF в одном инструменте:
• HTML → PDF
• layout engine
• формы и заполнение
• цифровые подписи
• баркоды
• PDF/A (для архивов)
🔗 https://github.com/carlos7ags/folio
#golang
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
❤17👍10🥰4🔥1
Forwarded from Golang вопросы собеседований
⚡️ Sieve - in-memory cache на чистом Go с эвикшеном SIEVE
Если нужен быстрый кэш, но LRU надоел (и по локам, и по “двигай-каждый-hit”), посмотри на реализацию SIEVE от guerinoni - минималистично и практично.
Что внутри
- In-memory cache на Go, без зависимостей и без CGO
- Два режима: thread-safe и single-thread (можно отключить синхронизацию ради скорости)
- Опциональный TTL: протухшие ключи вычищаются лениво при Get/Insert
- Типизированные ключи и значения (generics)
- Покрытие тестами заявлено 100%
Почему SIEVE интереснее LRU
LRU делает “жесткую промоцию” - на каждый hit надо двигать элемент в голову списка.
SIEVE делает “ленивую промоцию”:
- при hit элемент просто помечается visited (один бит)
- порядок очереди не дергается на каждом чтении
А когда кэш переполнен, включается “hand” (указатель-сканер), который идет от хвоста и:
- если элемент visited - снимает флаг и двигается дальше
- если элемент не visited - именно его и выкидывает
В итоге популярные элементы выживают, а одноразовые быстро вылетают, при этом hits дешевле по работе и локам.
Именно на веб-подобных Zipf-нагрузках это часто дает хороший miss ratio при простой реализации.
Быстрый старт (как в README)
Когда использовать
- High-QPS сервисы, где важна дешевизна cache-hit
- Внутрисервисный кэш “на горячие ключи” с перекосом в популярность
- Когда хочется проще, чем ARC/SLRU, но эффективнее типичного FIFO/LRU в многопотоке
github.com/guerinoni/sieve
#golang #go, #cache
Если нужен быстрый кэш, но LRU надоел (и по локам, и по “двигай-каждый-hit”), посмотри на реализацию SIEVE от guerinoni - минималистично и практично.
Что внутри
- In-memory cache на Go, без зависимостей и без CGO
- Два режима: thread-safe и single-thread (можно отключить синхронизацию ради скорости)
- Опциональный TTL: протухшие ключи вычищаются лениво при Get/Insert
- Типизированные ключи и значения (generics)
- Покрытие тестами заявлено 100%
Почему SIEVE интереснее LRU
LRU делает “жесткую промоцию” - на каждый hit надо двигать элемент в голову списка.
SIEVE делает “ленивую промоцию”:
- при hit элемент просто помечается visited (один бит)
- порядок очереди не дергается на каждом чтении
А когда кэш переполнен, включается “hand” (указатель-сканер), который идет от хвоста и:
- если элемент visited - снимает флаг и двигается дальше
- если элемент не visited - именно его и выкидывает
В итоге популярные элементы выживают, а одноразовые быстро вылетают, при этом hits дешевле по работе и локам.
Именно на веб-подобных Zipf-нагрузках это часто дает хороший miss ratio при простой реализации.
Быстрый старт (как в README)
package main
import (
"fmt"
"time"
"github.com/guerinoni/sieve"
)
func main() {
c := sieve.New.WithTTL(1 * time.Second)
c.Insert(1, "one")
c.Insert(2, "two")
v, ok := c.Get(1)
fmt.Println(v, ok)
}
Когда использовать
- High-QPS сервисы, где важна дешевизна cache-hit
- Внутрисервисный кэш “на горячие ключи” с перекосом в популярность
- Когда хочется проще, чем ARC/SLRU, но эффективнее типичного FIFO/LRU в многопотоке
github.com/guerinoni/sieve
#golang #go, #cache
❤12👍6🤯2🔥1
Forwarded from Golang вопросы собеседований
⚡️ Sieve - in-memory cache на чистом Go с эвикшеном SIEVE
Если нужен быстрый кэш, но LRU надоел (и по локам, и по “двигай-каждый-hit”), посмотри на реализацию SIEVE от guerinoni - минималистично и практично.
Что внутри
- In-memory cache на Go, без зависимостей и без CGO
- Два режима: thread-safe и single-thread (можно отключить синхронизацию ради скорости)
- Опциональный TTL: протухшие ключи вычищаются лениво при Get/Insert
- Типизированные ключи и значения (generics)
- Покрытие тестами заявлено 100%
Почему SIEVE интереснее LRU
LRU делает “жесткую промоцию” - на каждый hit надо двигать элемент в голову списка.
SIEVE делает “ленивую промоцию”:
- при hit элемент просто помечается visited (один бит)
- порядок очереди не дергается на каждом чтении
А когда кэш переполнен, включается “hand” (указатель-сканер), который идет от хвоста и:
- если элемент visited - снимает флаг и двигается дальше
- если элемент не visited - именно его и выкидывает
В итоге популярные элементы выживают, а одноразовые быстро вылетают, при этом hits дешевле по работе и локам.
Именно на веб-подобных Zipf-нагрузках это часто дает хороший miss ratio при простой реализации.
Быстрый старт (как в README)
Когда использовать
- High-QPS сервисы, где важна дешевизна cache-hit
- Внутрисервисный кэш “на горячие ключи” с перекосом в популярность
- Когда хочется проще, чем ARC/SLRU, но эффективнее типичного FIFO/LRU в многопотоке
github.com/guerinoni/sieve
#golang #go, #cache
Если нужен быстрый кэш, но LRU надоел (и по локам, и по “двигай-каждый-hit”), посмотри на реализацию SIEVE от guerinoni - минималистично и практично.
Что внутри
- In-memory cache на Go, без зависимостей и без CGO
- Два режима: thread-safe и single-thread (можно отключить синхронизацию ради скорости)
- Опциональный TTL: протухшие ключи вычищаются лениво при Get/Insert
- Типизированные ключи и значения (generics)
- Покрытие тестами заявлено 100%
Почему SIEVE интереснее LRU
LRU делает “жесткую промоцию” - на каждый hit надо двигать элемент в голову списка.
SIEVE делает “ленивую промоцию”:
- при hit элемент просто помечается visited (один бит)
- порядок очереди не дергается на каждом чтении
А когда кэш переполнен, включается “hand” (указатель-сканер), который идет от хвоста и:
- если элемент visited - снимает флаг и двигается дальше
- если элемент не visited - именно его и выкидывает
В итоге популярные элементы выживают, а одноразовые быстро вылетают, при этом hits дешевле по работе и локам.
Именно на веб-подобных Zipf-нагрузках это часто дает хороший miss ratio при простой реализации.
Быстрый старт (как в README)
package main
import (
"fmt"
"time"
"github.com/guerinoni/sieve"
)
func main() {
c := sieve.New.WithTTL(1 * time.Second)
c.Insert(1, "one")
c.Insert(2, "two")
v, ok := c.Get(1)
fmt.Println(v, ok)
}
Когда использовать
- High-QPS сервисы, где важна дешевизна cache-hit
- Внутрисервисный кэш “на горячие ключи” с перекосом в популярность
- Когда хочется проще, чем ARC/SLRU, но эффективнее типичного FIFO/LRU в многопотоке
github.com/guerinoni/sieve
#golang #go, #cache
🤬9❤6👍3
🧠 Контейнерный стек - кто за что отвечает
1. Podman
👉 альтернатива Docker без демона, можно запускать контейнеры rootless
🔗 https://podman.io
2. containerd
👉 низкоуровневый runtime, который реально контейнеры
🔗 https://containerd.io
3. CRI-O
👉 runtime специально для Kubernetes
🔗 https://cri-o.io
4. runc
👉 самый низкий уровень (OCI runtime)
🔗 https://github.com/opencontainers/runc
5. Buildah
👉 сборка образов без Docker
🔗 https://buildah.io
6. Kaniko
👉 сборка образов внутри Kubernetes
🔗 https://github.com/GoogleContainerTools/kaniko
7. nerdctl
👉 docker-подобный CLI для containerd
🔗 https://github.com/containerd/nerdctl
8. Rancher Desktop
👉 локальный Kubernetes + контейнеры
🔗 https://rancherdesktop.io
9. OrbStack
👉 быстрый dev environment для macOS
🔗 https://orbstack.dev
10. LXC / LXD
👉 системные контейнеры (почти как VM)
🔗 https://linuxcontainers.org
11. Colima
👉 лёгкая альтернатива Docker Desktop
🔗 https://github.com/abiosoft/colima
12. Lima
👉 лёгкая VM для macOS
🔗 https://github.com/lima-vm/lima
💡 Как это связать
👉 runc → запускает контейнер
👉 containerd / CRI-O → управляют контейнерами
👉 Podman / nerdctl → интерфейс
👉 Buildah / Kaniko → сборка
👉 Rancher / OrbStack / Colima → dev окружение
👉 Lima → VM база
👣 Полезные ресурсы Go 🚀Max
@Golang_google
1. Podman
👉 альтернатива Docker без демона, можно запускать контейнеры rootless
🔗 https://podman.io
2. containerd
👉 низкоуровневый runtime, который реально контейнеры
🔗 https://containerd.io
3. CRI-O
👉 runtime специально для Kubernetes
🔗 https://cri-o.io
4. runc
👉 самый низкий уровень (OCI runtime)
🔗 https://github.com/opencontainers/runc
5. Buildah
👉 сборка образов без Docker
🔗 https://buildah.io
6. Kaniko
👉 сборка образов внутри Kubernetes
🔗 https://github.com/GoogleContainerTools/kaniko
7. nerdctl
👉 docker-подобный CLI для containerd
🔗 https://github.com/containerd/nerdctl
8. Rancher Desktop
👉 локальный Kubernetes + контейнеры
🔗 https://rancherdesktop.io
9. OrbStack
👉 быстрый dev environment для macOS
🔗 https://orbstack.dev
10. LXC / LXD
👉 системные контейнеры (почти как VM)
🔗 https://linuxcontainers.org
11. Colima
👉 лёгкая альтернатива Docker Desktop
🔗 https://github.com/abiosoft/colima
12. Lima
👉 лёгкая VM для macOS
🔗 https://github.com/lima-vm/lima
💡 Как это связать
👉 runc → запускает контейнер
👉 containerd / CRI-O → управляют контейнерами
👉 Podman / nerdctl → интерфейс
👉 Buildah / Kaniko → сборка
👉 Rancher / OrbStack / Colima → dev окружение
👉 Lima → VM база
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤5🔥3😁3
26 марта(в четверг!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Go-разработчика.
Как это будет:
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Go-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_go_bot
Реклама.
О рекламодателе.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5👍3❤2🤔2
Forwarded from DevOps
🚀 9 стратегий деплоя, которые реально используют в DevOps
Современные команды выбирают стратегию релиза не «по привычке», а исходя из риска, бюджета и требований к uptime.
Вот база, которую нужно понимать:
1⃣ Recreate Deployment
Старую версию полностью останавливают, потом запускают новую
➝ Плюсы: просто, нет конфликтов
➝ Минусы: есть downtime
➝ Когда использовать: внутренние сервисы, простые системы
2⃣ Rolling Deployment
Обновление происходит постепенно, по инстансам
➝ Плюсы: без даунтайма, плавный rollout
➝ Минусы: одновременно работают разные версии
➝ Где используется: Kubernetes, Docker
3⃣ Blue-Green Deployment
Два окружения: старое (Blue) и новое (Green)
Переключение трафика происходит мгновенно
➝ Плюсы: быстрый rollback, безопасный релиз
➝ Минусы: дорого, сложнее с базой
4⃣ Canary Deployment
Сначала выкатываешь на небольшой % пользователей
➝ Плюсы: раннее обнаружение проблем
➝ Минусы: сложная маршрутизация и мониторинг
➝ Используют: Google, Netflix
5⃣ Shadow Deployment
Продакшн-трафик дублируется на новую версию
➝ Плюсы: тест на реальных данных без риска
➝ Минусы: дорого по ресурсам
6⃣ A/B Testing
Разным пользователям показываются разные версии
➝ Плюсы: решения на основе данных
➝ Минусы: сложная аналитика
➝ Цель: метрики, конверсии, поведение
7⃣ Feature Toggles (Flags)
Функция уже в проде, но скрыта за флагом
➝ Плюсы: мгновенное включение/выключение
➝ Минусы: усложняет код
8⃣ Immutable Deployment
Не обновляешь сервер - создаёшь новый
➝ Плюсы: стабильность, нет «дрейфа конфигурации»
➝ Минусы: дольше и дороже
9⃣ Serverless Deployment
Код выполняется по запросу, без серверов
➝ Плюсы: авто-скейлинг, платишь за использование
➝ Минусы: cold start, зависимость от провайдера
🧠 Вывод:
Нет «лучшей» стратегии
Есть подходящая под твою систему
- хочешь безопасность → Blue-Green / Canary
- хочешь простоту → Rolling
- хочешь контроль → Feature Flags
🔥 Сильные команды комбинируют несколько подходов сразу
🧠 Полезные Devops ресурсы 🚀 Devops в Max
@DevOPSitsec
Современные команды выбирают стратегию релиза не «по привычке», а исходя из риска, бюджета и требований к uptime.
Вот база, которую нужно понимать:
1⃣ Recreate Deployment
Старую версию полностью останавливают, потом запускают новую
➝ Плюсы: просто, нет конфликтов
➝ Минусы: есть downtime
➝ Когда использовать: внутренние сервисы, простые системы
2⃣ Rolling Deployment
Обновление происходит постепенно, по инстансам
➝ Плюсы: без даунтайма, плавный rollout
➝ Минусы: одновременно работают разные версии
➝ Где используется: Kubernetes, Docker
3⃣ Blue-Green Deployment
Два окружения: старое (Blue) и новое (Green)
Переключение трафика происходит мгновенно
➝ Плюсы: быстрый rollback, безопасный релиз
➝ Минусы: дорого, сложнее с базой
4⃣ Canary Deployment
Сначала выкатываешь на небольшой % пользователей
➝ Плюсы: раннее обнаружение проблем
➝ Минусы: сложная маршрутизация и мониторинг
➝ Используют: Google, Netflix
5⃣ Shadow Deployment
Продакшн-трафик дублируется на новую версию
➝ Плюсы: тест на реальных данных без риска
➝ Минусы: дорого по ресурсам
6⃣ A/B Testing
Разным пользователям показываются разные версии
➝ Плюсы: решения на основе данных
➝ Минусы: сложная аналитика
➝ Цель: метрики, конверсии, поведение
7⃣ Feature Toggles (Flags)
Функция уже в проде, но скрыта за флагом
➝ Плюсы: мгновенное включение/выключение
➝ Минусы: усложняет код
8⃣ Immutable Deployment
Не обновляешь сервер - создаёшь новый
➝ Плюсы: стабильность, нет «дрейфа конфигурации»
➝ Минусы: дольше и дороже
9⃣ Serverless Deployment
Код выполняется по запросу, без серверов
➝ Плюсы: авто-скейлинг, платишь за использование
➝ Минусы: cold start, зависимость от провайдера
🧠 Вывод:
Нет «лучшей» стратегии
Есть подходящая под твою систему
- хочешь безопасность → Blue-Green / Canary
- хочешь простоту → Rolling
- хочешь контроль → Feature Flags
🔥 Сильные команды комбинируют несколько подходов сразу
🧠 Полезные Devops ресурсы 🚀 Devops в Max
@DevOPSitsec
🔥9❤7👍3😁1
Приглашаем бэкенд-разработчиков на Week Offer Backend*
Такой формат позволяет пройти секции и финалы за неделю и сразу получить офер. Зарегистрироваться можно до 8 апреля, а сам ивент пройдёт с 11 по 17 апреля, онлайн.
Кого мы ищем:
🟢 Бэкенд-разработчиков c опытом работы от 4 лет на C++, Python, Java/Kotlin, Go**.
🟢 Стажёров-разработчиков c навыком кодинга на C++, Python, Java, Kotlin, Go** и базой по алгоритмам и структурам данных.
🔶 Все подробности, регистрация и материалы для подготовки доступны на сайте: https://yandex.ru/project/events/wo_backend_0426
Приходите создавать полезные продукты для миллионов пользователей!
Такой формат позволяет пройти секции и финалы за неделю и сразу получить офер. Зарегистрироваться можно до 8 апреля, а сам ивент пройдёт с 11 по 17 апреля, онлайн.
Кого мы ищем:
Приходите создавать полезные продукты для миллионов пользователей!
Please open Telegram to view this post
VIEW IN TELEGRAM
🤬6😁4❤3🔥3👍2
Что внутри:
- Markdown как источник контента
- темы (layouts, partials)
- плагины
- статическая генерация или локальный сервер
По сути: → гибрид CMS + static site generator
Почему это удобно:
- не нужен database
- легко версионировать через Git
- быстрый деплой
- минимум сложности
Где использовать:
- блоги
- документация
- лендинги
- внутренние проекты
-
https://github.com/sphireinc/Foundry
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🤔6❤4🔥4
🚀 Golang без иллюзий: производительность, безопасность и архитектура
Приглашаем на онлайн-митап для golang разработчиков, где разберём реальные кейсы из практики: от оптимизации Go-кода до безопасности и взаимодействия микросервисов.
Программа митапа:
✔️ Дмитрий Солдатенко, ведущий Go-разработчик, Ви.Tech
Горутины-призраки: как сборщик мусора научился их видеть
Разберём, как «утекают» горутины, и посмотрим на leak detection under the hood
✔️ Эдгар Сипки, Sipki Tech
Как случайно сломать безопасность: разработка MCP-сервера на Go
Поговорим о типичных уязвимостях при разработке сервисов и о том, как не превратить инфраструктуру в набор «дыр».
✔️ Дмитрий Мамыкин, Middle Go Developer, MTS Web Services
Stack Allocation Secrets in Go 1.26
Коротко о главном:
— stack vs heap и их влияние на производительность
— escape analysis и лишние аллокации
— почему slice — ключ к пониманию оптимизаций
— что изменилось в новых версиях Go и как это использовать
✔️ Роман Шохрин, инженер по автоматизации тестирования, YADRO
Микросервисный феодализм: как научить сервисы доверять друг другу
Обсудим, как выстроить безопасное взаимодействие между сервисами: от JWT и его ограничений до гибридных моделей доверия в закрытом контуре.
➡️ Модератор: Даниил Подольский, YADRO
➡️ Эксперт: Дмитрий Солдатенко, Ви.Tech
🗓 31 марта, 19:00 (МСК)
📍 Онлайн
✅ Регистрация
Приглашаем на онлайн-митап для golang разработчиков, где разберём реальные кейсы из практики: от оптимизации Go-кода до безопасности и взаимодействия микросервисов.
Программа митапа:
Горутины-призраки: как сборщик мусора научился их видеть
Разберём, как «утекают» горутины, и посмотрим на leak detection under the hood
Как случайно сломать безопасность: разработка MCP-сервера на Go
Поговорим о типичных уязвимостях при разработке сервисов и о том, как не превратить инфраструктуру в набор «дыр».
Stack Allocation Secrets in Go 1.26
Коротко о главном:
— stack vs heap и их влияние на производительность
— escape analysis и лишние аллокации
— почему slice — ключ к пониманию оптимизаций
— что изменилось в новых версиях Go и как это использовать
Микросервисный феодализм: как научить сервисы доверять друг другу
Обсудим, как выстроить безопасное взаимодействие между сервисами: от JWT и его ограничений до гибридных моделей доверия в закрытом контуре.
🗓 31 марта, 19:00 (МСК)
📍 Онлайн
✅ Регистрация
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9🤬4
Интересный разбор оптимизации базы GeoIP для сервиса, написанного на Go
В статье показано:
• как уменьшить размер базы
• как ускорить lookup IP
• работа с памятью и кешами
• практические бенчмарки
Если ты:
- делаешь high-load сервисы
- работаешь с IP / геолокацией
- оптимизируешь latency
эта статья может быть полезна.
https://blog.golle.org/posts/Golang/Optimizing%20blog%20GeoIP%20DB
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥5❤4
90% Go-разработчиков проваливают собеседования из-за базовых вопросов
Не из-за алгоритмов, а из-за обычных вещей вроде:
— goroutines
— memory model
— race conditions
— scheduler
— garbage collector
Нияз, Senior Golang Developer и автор блога в Telegram, собрал навигацию по всем ключевым hard skills — 120+ шпаргалок для Go-разраба. Можно использовать как шпаргалку перед собеседованиями.
👉 Переходите на канал, подписывайтесь и сохраняйте себе пост из закрепа
erid: 2W5zFHgL5gu
Не из-за алгоритмов, а из-за обычных вещей вроде:
— goroutines
— memory model
— race conditions
— scheduler
— garbage collector
Нияз, Senior Golang Developer и автор блога в Telegram, собрал навигацию по всем ключевым hard skills — 120+ шпаргалок для Go-разраба. Можно использовать как шпаргалку перед собеседованиями.
👉 Переходите на канал, подписывайтесь и сохраняйте себе пост из закрепа
erid: 2W5zFHgL5gu
🤬11🔥5😁1
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🔥4👍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🤬13❤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
😁42❤12🤬11🔥10👍4👏3😱3🥰2🤔2🤯1