40.5K subscribers
1.86K photos
58 videos
5 files
1.95K links
Download Telegram
Безопасная обработка ошибок в 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/

👣 Полезные ресурсы Go 🚀Max

@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👍3310🔥8🤔1
👣 HTTP-прокси сервер для просмотра Markdown прямо в браузере с поддержкой:

- PlantUML — диаграммы
- Mermaid — графы и схемы
- KaTeX — математические формулы
- Live Reload — автоматическое обновление страницы при изменении файлов

Можно редактировать Markdown и сразу видеть результат в браузере со всеми диаграммами и формулами.

github.com/patakuti/markdown-proxy


#golang

👣 Полезные ресурсы Go 🚀Max

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔19👍65🥰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
Please open Telegram to view this post
VIEW IN TELEGRAM
🤬63👍3🔥3😁3🥰2
👣 Паттерны и техники для написания высокопроизводительных приложений на Go

В гайде не только теория, но и практические паттерны: работа с памятью, конкурентность и реальные узкие места, с которыми сталкиваешься в продакшене.

Гайд только что обновили и добавили больше глубины (атомики, компромиссы в конкурентности и т.д.), так что стоит перечитать его, даже если уже видел.

https://goperf.dev/

👣 Полезные ресурсы Go

@Golang_google

#golang #go
Please open Telegram to view this post
VIEW IN TELEGRAM
👍224🤬4🔥3
Иногда хорошая работа сама находит🕵

У нас есть @job_radar_2gis_bot — он мониторит все ИТ-вакансии 2ГИС и присылает именно те, что подходят по профилю. Для этого нужно отметить направление и формат работы. Как только подходящая вакансия появится, бот пришлёт уведомлялку.

Подключайтесь, новые вакансии уже там🔥
🔥5
🖥 Современная PDF-библиотека для Go

Folio -полезный интервента для работы с PDF в одном инструменте:

• HTML → PDF
• layout engine
• формы и заполнение
• цифровые подписи
• баркоды
• PDF/A (для архивов)


🔗 https://github.com/carlos7ags/folio
#golang

👣 Полезные ресурсы Go 🚀Max

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
17👍10🥰4🔥1
⚡️ 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)

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
⚡️ 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)

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
🤬96👍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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍85🔥3😁3
🔍Тестовое собеседование с Go ТехЛидом из WildBerries в этот четверг

26 марта(в четверг!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Go-разработчика.

Как это будет:
📂 Рамиль Мясоутов, ТехЛид из WildBerries, ex-Купер будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Рамиль будет комментировать каждый ответ респондента, чтобы дать понять, чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Рамилю

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Go-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_go_bot

Реклама.
О рекламодателе.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5👍32🤔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
🔥97👍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

Приходите создавать полезные продукты для миллионов пользователей!
Please open Telegram to view this post
VIEW IN TELEGRAM
🤬6😁43🔥3👍2
👣 Foundry - Markdown-first CMS на Go.

Что внутри:
- Markdown как источник контента
- темы (layouts, partials)
- плагины
- статическая генерация или локальный сервер

По сути: → гибрид CMS + static site generator

Почему это удобно:
- не нужен database
- легко версионировать через Git
- быстрый деплой
- минимум сложности

Где использовать:
- блоги
- документация
- лендинги
- внутренние проекты
-
https://github.com/sphireinc/Foundry

👣 Полезные ресурсы Go 🚀Max

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🤔64🔥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 (МСК)
📍 Онлайн

Регистрация
Please open Telegram to view this post
VIEW IN TELEGRAM
9🤬4
👣 Как ускорить работу GeoIP в Go

Интересный разбор оптимизации базы 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🔥54
90% Go-разработчиков проваливают собеседования из-за базовых вопросов

Не из-за алгоритмов, а из-за обычных вещей вроде:
— goroutines
— memory model
— race conditions
— scheduler
— garbage collector

Нияз, Senior Golang Developer и автор блога в Telegram, собрал навигацию по всем ключевым hard skills — 120+ шпаргалок для Go-разраба. Можно использовать как шпаргалку перед собеседованиями.

👉 Переходите на канал, подписывайтесь и сохраняйте себе пост из закрепа
erid: 2W5zFHgL5gu
🤬11🔥5😁1
👣 Revive — это статический анализатор кода для языка Go, предназначенный для замены устаревшего инструмента golint!

🌟 Он обеспечивает более быструю и строгую проверку кода, а также предлагает расширенные возможности настройки и расширения. Revive позволяет разработчикам создавать собственные правила и форматтеры, а также предоставляет гибкую систему конфигурации через файлы в формате TOML.

🔐 Лицензия: MIT

🖥 Github
Please open Telegram to view this post
VIEW IN TELEGRAM
🤬64🔥4👍1
👣 Как перестать “нянчиться” с AI-агентами - взгляд Go-разработчика

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

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

В статье представлено очень простое решение. Перестать воспринимать агента как собеседника и начать относиться к нему как к инструменту.

Подход, который предлагают авторы - делать агентов в виде 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🤬1310🔥5😁4🤔3
👣 Claude Code Skills для production-ready Go проектов

Готовый набор скилов, чтобы ускорить разработку на Go:
• готовая структура проекта как в продакшене
• линтинг и стандарты кода
• работа с зависимостями
• тестирование и CI
• лучшие практики для масштабируемых сервисов

▶️ Подробно о том , что такое Claude Skills

Репозиторий: https://github.com/samber/cc-skills-golang

#golang

👣 Полезные ресурсы Go 🚀Max

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
122🔥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
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4212🤬11🔥10👍4👏3😱3🥰2🤔2🤯1