🐳 Tilt + Docker = Быстрая разработка микросервисов. Этот инструмент делает работу с Docker-контейнерами в dev-режиме проще: автоматически пересобирает образы и обновляет окружение при изменениях кода. Замените ручные
Идеально подходит для тех, кто разрабатывает сложные мультисервисные приложения в Docker. Интеграция с Kubernetes позволяет плавно переходить от локальной разработки к продакшену.
🤖 GitHub
@DevopsDocker
docker-compose up
и docker build
на одну команду tilt up
. Идеально подходит для тех, кто разрабатывает сложные мультисервисные приложения в Docker. Интеграция с Kubernetes позволяет плавно переходить от локальной разработки к продакшену.
🤖 GitHub
@DevopsDocker
❤6🔥3👍2
🛡 SecureMCP — новый инструмент для аудита уязвимостей в LLM-инфраструктуре
Если вы работаете с агентами на базе MCP (Model Context Protocol), это must-have.
Что делает SecureMCP:
• Сканирует MCP-серверы на уязвимости: утечки токенов, prompt-инъекции, tool-poisoning
• Обнаруживает слабые конфигурации и нестабильные цепочки вызовов
• Даёт рекомендации и патчи: валидация входа, защита токенов, фильтрация prompt’ов
• Работает как CLI и Python-библиотека — можно встроить в CI/CD
• Полностью open-source: расширяйте под свои нужды
Почему важно:
💥 MCP стремительно проникает в production-LLM-агентов
💥 Уже есть случаи компрометации — prompt-инъекции, подмена responses и утечки OAuth
💥 SecureMCP — первая линия обороны на уровне протокола
🔗 https://github.com/makalin/SecureMCP
Если вы работаете с агентами на базе MCP (Model Context Protocol), это must-have.
Что делает SecureMCP:
• Сканирует MCP-серверы на уязвимости: утечки токенов, prompt-инъекции, tool-poisoning
• Обнаруживает слабые конфигурации и нестабильные цепочки вызовов
• Даёт рекомендации и патчи: валидация входа, защита токенов, фильтрация prompt’ов
• Работает как CLI и Python-библиотека — можно встроить в CI/CD
• Полностью open-source: расширяйте под свои нужды
Почему важно:
💥 MCP стремительно проникает в production-LLM-агентов
💥 Уже есть случаи компрометации — prompt-инъекции, подмена responses и утечки OAuth
💥 SecureMCP — первая линия обороны на уровне протокола
🔗 https://github.com/makalin/SecureMCP
🔥3👍2
Forwarded from Golang
В Datadog обновили Go до версии 1.24 и сразу заметили резкое падение использования памяти. Почему? В Go 1.24 появилась новая реализация хеш-таблиц — Swiss Tables, вдохновлённая подходом от Google.
📌 Что изменилось в Go:
— больше никаких overflow-бакетов
— увеличен load factor до 87.5%
— аллокация гибче: split вместо полного копирования
— меньше фрагментации и лучше кэш-локальность
📊 Пример:
map с 3.5 млн элементов:
• Go 1.23 — 726 MiB на бакеты
• Go 1.24 — 217 MiB
→ Экономия: ~500 MiB на одну карту
Но настоящая магия началась позже:
🛠️ Они нашли, что в структуре
Response
:• были неиспользуемые поля (`RoutingKey`, `LastModified`)
• поле
ShardType
было int
, хотя хватало uint8
После чистки размер структуры упал с 56 до 24 байт — и это дало ещё -250 MiB RSS с одного пода.
💡 Выводы:
1. Обновление Go = бесплатная оптимизация карт
2. Оптимизация структуры данных = ещё больше профита
3. Профилирование и метрики — must-have
📉 В сумме: сотни гигабайт экономии без изменения логики приложения.
🔗 Полный разбор:
https://www.datadoghq.com/blog/engineering/go-swiss-tables
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27
This media is not supported in your browser
VIEW IN TELEGRAM
Я сам решу! Что нужно идти на Golang meetup by Sber — 6 августа в 18:00! 😉
В программе 3 доклада:
🔹 «Улучшаем качество отчётов нагрузочного тестирования с помощью Go, langchain и GigaChat». Антон Юрченко, Сбер
🔹 «Не ждите ковариантности в Go — берите дженерики в работу». Станислав Иванкевич, СберТех
🔹 «Покой и любовь в тестировании сервисов на Go». Макс Теричев, YADRO
А ещё — стенды, нетворкинг и фуршет ☺️
Участвуйте как удобно: офлайн в Москве или онлайн. Ждём вас — регистрируйтесь по ссылке! 👌
В программе 3 доклада:
🔹 «Улучшаем качество отчётов нагрузочного тестирования с помощью Go, langchain и GigaChat». Антон Юрченко, Сбер
🔹 «Не ждите ковариантности в Go — берите дженерики в работу». Станислав Иванкевич, СберТех
🔹 «Покой и любовь в тестировании сервисов на Go». Макс Теричев, YADRO
А ещё — стенды, нетворкинг и фуршет ☺️
Участвуйте как удобно: офлайн в Москве или онлайн. Ждём вас — регистрируйтесь по ссылке! 👌
❤3🤬2
🚀 Go в American Express: как язык покорил финтех‑гиганта
С 2016 года инженеры AmEx внедряют Go в масштабные продакшн‑системы. Вот 7 ключевых инсайтов из их опыта:
///text
1. Go Modules теперь полностью решают dependency‑хаос — даже за корпоративным прокси.
2. Конкурентность — мощная, но коварная. Goroutines → да, но с контролем: context, defer, sync и обязат@golang_booksельный
3. В обучение вложились серьёзно: тренинги, менторство и своя документация по idiomatic Go.
4. Golden Framework — единый шаблон с логгингом, graceful shutdown, health‑checks и observability по умолчанию.
5. Производительность контролируется через встроенные инструменты:
6. Observability first: метрики, логгирование и трейсинг легко интегрируются в общую платформу мониторинга.
7. Сообщество внутри: 1000+ инженеров в активных каналах, общие практики и постоянные митапы.
///
📌 А ещё Go прошёл Language Showdown: 140 000 req/s — быстрее Node.js, Java и почти вровень с C++. Это и стало поворотной точкой.
📎 Подробнее: https://americanexpress.io/go-at-american-express-today/
@golang_books
С 2016 года инженеры AmEx внедряют Go в масштабные продакшн‑системы. Вот 7 ключевых инсайтов из их опыта:
///text
1. Go Modules теперь полностью решают dependency‑хаос — даже за корпоративным прокси.
2. Конкурентность — мощная, но коварная. Goroutines → да, но с контролем: context, defer, sync и обязат@golang_booksельный
-race
в тестах.3. В обучение вложились серьёзно: тренинги, менторство и своя документация по idiomatic Go.
4. Golden Framework — единый шаблон с логгингом, graceful shutdown, health‑checks и observability по умолчанию.
5. Производительность контролируется через встроенные инструменты:
pprof
, бенчмарки, GC‑паузы — всё под рукой.6. Observability first: метрики, логгирование и трейсинг легко интегрируются в общую платформу мониторинга.
7. Сообщество внутри: 1000+ инженеров в активных каналах, общие практики и постоянные митапы.
///
📌 А ещё Go прошёл Language Showdown: 140 000 req/s — быстрее Node.js, Java и почти вровень с C++. Это и стало поворотной точкой.
📎 Подробнее: https://americanexpress.io/go-at-american-express-today/
@golang_books
🔥14😁4❤2🥰2👍1
⏱ Почему в Go нельзя полагаться на системное время?
В этой разобрали интересный кейс: монотоное и «стеночное» время (monotonic vs wall clock) в Go.
🔍 В чём проблема?
time.Now() в Go возвращает смешанное время:
— *монотоное* (для измерений)
— *реальное «стеночное»* (часы системы)
Если неправильно использовать это время в вычислениях (например, при сравнении таймштампов), можно получить неожиданные баги:
— прыжки при изменении системных часов
— некорректные таймауты и дедлайны
— рассинхрон в распределённых системах
💡 Рекомендация: для измерений использовать монотоное время (`Since`, `Until`), а для логов и меток — преобразовывать только wall clock.
📌 Пример:
Но если сохранить time.Time в лог или БД и потом пересчитать разницу:
Если за это время системное время изменилось (например, ntpd подвинуло часы), elapsed может быть отрицательным или неверным.
💣 В распределённых системах это особенно опасно:
- Неправильные таймауты
- Нарушение дедлайнов
- Отказ retry‑механизмов
📌 Полный разбор
В этой разобрали интересный кейс: монотоное и «стеночное» время (monotonic vs wall clock) в Go.
🔍 В чём проблема?
time.Now() в Go возвращает смешанное время:
— *монотоное* (для измерений)
— *реальное «стеночное»* (часы системы)
Если неправильно использовать это время в вычислениях (например, при сравнении таймштампов), можно получить неожиданные баги:
— прыжки при изменении системных часов
— некорректные таймауты и дедлайны
— рассинхрон в распределённых системах
💡 Рекомендация: для измерений использовать монотоное время (`Since`, `Until`), а для логов и меток — преобразовывать только wall clock.
📌 Пример:
start := time.Now()
time.Sleep(5 * time.Second)
elapsed := time.Since(start) // работает корректно, потому что Go использует монотоное время
Но если сохранить time.Time в лог или БД и потом пересчитать разницу:
start := time.Now()
// сохраняем start куда-то...
// позже:
elapsed := time.Now().Sub(start) // ❌ здесь может быть ошибка!
Если за это время системное время изменилось (например, ntpd подвинуло часы), elapsed может быть отрицательным или неверным.
💣 В распределённых системах это особенно опасно:
- Неправильные таймауты
- Нарушение дедлайнов
- Отказ retry‑механизмов
📌 Полный разбор
👍21❤8🔥1🥰1
Forwarded from Golang
Внутри:
- Минималистичный симулятор горутин и каналов прямо в браузере
- Работает через Go WebAssembly — никакого сервера не требуется
- Наглядно объяснены
select
, fan-in/fan-out, worker pool, таймауты и про- Код можно редактировать на лету
Сохрани в закладки и тренируй мышление «конкурентного» Go-разработчика:
https://concurrency.rocks
#golang
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22👍5❤4
💣 Вечные споры о структуре Go-проектов: где правда?
В Go-сообществе регулярно всплывает один и тот же вопрос: «Как правильно организовать репозиторий?» Старые блоги предлагают сложные структуры, а официальный гайд от Go team многим кажется слишком абстрактным.
Автор этой статьи предлагает радикально простой подход: не усложняйте, пока в этом нет реальной необходимости. Он советует начать с минимальной структуры, расширять её по мере роста проекта и не бояться переделывать.
Большинству проектов попросту не нужны ни
В Go-сообществе ценится простота, и добавление лишних слоев в структуру проекта противоречит этой философии.
🔗https://laurentsv.com/blog/2024/10/19/no-nonsense-go-package-layout.html
@golang_google
В Go-сообществе регулярно всплывает один и тот же вопрос: «Как правильно организовать репозиторий?» Старые блоги предлагают сложные структуры, а официальный гайд от Go team многим кажется слишком абстрактным.
Автор этой статьи предлагает радикально простой подход: не усложняйте, пока в этом нет реальной необходимости. Он советует начать с минимальной структуры, расширять её по мере роста проекта и не бояться переделывать.
Большинству проектов попросту не нужны ни
internal/
, ни pkg/
, ни даже cmd/
, особенно если вы пишете небольшой сервис или утилиту. В Go-сообществе ценится простота, и добавление лишних слоев в структуру проекта противоречит этой философии.
🔗https://laurentsv.com/blog/2024/10/19/no-nonsense-go-package-layout.html
@golang_google
❤12👍8🔥5
Принцип простой: описываете, что хотите получить, нажимаете Optimize — GPT-5 анализирует запрос и выдаёт готовый детализированный промт. Работает бесплатно.
Инструмент может упростить работу с любыми нейросетями, особенно если у вас нет опыта в составлении промтов.
Готовый вы можете сразу попробовать в @Chatgpturbobot
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍3😁3🤬1
Яндекс создаёт продукты и сервисы для миллионов пользователей. Нейросетевой поиск, умные устройства, машинный перевод — задачи, где нет готовых решений.
Поэтому нам нужны сильные бэкенд-разработчики! Если у вас от 5 лет опыта на C++, Python, Java или Go — участвуйте в Мультитреке.
Как это работает
• Подаёте заявку до 18 августа
• Проходите технические секции 23 и 24 августа
• Получаете офер 24 августа
После найма мы предложим поработать в трёх командах несколько недель. Будет время погрузиться в работу, прочувствовать атмосферу и выбрать проект, который вам больше подходит.
Узнайте подробности и оставьте заявку.
Поэтому нам нужны сильные бэкенд-разработчики! Если у вас от 5 лет опыта на C++, Python, Java или Go — участвуйте в Мультитреке.
Как это работает
• Подаёте заявку до 18 августа
• Проходите технические секции 23 и 24 августа
• Получаете офер 24 августа
После найма мы предложим поработать в трёх командах несколько недель. Будет время погрузиться в работу, прочувствовать атмосферу и выбрать проект, который вам больше подходит.
Узнайте подробности и оставьте заявку.
😁4❤3🔥1🥰1
🚀 Вышел Go 1.25 — полгода работы Google и сообщества.
Go сочетает скорость компилируемых языков с простотой скриптовых: лаконичный синтаксис, быстрый цикл разработки, защита от ошибок. Код компилируется в нативные бинарники без виртуальной машины, с интеграцией инструментов профилирования и отладки. Язык изначально оптимизирован под многопоточность и многоядерные системы, включая встроенные средства параллельных вычислений, безопасную работу с памятью и сборщик мусора.
🔹 Главные новшества:
- Экспериментальный GC greenteagc — до 10–40% меньше накладных расходов при создании и сканировании мелких объектов.
- Новые экспериментальные пакеты:
-
-
- Новый пакет
- В
- В
-
- Компилятор и линковщик научились генерировать отладочную информацию в формате DWARF5 (компактнее и эффективнее).
- Release notes: https://go.dev/doc/go1.25
- Скачать: https://go.dev/dl/#go1.25.0
Go сочетает скорость компилируемых языков с простотой скриптовых: лаконичный синтаксис, быстрый цикл разработки, защита от ошибок. Код компилируется в нативные бинарники без виртуальной машины, с интеграцией инструментов профилирования и отладки. Язык изначально оптимизирован под многопоточность и многоядерные системы, включая встроенные средства параллельных вычислений, безопасную работу с памятью и сборщик мусора.
🔹 Главные новшества:
- Экспериментальный GC greenteagc — до 10–40% меньше накладных расходов при создании и сканировании мелких объектов.
- Новые экспериментальные пакеты:
-
encoding/json/v2
— переработанная, высокопроизводительная реализация encoding/json
.-
encoding/json/jsontext
— низкоуровневая обработка синтаксиса JSON.- Новый пакет
testing/synctest
для тестирования синхронизации потоков.- В
go build
по умолчанию включена опция -asan
для проверки утечек памяти.- В
go vet
добавлены анализаторы waitgroup
и hostport
для поиска ошибок в sync.WaitGroup.Add
и форматировании адресов.-
GOMAXPROCS
теперь учитывает ограничения CPU в контейнерах.- Компилятор и линковщик научились генерировать отладочную информацию в формате DWARF5 (компактнее и эффективнее).
- Release notes: https://go.dev/doc/go1.25
- Скачать: https://go.dev/dl/#go1.25.0
❤6🔥6👍3😁1