Блог программиста

Пакет sync/singleflight в Go: устранение дублирования идентичных запросов

Пару лет назад в условиях быстрого роста проекта столкнулся с чрезмерной нагрузкой на базу данных при холодном старте, а порой и при устаревании кэша. Дебаг выявил, что из большого количества запросов несколько вызывались на порядок чаще других. Настолько часто, что за время построения кэша после первого пришедшего запроса успевало прилететь еще множество запросов и все они параллельно нещадно грузили базу данных.

В тот раз задачу в спешке решил не самым изящным образом поэтому когда намедни столкнулся с похожим кейсом уже на Go-стеке, первым делом отправился в Google во избежание прежних костылей.
читать далее →
Раздел Go
(Codeblog)

Установка расширения обновляет версию PHP

В одном из контейнеров внезапно обновилась версия PHP, несмотря на то, что в Dockerfile была задана фиксированная версия. Пришлось дебажить процесс пересборки docker контейнеров, чтобы понять, в чем причина.
читать далее →
Раздел PHP
(Codeblog)

Сервис для ручного тестирования AES шифрования Laravel

При подключении к проекту на Laravel коллег-тестировщиков часто требуется иметь возможность проверить корректность шифрования/дешифрования данных внутри разрабатываемого ресурса. Laravel под капотом использует реализация шифрования из пакета Illuminate\Encryption\Encrypter, что затрудняет использование уже имеющихся сервисов для "дефолтного" AES шифрования.
По этой причине запустил небольшой сервис в помощь ручному тестированию...
читать далее →
Раздел PHP
(Codeblog)

Работа с местоположениями. Геолокация и геокодирование.

Реализованы и опубликованы пакеты, позволяющие интегрировать на Ваш сайт/сервис такие функции, как: определение местоположения по IP, преобразование координат в адрес и преобразование адреса в координаты.
Бонусом идет увеличение бесплатных лимитов за счет возможности интеграции нескольких сторонними сервисов одновременно.
читать далее →
Раздел PHP
(Codeblog)