RU

Тысяча INSERT в логах и get_or_create под гонкой: как мы ускорили запись в Django

get_or_create() атомарный. select_for_update() защищает от гонок. UPSERT решает проблему конкурентной вставки. Звучит хорошо — пока не посмотреть на…

djangopostgresqlormbulkupsertget_or_createоптимизацияbulk_createbulk_updateupdate_or_create
Habr
RU

150 запросов на один flush, и 4343 зелёных теста. Как я делал детектор N+1 и как он сам меня обманывал

Один open-source тайм-трекер на Symfony имеет 4343 теста, и все они проходят. При этом каждое сохранение записи времени отправляет в базу три дополн…

phpunitdoctrinelaraveln+1ormленивая загрузкаquery-guard
Habr
RU

Что скрывают популярные ORM для C#: проверка проектов RepoDB и SqlSugar

Когда речь заходит об ORM, большинство C# разработчиков сразу вспоминают мощный Entity Framework Core или же легковесный Dapper. Но что насчёт RepoD…

.netormc#c#.netsqlпрограммированиестатический анализинформационная безопасность
Habr
RU

Предзагрузил пачкой — получил N² запросов. Как expire_on_commit превращает оптимизацию в квадрат

Бывают ошибки, которые не видит ни ревью, ни тесты: код отрабатывает правильно, прогон зелёный, а запросов к базе он делает в сто раз больше прежнег…

sqlalchemyormpostgresqlpythonn+1оптимизацияпроизводительностьexpire_on_commitпрофилирование
Habr
RU

Я написал ASGI-фреймворк, в котором дерево папок — это и есть API

Несколько месяцев пилил pet-проект, который зашёл дальше, чем планировал: файловый ASGI-фреймворк, где дерево папок — это и есть таблица роутов. Сег…

pythonasgiвеб-фреймворкormpostgresqlopen sourceбезопасностьтестированиебэкенд
Habr
RU

DAO vs Repository и ORM: где заканчивается архитектура и начинается хаос

Всем привет! Я Дмитрий Милов, Python-разработчик компании МУЛЬТИФАКТОР в команде продукта MULTIDIRECTORY, мы разрабатываем собственную службу катало…

multifactormultidirectoryархитектура приложенийоопpythonormчистый кодпаттерныrepositorydao
Habr
RU

Два года один пилю MMORPG на CI4: пять багов, за каждым из которых стоял живой игрок

Строка “false” в PHP равна true. Я узнал это, когда рубильник, которым я выключаю фичи перед живыми игроками, полгода отказывался выключаться. Два г…

codeigniter 4phpphpstanmysqlormutf8mb4граблиmmorpgtelegram ботрефакторинг
Habr
RU

SERM, ORM, HRM, Hidden Marketing — чем отличаются и почему бизнес теряет деньги, пока путает эти понятия

Когда человек ищет компанию в Яндексе или Google, он почти всегда видит отзывы, статьи, комментарии, обсуждения в соцсетях и публикации в СМИ. И уже…

отзывотзывырепутацияимиджлояльностьormsermgoogleяндексseo
Habr