Тысяча INSERT в логах и get_or_create под гонкой: как мы ускорили запись в Django
get_or_create() атомарный. select_for_update() защищает от гонок. UPSERT решает проблему конкурентной вставки. Звучит хорошо — пока не посмотреть на…
Tech news from the best sources
get_or_create() атомарный. select_for_update() защищает от гонок. UPSERT решает проблему конкурентной вставки. Звучит хорошо — пока не посмотреть на…
DISCLAIMER: Это неофициальный форк. Но, по моим сведениям, и в официальный pony эти фичи скоро подъедут в каком-то виде. Некоторое время назад, я ре…
Как открыть транзакцию на уровне use case, передать её репозиториям без зависимости бизнес-логики от ORM и правильно обработать вложенные вызовы. Чи…
Один open-source тайм-трекер на Symfony имеет 4343 теста, и все они проходят. При этом каждое сохранение записи времени отправляет в базу три дополн…
Когда речь заходит об ORM, большинство C# разработчиков сразу вспоминают мощный Entity Framework Core или же легковесный Dapper. Но что насчёт RepoD…
Анонс четвёртой версии redb.Core : ссылки грузятся по обращению, уникальность на любом поле, схема обновляется сама. Бесплатно, три СУБД, Free и Pro…
Всем привет! На связи Михаил Поливаха, технический лидер проекта Axelix . На известном в узких кругах блоге Hibernate (он же in-relation-to) пару ме…
Цена запроса не зависела от того, что ищешь: фильтр стоял над GROUP BY. Теперь отсечение идёт до агрегата, на трёх движках, без единой правки в коде…
Эта статья о том, как я написал 200-строчную обертку над SQLModel, которая закрывает все реальные задачи с базой. В подарок идет непрошенное мнение…
Офлайн-хранилище со сложным графом и outbox: быстрый старт в MAUI и в браузере, базовые операции и почему в этой роли EF Core только мешает. Курьер…
Победить Hibernate в тестах. Сможем? Всем, привет! На связи Михаил Поливаха, технический лидер Open Source проекта Axelix (проект, посвященный помоч…
SELECT * FROM document, client(document) запрос, который ходит по связям вместо ON. Как включить такую навигацию на ванильном PostgreSQL — без патче…
Бывают ошибки, которые не видит ни ревью, ни тесты: код отрабатывает правильно, прогон зелёный, а запросов к базе он делает в сто раз больше прежнег…
Несколько месяцев пилил pet-проект, который зашёл дальше, чем планировал: файловый ASGI-фреймворк, где дерево папок — это и есть таблица роутов. Сег…
Рассказываю, как я сам сделал ASGI-фреймворк, в котором дерево папок заменяет таблицу маршрутов, — и почему это решает проблему расхождения роутов с…
Читатели хабра знают меня как автора статей о django. Например, в предыдущем посте я писал о том, как собирался переписывать django на async/await.…
Привет, друзья! На связи Михаил Поливаха, технический лидер проекта Axelix . В рамках Spring АйО Академии я встречал большое количество похожих вопр…
Большинство ORM строятся вокруг естественного предположения: одной таблице соответствует одна entity . Это настолько привычно, что даже не …
Один User сначала кажется удобным: его можно принять в запросе, вернуть из API, сохранить в базу и передать дальше. Но со временем такой класс смеши…
На PreparedStatement обычно заканчивается вводный курс по JDBC / PostgreSQL. Все довольно просто, пока не задумываешься: а работает ли оно как надо…
TL;DR: я сделал sqlalchemy-query-manager — небольшой слой поверх SQLAlchemy для типовых backend-запросов. Он не заменяет SQLAlchemy, а д…
Всё началось с архитектурного тупика. Я занимался бэкенд-частью low-code платформы, на базе которой автоматизировались внутренние процессы крупных к…
Привет, Друзья! На связи Михаил Поливаха, технический лидер проекта Axelix . В рамках программы Hibernate в Spring АйО Academy мы краем обсудили тем…
Hibernate 7.4 исправляет старую проблему с пагинацией и fetch join. Раньше запрос на первые 10 Order вместе с OrderItem не мог безопасно ограничитьс…
Всем привет! Я Дмитрий Милов, Python-разработчик компании МУЛЬТИФАКТОР в команде продукта MULTIDIRECTORY, мы разрабатываем собственную службу катало…
Строка “false” в PHP равна true. Я узнал это, когда рубильник, которым я выключаю фичи перед живыми игроками, полгода отказывался выключаться. Два г…
Когда человек ищет компанию в Яндексе или Google, он почти всегда видит отзывы, статьи, комментарии, обсуждения в соцсетях и публикации в СМИ. И уже…
Недавно я опубликовал статью о полиморфных ссылках в реляционных базах — болезненном для производительности паттерне с дискриминированным внешним кл…