37.1K subscribers
1.46K photos
33 videos
5 files
1.62K links
加入频道
Пишете на Go или хотите на него перейти??

Тогда почему мы ещё не видим вашу регистрацию на Avito Go Drinkup #2? 🚀

Если без шуток, 23 апреля бэкендеры соберутся в офисе Авито на Лесной на «круглые столы», чтобы обсудить:

➡️Архитектуру микросервисов на Go;
➡️Как перейти с другого языка на Go;
➡️Карьерный путь в бэкенде;
➡️Реальные кейсы использования Go.

И ещё много чего! Посмотреть подробнее и зарегистрироваться можно тут.
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 browserhttp

Go-пакет, который полностью совместим с интерфейсом http.Client.

Однако, в отличие от стандартного клиента, он использует настоящий безголовый браузер (Chrome через библиотеку chromedp) для отправки запросов и взаимодействия с веб-страницами.

Данный подход позволяет:

- Выполнять рендеринг JavaScript и обрабатывать динамические страницы «как настоящий браузер» (включая работу с куками, DOM, скриптами).

- Обходить системы защиты (например, WAF или анти-бот средства), которые могут блокировать стандартные HTTP-запросы.

Автоматизировать действия в браузере (заполнение форм, клики, переходы по ссылкам) для тестирования, сканирования и скрапинга.

Основные возможности
- Полная совместимость с http.Client
Можно использовать browserhttp в существующем коде как замену стандартному клиенту (метод Do(*http.Request)).

- Реальные сессии с помощью Chrome
Запросы обрабатываются внутри настоящего браузера, обеспечивая поведение, максимально близкое к «живому» пользователю.

- Поддержка GET и POST
Базовые HTTP-запросы отправляются так же, как в стандартном клиенте.

- Симуляция отправки форм
Можно взаимодействовать с динамическими формами, которые зависят от JavaScript.

- Подробный лог запросов
При включённом режиме EnableVerbose() можно отлаживать и отслеживать все действия клиента.

- Сохранение сессии
Поддерживаются многоэтапные сценарии с сохранением вкладок и сессий между запросами (например, логин → переход к другой странице).

✔️ Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Вакансия Golang-разработчика в Otello!

1️⃣ Разрабатываем сервис бронирования, где команда сама отвечает за архитектуру, консистентность данных и деплой.
2️⃣ Максимум ответственности и развитияТы сам проектируешь фичи, принимаешь решения и доводишь их до продакшена. У нас нет бюрократии и долгих согласований — есть автономные команды и возможность проявить лидерские качества.
3️⃣ Технологический стек, который радуетGo, PostgreSQL, Clickhouse, Kafka, Kubernetes, Prometheus, Grafana и многое другое. Пишем гексагональные REST-сервисы, разворачиваемся в четырех датацентрах. Любим архитектурные обсуждения, но технологии для нас — не самоцель, а инструмент.
4️⃣ Процесс, который не бесит. Работаем по Shape Up, поэтому без бесконечных таск-трекеров и бесцельных стендапов. Всегда задаем себе вопрос "Зачем?" и находим лучшие ответы на "Как?".
5️⃣ Классная команда и атмосфера. Мы ценим простые и эффективные решения, любим обсуждать архитектуру и масштабирование, а еще умеем работать динамично и с кайфом.
🔥 Если тебе близко —откликайся!
📊 Vince — локальная альтернатива Google Analytics на Go

Vince — self-hosted система веб-аналитики с упором на конфиденциальность и простоту развертывания.

