golang

Post Thumbnail

Как ya.ru на Go переезжал

Переезд большого сервиса с Perl на Golang едва ли кому‑то покажется простой задачей. А теперь представьте, что это главная страница Яндекса, на которую ежедневно заходят миллионы пользователей. И что продукт постоянно дорабатывается, а значит, нельзя взять и остановить разработку на пару лет переезда. Представили? Сложно? А вот, оказывается, всё возможно.

Post Thumbnail

go1.24

На дворе февраль, а это значит свежий релиз Go 1.24 Go 1.24 и его новые функции — это действительно важный релиз, включающий множество обновлений: - Механизм go tool для отслеживания зависимостей инструментов. - Использование Swiss Tables для ускорения операций с картами (map). - Экспериментальный пакет testing/synctest для тестирования конкурентного кода. - Директива go:wasmexport для экспорта функций в WASM-хост. - Поддержка алиасов для обобщённых типов (generic type aliases), а также слабых указателей (weak pointers). - Новый механизм для достижения соответствия стандарту FIPS 140-3.

Post Thumbnail

Настройка libSQL

В одной из прошлых статей я уже восхищался PocketBase — штука действительно классная. Но знаете, что делает её ещё круче? Если заменить стандартный SQLite на libSQL. Сегодня я хочу рассказать, как можно прокачать PocketBase до нового уровня. Для этого нам понадобится свой собственный сервер libSQL, причём с “шахматами и библиотекаршами” — то есть со всеми плюшками и удобствами. Мы соберём docker-compose файл со всеми необходимыми контейнерами и настройками, настроим хост с сабдоменами для неймспейсов и даже разберёмся, как генерировать токены для авторизации в базе. Кстати, эти посты публикуются через утилиту, котрая работает на базе PocketBase и libSQL

Post Thumbnail

Время ностальгии

Лет 10 назад, когда деревья были большими, появился на свет fuckinggodateformat.com, который сейчас уже не доступен. Возможно автор забыл продлить домен, а возможно оригинальное название не всем понравилось. Но факт - в #golang действительно заебное форматирование даты и времени. И я решил воскресить fuckinggodateformat но уже в .ru где он точно не пропадет

Post Thumbnail

Уязвимый болт

В статье автор раскрывает, как злоумышленники могут эксплуатировать слабые места в системе кэширования Go Module Proxy, чтобы внедрять и поддерживать вредоносные пакеты. Он подробно объясняет, как прокси-серверы кэшируют модули Go, что открывает возможности для атак, нацеленных на долгосрочное внедрение вредоносного кода. Также в материале рассматриваются способы, которые используют злоумышленники для обхода защитных механизмов, и даются советы по усилению безопасности, такие как более тщательная проверка зависимостей и улучшение системы кэширования. А все началось с того, что злоумышленник сделал поддельный пакет BoltDB который закешировался Go Module Proxy

Post Thumbnail

Zog

Zog — это инструмент для создания схем валидации, которые помогают анализировать и валидировать значения прямо во время работы программы. Вы можете описать схему, подогнать значение под нужный формат или задать структуру для уже существующих данных — или даже всё сразу. Схемы в Zog очень гибкие и мощные: с их помощью можно описывать сложные проверки и преобразования, где значения зависят друг от друга.

Post Thumbnail

Пакетная обработка

В статье автор рассказывает о том, как на Go можно сделать систему для пакетной обработки данных в реальном времени. Суть в том, чтобы эффективно обрабатывать кучу запросов, собирая их в группы — это помогает ускорить работу и снизить нагрузку на систему. Автор разбирает основные штуки вроде каналов, горутин и таймеров, а ещё приводит примеры кода, чтобы было понятнее, как это всё реализовать. Главная фишка — найти золотую середину между скоростью обработки и количеством данных, которые система может пропустить, что особенно важно для приложений, где важна каждая миллисекунда.

Post Thumbnail

ByteDance/Sonic

В мире микросервисов важна каждая миллисекунда. Посмотрите, как команда инженеров TikTok произвела революцию в обработке JSON в Go Либа доступна тут https://github.com/bytedance/sonic Громкое заявление. Давайте проверим

Post Thumbnail

Go Examples

Часто забываемый, но очень удобный функционал #golang тестов. Можно писать работающие примеры прямо коде и они будут красиво отображаться в доке

Post Thumbnail

gRPC-md

Утилита как постман, только для gRPC. Есть консольный вариант - https://grpc.md/ но теперь есть и гуишный вариант

Post Thumbnail

Демистификация OTP

Запилил перевод статьи “Demystifying OTPs: the logic behind the offline generation of tokens” В статье автор разбирает принципы генерации токенов на автономных железках