38.1K subscribers
1.54K photos
38 videos
5 files
1.69K links
加入频道
👣 «DNS Explained: From Basics to Building My Own DNS Server» - подробное руководство по пониманию системы доменных имен (DNS) и созданию собственного DNS-сервера с использованием языка программирования Go.​

Основные темы, рассмотренные в статье:
Что такое 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
🔥23👍158
🎊 Выпущены версии 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
13🔥8👍6
👣 lordaris/resume_generator

Полнофункциональное веб-приложение для создания резюме.

🛠️ Стек технологий:
- 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
👍10🔥7🤔43
📦 Outbox — простая реализация outbox-паттерна на Go для микросервисов

Если твои сервисы пишут в базу и одновременно публикуют события в 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
24👍11🔥4🤔4🥰1
🥳 Вышел первый релиз-кандидат 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
🔥19👍116
🌀 Go 1.25 приносит мощный апгрейд 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
🔥135👍2418
👣 Gozo — универсальный Go‑тулкит с мощными утилитами

Gozo — лёгкая и удобная библиотека, которая добавляет в Go инструментальный набор для повседневных задач: обработка срезов, карт, потоки и функциональные примитивы.

⚙️ Что внутри:
- `slices` — функции для работы с массивами: Map, Filter, Delete, Insert, Pop, PushFront, Fold, Some, Equals и даже ToMap — всё с поддержкой дженериков
- `maps` — утилиты: Map, Filter, Reduce, Equals, FilterMap, Fold, Slice
- `fp` (функциональные примитивы) — монады Option[T], Result[T], с конструктор-функциями: Some, None, Ok, Err, OptionFromPtr, OptionFromTuple
- `streams` — конвейеры обработки данных: Batch, Filter, Flatten, CSV, JSON, Pipe, Collect и другие
- `tuples` — простые структуры для пар значений (Tuple2)

🛠 Для чего это нужно:
- Ускоряет и делает код чище при работе с коллекциями
- Обладает безопасной обработкой ошибок и отсутствия значений через FP‑модели
- Дженерики обеспечивают типобезопанность и избавляют от лишнего шаблонного кода

- MIT‑лицензия

📌 Github

#go #golang #monads #functionalprogramming #toolkit #maps #utils #generics #slices

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2512🔥2😁1🤬1
🔥 Большая коллекция полезных сниппетов, примеров и рецептов на Go для создания эффективных, надёжных и масштабируемых приложений.

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

📚 Всё — от HTTP-серверов и работы с JSON до многопоточности, базы данных и REST API.

🔗 https://go-cookbook.com

@Golang_google

#golang #go #guide
30👍20🔥9👏1
👣 doWM

Красивый оконный менеджер для X11 полностью написанный на Go.

🔗 Репозиторий:
https://github.com/BobdaProgrammer/doWM

#golang #go

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍33🔥14😱105😁2🤬2
🌟 Релиз Go 1.24.5 и 1.23.11!

🔐 Безопасность: включено исправление уязвимости в цепочке инструментов Go (CVE-2025-4674)

📡 Анонс: https://groups.google.com/g/golang-announce/c/gTNJnDXmn34/m/rdlFOriABQAJ

📦 Скачать: https://go.dev/dl/#go1.24.5

#golang #go #release

@golang_google
👍215🔥3