Основные характеристики:
— Установка одной командой (bash, Docker, Helm)
— Без использования cookie
— Соответствие GDPR, CCPA, PECR
— Поддержка событий: клики, загрузки, ошибки 404, пользовательские действия
— Интеграция с Plausible-совместимыми скриптами
— Автоматический TLS (Let's Encrypt)
— Возможность публичных дашбордов
— Неограниченное число сайтов и событий

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

Плюсы: полный контроль над данными, отсутствие внешних трекеров, минималистичный скрипт.

🔗 Репозиторий

@golang_google
👣 Wax

Это попытка принести JSX / TSX синтаксис в мир Go-шаблонов.

Не SSR, не React, а альтернатива html/template и Templ с более выразительным и современным синтаксисом.

📌 В чём суть?
Wax позволяет писать Go-шаблоны, используя знакомую по фронтенду структуру JSX-компонентов — но всё это компилируется и работает на Go-бэкенде.

🧩 Что под капотом?

- JSX/TSX обрабатывается через esbuild
- Код транслируется в Go-шаблоны с типами

🧪 Это похоже на рендеринг компонентов, но на Go — без React, VDOM Чистый вывод HTML, но с привычным JSX-стилем.

📜 Wax компилирует JSX в Go-код, минуя всю экосистему React.

Подойдет тем, кто хочет писать компоненты в духе React, но оставаться в Go-экосистеме и тем, кто делает JAMStack / MPA / гибридные сайты без тяжёлого фронта

🖥 Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 depgraph

Инструмент для анализа зависимостей Go-модулей (на GitHub).

🔍 Что делает:
- Сканирует указанные GitHub-аккаунты или организации
- Ищет публичные репозитории с Go-кодом
- Читает их go.mod файлы (в них указаны зависимости)
- Строит граф зависимостей между модулями

📦 Выводит:
Граф зависимостей в формате DOT (можно визуализировать через Graphviz)

Или топологическую сортировку — порядок, в котором модули зависят друг от друга (например, для правильной сборки)

Пример применения:
- У тебя есть несколько Go-проектов в организации, и ты хочешь:- Понять, какие модули используют какие зависимости
- Найти циклы, повторяющиеся зависимости
- Визуализировать это как граф

go install github.com/ldemailly/depgraph@latest

🔗Github

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣  Возможность стать частью команды ВКонтакте для Go-разработчиков

💡 ВКонтакте запускает технологический проект по переходу на сервисную архитектуру и построению единой платформы разработки. Для развития современного технологического стека и написания архитектуры планируется привлечь больше 100 Go-разработчиков.

🗓  24 апреля в офисе компании в Питере пройдет митап. На нем можно будет узнать о том, как попасть в команду и что надо будет делать.

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 go-audit — альтернатива auditd от Slack на Go 🐹

go-audit — лёгкое и эффективное решением для аудита безопасности в Linux, созданным инженерами из Slack.

🔧 Что это такое?
go-audit — это демон, который напрямую подключается к ядру Linux через audit netlink socket (/dev/audit) и перехватывает системные события в реальном времени — без использования ausearch или разбора логов вручную.

🧠 Что он умеет?
Подключается напрямую к audit subsystem через netlink
Слушает события ядра: запуск процессов, доступ к файлам, ошибки и т.п.
Преобразует их в структурированный JSON
Отправляет данные в:
stdout / файл
syslog
HTTP / Kafka
Поддерживает фильтрацию событий по типу
Подходит для real-time мониторинга и интеграции с SIEM-системами

⚙️ Почему это важно?
Это быстрая, расширяемая и удобная альтернатива auditd, особенно если вы работаете с современными инструментами логирования и хотите больше контроля над потоками событий.

📁 Репозиторий

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Вопрос:

Что будет выведено на экран?


Напишите полный вывод программы и объясни, почему именно так.


package main

import (
"fmt"
"time"
)

type Speaker interface {
Speak() string
}

type Person struct {
name string
}

func (p Person) Speak() string {
return "Hi, I'm " + p.name
}

func main() {
var s Speaker
p := Person{name: "Alice"}
s = p

p.name = "Bob"

fmt.Println(s.Speak()) // (1)

func() {
s := p // shadowing: s — это теперь Person, а не Speaker
fmt.Println(s.Speak()) // (2)
}()
go func(p Person) {
time.Sleep(10 * time.Millisecond)
fmt.Println(p.Speak()) // (3)
}(p)

p.name = "Charlie"

time.Sleep(20 * time.Millisecond)
}


💡Подсказки:
Что происходит с интерфейсами в Go при присвоении структур?

Что такое shadowing и как это влияет на s внутри анонимной функции?

Как работает передача аргументов в goroutine?

Как изменения структуры после передачи влияют на уже переданные значения?



Ответ:

Hi, I'm Alice
Hi, I'm Bob
Hi, I'm Bob


@golangtests
👣 Ninjabot — фреймворк для алгоритмического трейдинга на крипторынке, написанный на Go.

Он позволяет тестировать стратегии на исторических данных и запускать их в реальной торговле на Binance (спот и фьючерсы).

Проект позиционируется как образовательный, но выглядит более чем серьезно — здесь есть backtesting, симулятор бумажного кошелька и даже CLI для загрузки рыночных данных. В примерах можно найти готовые стратегии с визуализацией сделок через веб-интерфейс.

🖥 GitHub

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Обращаемся ко всем, кто пишет на Go и не только… Какие планы на 23 апреля?

Тогда решено — идём на Avito Go Drinkup #2 в офис на Лесной. Обещают «круглые столы», за которыми участники будут обсуждать:

➡️Архитектуру микросервисов на Go;
➡️Как перейти с другого языка на Go;
➡️Карьерный путь в бэкенде;
➡️Реальные кейсы использования Go.

И ещё много чего! Посмотреть подробнее и зарегистрироваться можно тут.
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 «Streaming Large Files Between Microservices: A Go Implementation» - практическое руководство по эффективной передаче больших файлов между микросервисами на Go.​

🔍 Основная идея
Автор предлагает решение для передачи больших данных между микросервисами, используя стандартные возможности HTTP/1.1, такие как Range-запросы и заголовки Content-Encoding. Цель — избежать загрузки всего файла в память и обеспечить возможность возобновления передачи при прерывании соединения.​


🛠️ Ключевые особенности
Потоковая передача данных: Использование io.Reader, io.Writer и bufio для чтения и записи данных по частям, что снижает нагрузку на память.​

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

Селективное сжатие
: Сервер сжимает данные с помощью gzip только при определенных условиях, учитывая тип содержимого и размер чанка, а также поддержку со стороны клиента.​

Обработка прерываний: Реализация корректного завершения работы при получении сигналов SIGINT, SIGTERM и SIGHUP.​

Определение типа содержимого: Сервер определяет MIME-тип файла с помощью расширения и функции http.DetectContentType, что помогает в принятии решений о сжатии.​
DEV Community

📌 Почему это важно
Предложенный подход позволяет эффективно передавать большие файлы между микросервисами без необходимости использования сторонних сервисов хранения, таких как S3. Это особенно полезно в системах, где требуется высокая производительность и надежность передачи данных.​

📌 Подробности

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Как привлечь внимание к своему IT-продукту? 👀

17 апреля в 11:00 облачный провайдер Cloud․ru проведет вебинар о преимуществах публикации продуктов в маркетплейсе.

Вы узнаете:
😶‍🌫️что такое Маркетплейс Cloud․ru;
😶‍🌫️типы продуктов на витрине и особенности их использования;
😶‍🌫️публикация продукта на витрине: условия, этапы, сопровождение.

Эксперт проведет live-демо по публикации на витрине и ответит на вопросы зрителей.

Регистрируйтесь по ссылке 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🌐 Weather MCP Server — лёгкий Go-сервер для ИИ-доступа к погоде

Этот проект реализует лёгкий сервер на Go по протоколу MCP (Model Context Protocol). Он позволяет ИИ-ассистентам, таким как Claude, подключаться к погодным API и интерпретировать данные в реальном времени.

🧩 Что делает:
Предоставляет интерфейс MCP для интеграции с LLM
Получает и обрабатывает прогноз с OpenWeather API
Позволяет ИИ «понимать» текущую погоду и тренды
Подходит для систем, где ИИ должен принимать решения на основе реальных данных

🚀 Используется как context tool — внешняя служба, к которой ИИ обращается за фактами.

🔗 Репозиторий
1,5 млн человек пользуются умным домом с Алисой каждую неделю! Над экосистемой умных устройств Яндекса трудится большая команда, которая придумывает новые способы сделать бытовую жизнь еще комфортнее.

Сейчас ребята в поиске разработчика на Go — нужно разрабатывать сценарии автоматизации умного дома и расширять API для поддержки новых устройств.

Если умеете писать высокопроизводительный код и хотите сделать жизнь миллионов людей комфортнее — переходите на сайт, там больше о вакансии.
👣 Fibratus — инструмент для мониторинга и трассировки ядра Windows.

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

📌 Fibratus работает без драйверов и стороннего ПО, делая его удобным и эффективным для анализа системы.

$ msiexec /i fibratus-2.3.0-amd64.msi /qn

🔗 GitHub

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
KORE, сети и железная леди: как строится кровеносная система любого big tech

В новом выпуске подкаста «Расскажите про MWS» мы беседуем с Геннадием Липенковым, руководителем направления Engineering & Servers Infrastructure MWS.

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

Смотрите и слушайте на всех популярных площадках:
🎬 YouTube
🎬 VK Видео

🎧 Яндекс Музыка
🎧 Apple Podcasts
🎧 Mave Digital
🚀 Go2o — фреймворк для O2O-коммерции на Golang.

Это реализация Domain-Driven Design на Go, предлагающая готовые модули для мультиканальных продаж, управления заказами, платежами и логистикой.

Проект разбит на четыре компонента: панель управления, интернет-магазины, центр лояльности и API для интеграции. Особенность фреймворка — глубокая бизнес-логика и поддержка сценариев вроде snapshots товаров.

🤖 GitHub

@golang_google
👣 Dish — минималистичный инструмент для мониторинга сокетов (Go)

Лёгкий и автономный агент, проверяющий доступность TCP/HTTP-соединений. Не требует серверов или сложной установки.

🛠 Возможности:
🔄 Параллельные проверки сокетов (из JSON-файла или API)

Уведомления: Telegram, Webhook, Prometheus Pushgateway, REST API

🧩 Можно запускать по cron без постоянного демона

💾 Кэширование API-ответов при недоступности сервера

🌍 Распределённый мониторинг: агенты на разных хостах, централизованная конфигурация

📦 Установка:

go install go.vxn.dev/dish/cmd/dish@latest
# или
brew install dish


🔗 Подробнее

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM