Основные темы, рассмотренные в статье:
Что такое 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
🎊 Выпущены версии 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
Полнофункциональное веб-приложение для создания резюме.
🛠️ Стек технологий:
- Backend: Go (REST API)
- Frontend: React
- База данных: PostgreSQL
- Кэш: Redis
- Контейнеризация: Docker + Docker Compose
💡 Подходит для pet-проектов или для своего генератора PDF/резюме.
🔗 GitHub
#Resume #Go #React #OpenSource
Please open Telegram to view this post
VIEW IN TELEGRAM
📦 Outbox — простая реализация outbox-паттерна на Go для микросервисов
Если твои сервисы пишут в базу и одновременно публикуют события в Kafka, RabbitMQ или другие брокеры — знай: без outbox-паттерна ты рискуешь потерять данные.
🔧
🧠 Что она делает:
1. Сохраняет событие в таблицу
2. Отдельный воркер читает сообщения и отправляет их в брокер
3. После успешной доставки — сообщение помечается как доставленное
💡 Особенности:
- Поддержка PostgreSQL
- Готовые адаптеры для Kafka и RabbitMQ
- Возможность использовать свой брокер (реализуй интерфейс)
- Поддержка сериализации / форматирования событий
- Использует
🧩 Подходит для:
- надёжной синхронизации БД ↔ событий
- микросервисов, где важна консистентность
- систем, где нужна повторная доставка без дублей
🔥 Отличный выбор, если ты хочешь atomic-публикацию событий без тяжёлых фреймворков и сервисов.
#Go #OutboxPattern #Kafka #RabbitMQ #Microservices #EventDriven #PostgreSQL
🔗 https://github.com/oagudo/outbox
Если твои сервисы пишут в базу и одновременно публикуют события в Kafka, RabbitMQ или другие брокеры — знай: без outbox-паттерна ты рискуешь потерять данные.
🔧
Outbox
— это лёгкая и удобная библиотека на Go, которая помогает сделать доставку сообщений атомарной и надёжной, без лишней сложности.🧠 Что она делает:
1. Сохраняет событие в таблицу
outbox
в рамках транзакции2. Отдельный воркер читает сообщения и отправляет их в брокер
3. После успешной доставки — сообщение помечается как доставленное
💡 Особенности:
- Поддержка PostgreSQL
- Готовые адаптеры для Kafka и RabbitMQ
- Возможность использовать свой брокер (реализуй интерфейс)
- Поддержка сериализации / форматирования событий
- Использует
sqlx
и стандартную database/sql
🧩 Подходит для:
- надёжной синхронизации БД ↔ событий
- микросервисов, где важна консистентность
- систем, где нужна повторная доставка без дублей
🔥 Отличный выбор, если ты хочешь atomic-публикацию событий без тяжёлых фреймворков и сервисов.
#Go #OutboxPattern #Kafka #RabbitMQ #Microservices #EventDriven #PostgreSQL
🔗 https://github.com/oagudo/outbox
🥳 Вышел первый релиз-кандидат Go 1.25!
🏖 Тестируйте в разработке! Запускайте в проде! Сообщайте об ошибках: https://go.dev/issue/new
📡 Анонс: https://groups.google.com/g/golang-announce/c/dlbl6lgfVX0/m/aD6Br_YFBgAJ
📦 Скачать: https://go.dev/dl/#go1.25rc1
@golang_google
#golang #go
🏖 Тестируйте в разработке! Запускайте в проде! Сообщайте об ошибках: https://go.dev/issue/new
📡 Анонс: https://groups.google.com/g/golang-announce/c/dlbl6lgfVX0/m/aD6Br_YFBgAJ
📦 Скачать: https://go.dev/dl/#go1.25rc1
@golang_google
#golang #go
🌀 Go 1.25 приносит мощный апгрейд JSON-библиотеки:
Что изменилось:
● Прямая работа с
Новые функции
● Потоковая обработка JSON
Появился модуль
● Гибкая настройка
Теперь функции
-
-
-
-
-
Пример:
● Новое поведение по умолчанию
Теперь:
JSON-парсинг чувствителен к регистру
Дублирующиеся ключи запрещены
Неизвестные поля игнорируются, если не указано иное
Можно включить прежнее поведение опциями (например, MatchCaseInsensitiveNames)
● Ускорение десериализации
Внутренний движок полностью переписан — ускорение десериализации в 2.7–10.2 раз. При использовании потоковых API (UnmarshalJSONFrom) — прирост до 40×.
● Экспериментальный статус
API ещё может меняться. По умолчанию encoding/json использует новый движок, но json/v2 доступен отдельно и требует флага:
Это — один из самых масштабных апдейтов стандартной библиотеки Go за последние годы. Подходит для тех, кто работает с тяжёлыми JSON-структурами, большими потоками или требует строгого контроля сериализации.
📌 Полный разбор и примеры
@golang_google
#golang #go #JSON
encoding/json/v2
— переработанная с нуля система сериализации с гибкой настройкой, высокой скоростью и новым APIЧто изменилось:
● Прямая работа с
io.Writer
и io.Reader
Новые функции
MarshalWrite
и UnmarshalRead
позволяют писать и читать JSON напрямую, без создания Encoder/Decoder. Это упрощает потоковую работу и уменьшает аллокации.● Потоковая обработка JSON
Появился модуль
jsontext
с функциями MarshalEncode
и UnmarshalDecode
, которые читают и пишут JSON по одному объекту за раз. Это критично для систем, обрабатывающих большие JSON-потоки, например, в Kubernetes.● Гибкая настройка
Теперь функции
Marshal
и Unmarshal
принимают опции, напрямую влияющие на формат вывода и поведение парсера:-
OmitZeroStructFields(true)
— пропускать нулевые поля -
StringifyNumbers(true)
— числа как строки -
MatchCaseInsensitiveNames(true)
— имена полей без учёта регистра -
FormatNilMapAsNull(true)
— nil`-карты как `null
-
WithIndent(" ")
— отступы в JSONПример:
json.Marshal(
user,
json.OmitZeroStructFields(true),
json.StringifyNumbers(true),
jsontext.WithIndent(" "),
)
● Новое поведение по умолчанию
Теперь:
JSON-парсинг чувствителен к регистру
Дублирующиеся ключи запрещены
Неизвестные поля игнорируются, если не указано иное
Можно включить прежнее поведение опциями (например, MatchCaseInsensitiveNames)
● Ускорение десериализации
Внутренний движок полностью переписан — ускорение десериализации в 2.7–10.2 раз. При использовании потоковых API (UnmarshalJSONFrom) — прирост до 40×.
● Экспериментальный статус
API ещё может меняться. По умолчанию encoding/json использует новый движок, но json/v2 доступен отдельно и требует флага:
GOEXPERIMENT=jsonv2
Это — один из самых масштабных апдейтов стандартной библиотеки Go за последние годы. Подходит для тех, кто работает с тяжёлыми JSON-структурами, большими потоками или требует строгого контроля сериализации.
📌 Полный разбор и примеры
@golang_google
#golang #go #JSON