Основные темы, рассмотренные в статье:
Что такое DNS и его значение:
DNS (Domain Name System) действует как телефонная книга интернета, преобразуя удобочитаемые доменные имена (например, google.com) в машинно-читаемые IP-адреса (например, 142.250.182.206), облегчая навигацию в сети.
Пошаговый процесс разрешения DNS:
1️⃣ Инициирование запроса: Локальный резолвер в операционной системе проверяет кэш на наличие IP-адреса запрашиваемого домена. Если адрес отсутствует, запрос направляется к рекурсивному DNS-резолверу.
2️⃣ Обращение к рекурсивному резолверу: Рекурсивный резолвер, такой как Google Public DNS (8.8.8.8) или Cloudflare DNS (1.1.1.1), принимает запрос и начинает процесс поиска.
3️⃣ Запрос к корневому DNS-серверу: Рекурсивный резолвер обращается к корневому серверу, который направляет его к соответствующему серверу верхнего уровня (TLD) для запрашиваемого домена.
4️⃣ Запрос к TLD-серверу: Сервер верхнего уровня (например, для доменов .com или .tech) указывает на авторитетный сервер конкретного домена.
5️⃣ Запрос к авторитетному серверу: Авторитетный сервер предоставляет окончательный IP-адрес запрашиваемого домена.
Создание собственного DNS-сервера на Go:
В статье вы найдите гайд по разработке простого DNS-сервера на Go, и предоставляет исходный код проекта для самостоятельного изучения.
Годное чтиво на выходные )
📌Читать
#junior #golang #go #dns
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Получите оффер в Авито за одни выходные на Weekend Offer для опытных Go-разработчиков!
Что предлагают?
— работу над уникальными фичами и функционалом крупнейшего сервиса объявлений, включая разработку ML-моделей, VPN-решений и системы DDoS-защиты;
— конкурентную зарплату, ДМС и дополнительные дни отпуска;
— формат работы на выбор: офис или удаленка;
— мощное железо, опенсорс, ежегодный бюджет на обучение, а еще массажиста в офисе и премии.
Ждут в том числе бэкендеров с другим стеком, готовых переучиться на Go. Присоединяйтесь к масштабным проектам — регистрируйтесь до 23 апреля: https://u.to/6Is1Ig
Что предлагают?
— работу над уникальными фичами и функционалом крупнейшего сервиса объявлений, включая разработку ML-моделей, VPN-решений и системы DDoS-защиты;
— конкурентную зарплату, ДМС и дополнительные дни отпуска;
— формат работы на выбор: офис или удаленка;
— мощное железо, опенсорс, ежегодный бюджет на обучение, а еще массажиста в офисе и премии.
Ждут в том числе бэкендеров с другим стеком, готовых переучиться на Go. Присоединяйтесь к масштабным проектам — регистрируйтесь до 23 апреля: https://u.to/6Is1Ig
Разделы: HR-этап, техническое интервью, полезные ресурсы и топ вопросов по частоте.
Весь материал на русском, на основе опыта российских компаний. Бери и готовься!
🔗 Github
@golang_google
#devops #девопс
Please open Telegram to view this post
VIEW IN TELEGRAM
Готов к масштабному IT-событию?
GoCloud — конференция для разработчиков, инженеров, IT-руководителей и всех, кому интересны облака и AI.
На GoCloud тебя ждут три трека:
💻 Инфраструктура и сервисы
Доклады о K8s, Bare Metal, платформе данных и других облачных сервисах для ваших задач.
🧠 AI&ML
Погружение в будущее AI: инструменты, обмен опытом и анонсы продуктов, меняющих индустрию.
👨💻 Сценарии работы в облаке
Дискуссии и доклады о гибридных решениях, GenAI, безопасности и реальных кейсах клиентов.
30+ докладов, нетворкинг с экспертами и live-демо сервисов ждут тебя 10 апреля.
Регистрация по ссылке👈
GoCloud — конференция для разработчиков, инженеров, IT-руководителей и всех, кому интересны облака и AI.
На GoCloud тебя ждут три трека:
Доклады о K8s, Bare Metal, платформе данных и других облачных сервисах для ваших задач.
Погружение в будущее AI: инструменты, обмен опытом и анонсы продуктов, меняющих индустрию.
Дискуссии и доклады о гибридных решениях, GenAI, безопасности и реальных кейсах клиентов.
30+ докладов, нетворкинг с экспертами и live-демо сервисов ждут тебя 10 апреля.
Регистрация по ссылке
Please open Telegram to view this post
VIEW IN TELEGRAM
✍️ gosec — это инструмент статического анализа кода для Go, который выявляет уязвимости, сканируя AST и SSA-представление программы.
Вместо поверхностного поиска шаблонов он анализирует структуру кода, что позволяет находить сложные уязвимости, такие как SQL-инъекции, проблемы с криптографией или неправильные настройки TLS.
Инструмент можно легко настраивать: включать только нужные проверки, исключать определенные файлы и выводить отчеты в разных форматах.
🔐 Лицензия: Apache 2.0.
🤖 GitHub
@golang_google
Вместо поверхностного поиска шаблонов он анализирует структуру кода, что позволяет находить сложные уязвимости, такие как SQL-инъекции, проблемы с криптографией или неправильные настройки TLS.
Инструмент можно легко настраивать: включать только нужные проверки, исключать определенные файлы и выводить отчеты в разных форматах.
🔐 Лицензия: Apache 2.0.
🤖 GitHub
@golang_google
🆘 Notify — интрумент, представляющий способ получать мгновенные оповещения о критических событиях прямо в любимые мессенджеры и почту.
Проект подходит для любых сценариев уведомлений: от оповещений о завершении CI/CD-сборок до сигналов от домашних скриптов.
С недавних пор добавили поддержку
🤖 GitHub
@golang_google
Проект подходит для любых сценариев уведомлений: от оповещений о завершении CI/CD-сборок до сигналов от домашних скриптов.
С недавних пор добавили поддержку
Telegram, Slack, Discord
и других платформ через единый интерфейс. 🤖 GitHub
@golang_google
💡В мире технологий важно не просто следить за трендами, но и понимать, как они воплощаются в реальных проектах. Data Fusion 2025 — это конференция, где обсуждают практическое применение передовых ИТ-решений, от нейросетей до больших данных.
🚀 Что вас ожидает:
✅ 14 тематических треков — от искусственного интеллекта до кибербезопасности
✅ 250+ спикеров — эксперты индустрии, науки и бизнеса, готовые поделиться опытом и инсайтами
✅ 70+ сессий — глубокий анализ кейсов, обсуждение трендов и практических решений
💡 Почему это стоит посетить:
🔍 Поймёте, как выстраиваются передовые DS- и ML-системы — от пайплайнов до инфраструктуры
💬 Сможете задать вопрос тем, кто уже решает задачи на боевых данных, а не только пишет про них
🧩 Разберетесь в архитектурах, которые позволяют внедрять ИИ не “для отчёта”, а в реальные процессы
⚙️ Погрузитесь в лучшие практики DataOps, governance и synthetic data — с цифрами, метриками и кейсами
📅 Детали мероприятия:
🗓 16–17 апреля 2025 года
📍 Москва, технологический кластер «Ломоносов»
🎟 Участие бесплатно после прохождения онлайн-регистрации на официальном сайте в расширенной форме.
🔗 Подробнее о конференции и регистрация: data-fusion.ru
___
*DS — анализ данных (Data Science)
*ML — машинное обучение (Machine Learning)
*DataOps — операционное управление данными
*Governance — управление политиками и процессами работы с данными
*Synthetic data — синтетические данные
🚀 Что вас ожидает:
✅ 14 тематических треков — от искусственного интеллекта до кибербезопасности
✅ 250+ спикеров — эксперты индустрии, науки и бизнеса, готовые поделиться опытом и инсайтами
✅ 70+ сессий — глубокий анализ кейсов, обсуждение трендов и практических решений
💡 Почему это стоит посетить:
🔍 Поймёте, как выстраиваются передовые DS- и ML-системы — от пайплайнов до инфраструктуры
💬 Сможете задать вопрос тем, кто уже решает задачи на боевых данных, а не только пишет про них
🧩 Разберетесь в архитектурах, которые позволяют внедрять ИИ не “для отчёта”, а в реальные процессы
⚙️ Погрузитесь в лучшие практики DataOps, governance и synthetic data — с цифрами, метриками и кейсами
📅 Детали мероприятия:
🗓 16–17 апреля 2025 года
📍 Москва, технологический кластер «Ломоносов»
🎟 Участие бесплатно после прохождения онлайн-регистрации на официальном сайте в расширенной форме.
🔗 Подробнее о конференции и регистрация: data-fusion.ru
___
*DS — анализ данных (Data Science)
*ML — машинное обучение (Machine Learning)
*DataOps — операционное управление данными
*Governance — управление политиками и процессами работы с данными
*Synthetic data — синтетические данные
dbc4go
Это AI-генератор кода, который берет Go-код с контрактами (правилами), написанными прямо в комментариях, и создает новую версию кода.
▪️ Как работает?
Он "инструментирует" ваш код, добавляя в начало функций/методов блоки проверки, которые следят за выполнением контрактов во время работы программы.
▪️ Зачем нужно?
Чтобы автоматически проверять соблюдение условий (например, что функция получает правильные входные данные или возвращает ожидаемый результат) во время выполнения. Если контракт нарушен — программа упадет (panic), явно указывая на проблему.
▪️ Преимущество:
Контракты находятся в комментариях, поэтому исходный код остается валидным Go-кодом. Инструментированную версию можно использовать для тестирования (например, запустить go generate, а потом go test), чтобы повысить шансы на обнаружение багов, комбинируя тесты и контракты.
По сути, dbc4go помогает писать более надежный код на Go, внедряя проверки контрактов непосредственно во время выполнения.
📌 Github
@golang_google
Это AI-генератор кода, который берет Go-код с контрактами (правилами), написанными прямо в комментариях, и создает новую версию кода.
▪️ Как работает?
Он "инструментирует" ваш код, добавляя в начало функций/методов блоки проверки, которые следят за выполнением контрактов во время работы программы.
▪️ Зачем нужно?
Чтобы автоматически проверять соблюдение условий (например, что функция получает правильные входные данные или возвращает ожидаемый результат) во время выполнения. Если контракт нарушен — программа упадет (panic), явно указывая на проблему.
▪️ Преимущество:
Контракты находятся в комментариях, поэтому исходный код остается валидным Go-кодом. Инструментированную версию можно использовать для тестирования (например, запустить go generate, а потом go test), чтобы повысить шансы на обнаружение багов, комбинируя тесты и контракты.
По сути, dbc4go помогает писать более надежный код на Go, внедряя проверки контрактов непосредственно во время выполнения.
📌 Github
@golang_google
🎊 Выпущены версии Go 1.24.2 и 1.23.8!
Эти релизы являются минорными и в основном направлены на исправление проблем безопасности.
🔐 Безопасность: Содержит исправление безопасности для net/http (CVE-2025-22871).
📣 Анонс: https://groups.google.com/g/golang-announce/c/Y2uBTVKjBQk/m/cs_6qIK5BAAJ
📦 Скачать https://go.dev/dl/#go1.24.2
#golang #go #release
@golang_google
Эти релизы являются минорными и в основном направлены на исправление проблем безопасности.
🔐 Безопасность: Содержит исправление безопасности для net/http (CVE-2025-22871).
📣 Анонс: https://groups.google.com/g/golang-announce/c/Y2uBTVKjBQk/m/cs_6qIK5BAAJ
📦 Скачать https://go.dev/dl/#go1.24.2
#golang #go #release
@golang_google
🌐 GoDoxy — лёгкий и быстрый reverse proxy с Web UI.
Особенности:
— простая настройка;
— многоузловая конфигурация с агентами;
— понятные сообщения об ошибках;
— авто SSL через Let's Encrypt (DNS-01);
— горячая перезагрузка при изменениях;
— маршруты из Docker-контейнеров;
— idlesleeper: спящий режим при простое;
— резервный HTTP-прокси и перенаправление TCP/UDP;
— поддержка OpenID Connect;
— middleware и кастомные страницы ошибок;
— Web UI: управление, редактор, мониторинг, логи;
— работает на Linux/AMD64, Linux/ARM64.
🔗 Github
@golang_google
Особенности:
— простая настройка;
— многоузловая конфигурация с агентами;
— понятные сообщения об ошибках;
— авто SSL через Let's Encrypt (DNS-01);
— горячая перезагрузка при изменениях;
— маршруты из Docker-контейнеров;
— idlesleeper: спящий режим при простое;
— резервный HTTP-прокси и перенаправление TCP/UDP;
— поддержка OpenID Connect;
— middleware и кастомные страницы ошибок;
— Web UI: управление, редактор, мониторинг, логи;
— работает на Linux/AMD64, Linux/ARM64.
🔗 Github
@golang_google
Forwarded from Golang Books
В ней рассматриваются ключевые техники, сгруппированные в четыре основные категории:
1. Управление памятью и эффективность:
- Pooling объектов: Повторное использование объектов для снижения нагрузки на сборщик мусора и уменьшения накладных расходов на выделение памяти.
- Предварительное выделение памяти: Заранее задавать емкость срезов и карт для предотвращения дорогостоящих операций изменения размера.
- Выравнивание полей структур: Оптимизация расположения полей в структурах для минимизации заполнения и улучшения локальности данных.
- Избегание упаковки интерфейсов: Предотвращение скрытых выделений памяти путем отказа от ненужных преобразований типов к интерфейсам.
- Техники нулевого копирования: Минимизация копирования данных с использованием срезов и буферов.
- Эффективность памяти и сборщик мусора Go: Снижение нагрузки на сборщик мусора путем минимизации использования кучи и повторного использования памяти.
- Стековые выделения и анализ ускользания: Использование анализа ускользания для размещения значений в стеке, когда это возможно.
2. Конкурентность и синхронизация:
Пулы рабочих горутин: Контроль уровня конкурентности с помощью пулов фиксированного размера для ограничения использования ресурсов.
Атомарные операции и примитивы синхронизации: Использование атомарных операций или легковесных блокировок для управления общим состоянием.
Ленивая инициализация: Отсрочка выполнения затратных операций до момента, когда они действительно необходимы.
Совместное использование неизменяемых данных: Безопасное совместное использование данных между горутинами без блокировок путем обеспечения их неизменяемости.
goperf.dev
Эффективное управление контекстом: Использование пакета context для передачи тайм-аутов и сигналов отмены между горутинами.
3. Оптимизация ввода/вывода и пропускная способность:
Эффективное буферизирование: Использование буферизованных читателей/писателей для минимизации вызовов ввода/вывода.
Группировка операций: Объединение нескольких мелких операций для уменьшения количества раунд-трипов и повышения пропускной способности.
4. Оптимизация на уровне компилятора и настройка:
Использование флагов оптимизации компилятора: Применение флагов сборки, таких как
-gcflags и -ldflags,
для настройки производительности.Стековые выделения и анализ ускользания: Анализ того, какие значения переходят в кучу, чтобы помочь компилятору оптимизировать размещение памяти.
goperf.dev
Эти техники помогают разработчикам Go создавать более эффективные и производительные приложения, снижая задержки, улучшая использование памяти и повышая эффективность конкурентных операций.
🔗 Читать
@golang_books
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Позволяет загружать и скачивать файлы через HTTP/S с поддержкой самоподписанных или пользовательских сертификатов и базовой аутентификацией.
Ключевые возможности: загрузка/скачивание в .zip, поддержка
POST/PUT-
запросов, доступ через Drag & Drop, удаление файлов (по одному или массово). Дополнительно: аутентификация, работа с буфером обмена, WebDAV (чтение), настройка тем и выполнение команд на хосте.
📌 Github
@golang_books
Please open Telegram to view this post
VIEW IN TELEGRAM
Highload буткемп: Системный дизайн, Производительность и Масштабирование
Приглашаем на курсы для прокачки навыков архитектора и проектировщика на весеннем highload-потоке от DevHands.
🌐 Приходите на уникальный образовательный трек без отрыва от работы (занятия вечером), в рамках которого вы:
🤩 изучите ключевые хайлоад-паттерны и получите навыки проектирования систем с миллионной аудиторией (балансировка, масштабирование, высокая доступность, шардинг, CAP/PACELS, транзакционные очереди и многое другое)
🤩 поупражняетесь в системном дизайне и проектировании, и получите живую обратную связь на реальных задачах: магазин/маркетплейс, объявления, соцсети, такси/доставка и тд.
🤩 погрузитесь в highload максимально, при желании в первый же день получите в управление свою инфраструктуру, попробуете “выжать” 100K RPS из своих сервисов, получите уникальный опыт работы с кластерными решениями - Redis, SPQR, CockroachDB
🤩 научитесь планировать нагрузку и связывать бизнес-показатели с нефункциональными требованиями к системе
🤩 попрактикуетесь в проведении и прохождения секций системного дизайна на интервью
Только «живые» онлайн-сессии: лекции, брейнштормы, презентации домашних проектов.
🗓 Старт потока 22 апреля, изучайте программу и записывайтесь:
🤩 Буткэмп “Производительность и масштабируемость” для тех, кто хочет поработать с собственной инфрой
🤩 Курс “Системный дизайн высоконагруженных проектов” для тех, кто хочет только практику проектирования “у доски”
🥸 Кто мы: R&D-центр Devhands, основатель школы и автор курса Алексей Рыбак, ex-СТО Badoo и Yum! Brands, с многолетним опытом высоконагруженных проектов и управления глобальными технологическими организациями, член программного комитета Highload.
Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2Vtzqv8dwE1
Приглашаем на курсы для прокачки навыков архитектора и проектировщика на весеннем highload-потоке от DevHands.
Только «живые» онлайн-сессии: лекции, брейнштормы, презентации домашних проектов.
Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2Vtzqv8dwE1
Please open Telegram to view this post
VIEW IN TELEGRAM
🗂️ Dbmate — инструмент для миграций БД без привязки к языку.
Это самодостаточный бинарник, который не требует интеграции с конкретным фреймворком и одинаково хорошо работает с Go.
Главная фишка Dbmate — простота. Вместо сложных DSL миграции пишутся на чистом SQL, а для подключения к БД используется привычное
🤖 GitHub
@golang_google
Это самодостаточный бинарник, который не требует интеграции с конкретным фреймворком и одинаково хорошо работает с Go.
Главная фишка Dbmate — простота. Вместо сложных DSL миграции пишутся на чистом SQL, а для подключения к БД используется привычное
DATABASE_URL.
При этом инструмент не забывает о важных деталях: атомарности выполнения, версионировании по времени и возможности быстрого создания/удаления тестовых БД.🤖 GitHub
@golang_google
Mox
- Основные возможности Mox:
Быстрый и простой запуск: Позволяет легко развернуть и поддерживать почтовый сервер для одного или нескольких доменов.
-Поддержка протоколов:
SMTP с расширениями: Для приема и отправки электронной почты.
- IMAP4 с расширениями: Обеспечивает доступ почтовых клиентов к электронной почте.
- Автоматический TLS с ACME: Интеграция с Let's Encrypt и другими центрами сертификации для обеспечения безопасного соединения.
📌 Механизмы аутентификации и защиты:
SPF: Проверяет, разрешено ли удаленному узлу отправлять электронную почту от имени домена.
DKIM: Подтверждает, что сообщение подписано заявленным доменом отправителя, а также подписывает исходящие письма для проверки другими серверами.
DMARC: Применяет политики SPF/DKIM, установленные доменами, и анализирует входящие сводные отчеты DMARC.
Фильтрация спама и отслеживание репутации: Обучается на основе предпочтений пользователя, анализируя нежелательную и желаемую почту, для повышения эффективности фильтрации.
Mox
Mox предоставляет все необходимые инструменты для создания надежного и безопасного почтового сервера, объединяя современные технологии в едином, легко управляемом решении.
▪ Github
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
В этой статье рассматривается концепциюя «глубоких» и «поверхностных» интерфейсов в Go, основываясь на идеях из книги Джона Оустерхута «A Philosophy of Software Design».
Автор утверждает, что
"правильные" модули предоставляют мощную функциональность через простые интерфейсы, подчеркивая важность соотношения между полезностью абстракции и сложностью её интерфейса.
Пример глубокого интерфейса:
В качестве примера глубокого интерфейса рассматривается io.Reader из стандартной библиотеки Go:
type Reader interface {
Read(p []byte) (n int, err error)
}
Этот интерфейс минималистичен и легко запоминается, но при этом поддерживает множество реализаций, включая чтение из файлов, сетевых соединений, сжатых данных и шифров. Простота интерфейса скрывает сложность реализации, облегчая использование и понимание.
Пример поверхностного интерфейса:
В противоположность, рассматривается интерфейс Cmdable из клиента go-redis, который включает около 200 методов:
type Cmdable interface {
Pipeline() Pipeliner
Pipelined(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error)
// ... множество других методов ...
}
Каждый метод выполняет одну конкретную задачу с простой реализацией, но большое количество методов усложняет понимание и использование интерфейса, перекладывая ответственность за правильное использование на разработчика.
Автор подчеркивает, что глубокие интерфейсы с простыми и лаконичными методами, скрывающими сложную реализацию, способствуют созданию более понятного и поддерживаемого кода. В то время как поверхностные интерфейсы с обширным набором методов могут усложнять понимание и использование, увеличивая когнитивную нагрузку на разработчика.
🔗 Подробнее
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
добавляет синтаксическую подсветку (раскрашивает ключевые слова, типы данных, строки, комментарии и т.д.) к блокам кода Go на различных сайтах и документах.
Расширение делает примеры кода значительно более наглядными и легкими для восприятия.
🔗 Скачать
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Пишете на Go или хотите на него перейти??
Тогда почему мы ещё не видим вашу регистрацию на Avito Go Drinkup #2?🚀
Если без шуток, 23 апреля бэкендеры соберутся в офисе Авито на Лесной на «круглые столы», чтобы обсудить:
➡️ Архитектуру микросервисов на Go;
➡️ Как перейти с другого языка на Go;
➡️ Карьерный путь в бэкенде;
➡️ Реальные кейсы использования Go.
И ещё много чего! Посмотреть подробнее и зарегистрироваться можно тут.
Тогда почему мы ещё не видим вашу регистрацию на Avito Go Drinkup #2?
Если без шуток, 23 апреля бэкендеры соберутся в офисе Авито на Лесной на «круглые столы», чтобы обсудить:
И ещё много чего! Посмотреть подробнее и зарегистрироваться можно тут.
Please open Telegram to view this post
VIEW IN TELEGRAM
Go-пакет, который полностью совместим с интерфейсом http.Client.
Однако, в отличие от стандартного клиента, он использует настоящий безголовый браузер (Chrome через библиотеку
chromedp
) для отправки запросов и взаимодействия с веб-страницами.Данный подход позволяет:
- Выполнять рендеринг JavaScript и обрабатывать динамические страницы «как настоящий браузер» (включая работу с куками, DOM, скриптами).
- Обходить системы защиты (например, WAF или анти-бот средства), которые могут блокировать стандартные HTTP-запросы.
Автоматизировать действия в браузере (заполнение форм, клики, переходы по ссылкам) для тестирования, сканирования и скрапинга.
Основные возможности
- Полная совместимость с
http.Client
Можно использовать browserhttp в существующем коде как замену стандартному клиенту (метод
Do(*http.Request)).
- Реальные сессии с помощью Chrome
Запросы обрабатываются внутри настоящего браузера, обеспечивая поведение, максимально близкое к «живому» пользователю.
- Поддержка GET и POST
Базовые HTTP-запросы отправляются так же, как в стандартном клиенте.
- Симуляция отправки форм
Можно взаимодействовать с динамическими формами, которые зависят от JavaScript.
- Подробный лог запросов
При включённом режиме EnableVerbose() можно отлаживать и отслеживать все действия клиента.
- Сохранение сессии
Поддерживаются многоэтапные сценарии с сохранением вкладок и сессий между запросами (например, логин → переход к другой странице).
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM