home.social

#orm — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #orm, aggregated by home.social.

fetched live
  1. Pony ORM: толстая пачка фич и улучшений

    DISCLAIMER: Это неофициальный форк. Но, по моим сведениям, и в официальный pony эти фичи скоро подъедут в каком-то виде. Некоторое время назад, я решил испробовать программирование с помощью ИИ-агентов и решил выбрать pony в качестве пет-проекта. О pony я уже писал в предыдущей статье. Теперь хочу поделиться результатами своего недельного спринта. В pony добавилось: - поддержка асинхронности - поддержка миграций - разнообразные улучшения из серии quality-of-life Так что, фреймворк pony теперь чрезвычайно важен и сердит (что можно понять по этой картинке). Всё благодаря DeepSeek 4.1 Flash и Kimi K3 (последняя - умная и дорогая, она делала ревью).

    habr.com/ru/articles/1086790/

    #ponyorm #orm #async #migrations

  2. Pony ORM: толстая пачка фич и улучшений

    DISCLAIMER: Это неофициальный форк. Но, по моим сведениям, и в официальный pony эти фичи скоро подъедут в каком-то виде. Некоторое время назад, я решил испробовать программирование с помощью ИИ-агентов и решил выбрать pony в качестве пет-проекта. О pony я уже писал в предыдущей статье. Теперь хочу поделиться результатами своего недельного спринта. В pony добавилось: - поддержка асинхронности - поддержка миграций - разнообразные улучшения из серии quality-of-life Так что, фреймворк pony теперь чрезвычайно важен и сердит (что можно понять по этой картинке). Всё благодаря DeepSeek 4.1 Flash и Kimi K3 (последняя - умная и дорогая, она делала ревью).

    habr.com/ru/articles/1086790/

    #ponyorm #orm #async #migrations

  3. Pony ORM: толстая пачка фич и улучшений

    DISCLAIMER: Это неофициальный форк. Но, по моим сведениям, и в официальный pony эти фичи скоро подъедут в каком-то виде. Некоторое время назад, я решил испробовать программирование с помощью ИИ-агентов и решил выбрать pony в качестве пет-проекта. О pony я уже писал в предыдущей статье. Теперь хочу поделиться результатами своего недельного спринта. В pony добавилось: - поддержка асинхронности - поддержка миграций - разнообразные улучшения из серии quality-of-life Так что, фреймворк pony теперь чрезвычайно важен и сердит (что можно понять по этой картинке). Всё благодаря DeepSeek 4.1 Flash и Kimi K3 (последняя - умная и дорогая, она делала ревью).

    habr.com/ru/articles/1086790/

    #ponyorm #orm #async #migrations

  4. PHP: четыре Active Record в одной клетке — кто быстрее достаёт ваши данные

    В прошлый раз я вытащил Active Record из Yii1 в отдельный composer-пакет и показал, что код Yii1 умеет жить без фреймворка. Но интереснее другое — насколько хорошо он это делает рядом с остальными. Поэтому я поднял четыре ORM на одной схеме, одних данных и одном железе и прогнал их через phpbench — код и данные лежат на GitHub . В клетке: Eloquent (Laravel), Yii2, Yiisoft Active Record (Yii3) и мой форк Active Record из Yii1 — yii1x/active-record , далее в статье — просто Yii1x. Можно подумать: раз в предыдущем абзаце прозвучало «мой форк», то и замеры предвзяты. Признаюсь, изначально такой план и был — а потом я всё-таки постарался сделать всё максимально честно. Насколько получилось — судите по цифрам.

    habr.com/ru/articles/1086910/

    #PHP #ORM #Active_Record #Eloquent #Laravel #Yii2 #Yii3 #Yii1 #бенчмарк #производительность

  5. PHP: четыре Active Record в одной клетке — кто быстрее достаёт ваши данные

    В прошлый раз я вытащил Active Record из Yii1 в отдельный composer-пакет и показал, что код Yii1 умеет жить без фреймворка. Но интереснее другое — насколько хорошо он это делает рядом с остальными. Поэтому я поднял четыре ORM на одной схеме, одних данных и одном железе и прогнал их через phpbench — код и данные лежат на GitHub . В клетке: Eloquent (Laravel), Yii2, Yiisoft Active Record (Yii3) и мой форк Active Record из Yii1 — yii1x/active-record , далее в статье — просто Yii1x. Можно подумать: раз в предыдущем абзаце прозвучало «мой форк», то и замеры предвзяты. Признаюсь, изначально такой план и был — а потом я всё-таки постарался сделать всё максимально честно. Насколько получилось — судите по цифрам.

    habr.com/ru/articles/1086910/

    #PHP #ORM #Active_Record #Eloquent #Laravel #Yii2 #Yii3 #Yii1 #бенчмарк #производительность

  6. PHP: четыре Active Record в одной клетке — кто быстрее достаёт ваши данные

    В прошлый раз я вытащил Active Record из Yii1 в отдельный composer-пакет и показал, что код Yii1 умеет жить без фреймворка. Но интереснее другое — насколько хорошо он это делает рядом с остальными. Поэтому я поднял четыре ORM на одной схеме, одних данных и одном железе и прогнал их через phpbench — код и данные лежат на GitHub . В клетке: Eloquent (Laravel), Yii2, Yiisoft Active Record (Yii3) и мой форк Active Record из Yii1 — yii1x/active-record , далее в статье — просто Yii1x. Можно подумать: раз в предыдущем абзаце прозвучало «мой форк», то и замеры предвзяты. Признаюсь, изначально такой план и был — а потом я всё-таки постарался сделать всё максимально честно. Насколько получилось — судите по цифрам.

    habr.com/ru/articles/1086910/

    #PHP #ORM #Active_Record #Eloquent #Laravel #Yii2 #Yii3 #Yii1 #бенчмарк #производительность

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

    Один open-source тайм-трекер на Symfony имеет 4343 теста, и все они проходят. При этом каждое сохранение записи времени отправляет в базу три дополнительных SELECT запроса: ставку самой записи, ставку проекта и ставку активности. Если в одном flush() 50 записей, а столько строк показывает страница массового редактирования, только за ставками уходит 150 запросов. Тесты этот код покрывают, но ни один не падает, в них нет ни одной проверки проблем с запросами к базе данных. Для решения этой проблемы сделал инструмент, которого в конце августа ещё не существовало. Правда, ещё до проверок сторонних проектов на N+1, он успел несколько раз обмануть меня самого, и всегда одинаково, показывал зелёное там, где на самом деле не работал.

    habr.com/ru/articles/1082250/

    #phpunit #doctrine #laravel #n+1 #orm #ленивая_загрузка #queryguard

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

    Один open-source тайм-трекер на Symfony имеет 4343 теста, и все они проходят. При этом каждое сохранение записи времени отправляет в базу три дополнительных SELECT запроса: ставку самой записи, ставку проекта и ставку активности. Если в одном flush() 50 записей, а столько строк показывает страница массового редактирования, только за ставками уходит 150 запросов. Тесты этот код покрывают, но ни один не падает, в них нет ни одной проверки проблем с запросами к базе данных. Для решения этой проблемы сделал инструмент, которого в конце августа ещё не существовало. Правда, ещё до проверок сторонних проектов на N+1, он успел несколько раз обмануть меня самого, и всегда одинаково, показывал зелёное там, где на самом деле не работал.

    habr.com/ru/articles/1082250/

    #phpunit #doctrine #laravel #n+1 #orm #ленивая_загрузка #queryguard

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

    Один open-source тайм-трекер на Symfony имеет 4343 теста, и все они проходят. При этом каждое сохранение записи времени отправляет в базу три дополнительных SELECT запроса: ставку самой записи, ставку проекта и ставку активности. Если в одном flush() 50 записей, а столько строк показывает страница массового редактирования, только за ставками уходит 150 запросов. Тесты этот код покрывают, но ни один не падает, в них нет ни одной проверки проблем с запросами к базе данных. Для решения этой проблемы сделал инструмент, которого в конце августа ещё не существовало. Правда, ещё до проверок сторонних проектов на N+1, он успел несколько раз обмануть меня самого, и всегда одинаково, показывал зелёное там, где на самом деле не работал.

    habr.com/ru/articles/1082250/

    #phpunit #doctrine #laravel #n+1 #orm #ленивая_загрузка #queryguard

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

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

    habr.com/ru/companies/pvs-stud

    #net #orm #c# #c#net #sql #программирование #статический_анализ #информационная_безопасность

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

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

    habr.com/ru/companies/pvs-stud

    #net #orm #c# #c#net #sql #программирование #статический_анализ #информационная_безопасность

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

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

    habr.com/ru/companies/pvs-stud

    #net #orm #c# #c#net #sql #программирование #статический_анализ #информационная_безопасность

  13. Картинка загрузилась, но API вернул images: [] — ловушка relationship в SQLAlchemy

    Это моя вторая статья. После первой я посмотрел на статистику и понял простую вещь: начинать издалека и пытаться рассказать сразу обо всём — плохая идея. Поэтому сейчас будет одна задача, один странный баг и одна строка, которая его исправила. Я добавлял в админку сайта портфолио. У проекта есть заголовок, описание и несколько изображений. После загрузки файла API должен вернуть обновлённый проект, чтобы интерфейс сразу показал новую картинку. Файл сохранялся. Строка появлялась в базе. Повторный GET тоже находил изображение. Но ответ самого запроса загрузки выглядел так:

    habr.com/ru/articles/1079326/

    #Python #SQLAlchemy #AsyncSession #FastAPI #ORM #relationship #identity_map #selectin_loading #REST_API

  14. Картинка загрузилась, но API вернул images: [] — ловушка relationship в SQLAlchemy

    Это моя вторая статья. После первой я посмотрел на статистику и понял простую вещь: начинать издалека и пытаться рассказать сразу обо всём — плохая идея. Поэтому сейчас будет одна задача, один странный баг и одна строка, которая его исправила. Я добавлял в админку сайта портфолио. У проекта есть заголовок, описание и несколько изображений. После загрузки файла API должен вернуть обновлённый проект, чтобы интерфейс сразу показал новую картинку. Файл сохранялся. Строка появлялась в базе. Повторный GET тоже находил изображение. Но ответ самого запроса загрузки выглядел так:

    habr.com/ru/articles/1079326/

    #Python #SQLAlchemy #AsyncSession #FastAPI #ORM #relationship #identity_map #selectin_loading #REST_API

  15. Картинка загрузилась, но API вернул images: [] — ловушка relationship в SQLAlchemy

    Это моя вторая статья. После первой я посмотрел на статистику и понял простую вещь: начинать издалека и пытаться рассказать сразу обо всём — плохая идея. Поэтому сейчас будет одна задача, один странный баг и одна строка, которая его исправила. Я добавлял в админку сайта портфолио. У проекта есть заголовок, описание и несколько изображений. После загрузки файла API должен вернуть обновлённый проект, чтобы интерфейс сразу показал новую картинку. Файл сохранялся. Строка появлялась в базе. Повторный GET тоже находил изображение. Но ответ самого запроса загрузки выглядел так:

    habr.com/ru/articles/1079326/

    #Python #SQLAlchemy #AsyncSession #FastAPI #ORM #relationship #identity_map #selectin_loading #REST_API

  16. redb 4.0: ленивые ссылки, уникальные ключи и обновление базы без DBA

    Анонс четвёртой версии redb.Core : ссылки грузятся по обращению, уникальность на любом поле, схема обновляется сама. Бесплатно, три СУБД, Free и Pro одинаково. Готовится redb.Core 4.0. За год это первый мажор такого масштаба: не смена номера, а качественное расширение функционала. Он про три вещи, которые чаще всего просили: ленивая загрузка ссылок между объектами, уникальные ключи на любом поле и обновление схемы базы без ручных действий администратора. Всё вместе, на трёх СУБД сразу и без разделения на «в Free так, в Pro иначе». Коротко, что изменится для приложения.

    habr.com/ru/articles/1077124/

    #dotnet #postgresql #mssql #sqlite #orm #database

  17. redb 4.0: ленивые ссылки, уникальные ключи и обновление базы без DBA

    Анонс четвёртой версии redb.Core : ссылки грузятся по обращению, уникальность на любом поле, схема обновляется сама. Бесплатно, три СУБД, Free и Pro одинаково. Готовится redb.Core 4.0. За год это первый мажор такого масштаба: не смена номера, а качественное расширение функционала. Он про три вещи, которые чаще всего просили: ленивая загрузка ссылок между объектами, уникальные ключи на любом поле и обновление схемы базы без ручных действий администратора. Всё вместе, на трёх СУБД сразу и без разделения на «в Free так, в Pro иначе». Коротко, что изменится для приложения.

    habr.com/ru/articles/1077124/

    #dotnet #postgresql #mssql #sqlite #orm #database

  18. redb 4.0: ленивые ссылки, уникальные ключи и обновление базы без DBA

    Анонс четвёртой версии redb.Core : ссылки грузятся по обращению, уникальность на любом поле, схема обновляется сама. Бесплатно, три СУБД, Free и Pro одинаково. Готовится redb.Core 4.0. За год это первый мажор такого масштаба: не смена номера, а качественное расширение функционала. Он про три вещи, которые чаще всего просили: ленивая загрузка ссылок между объектами, уникальные ключи на любом поле и обновление схемы базы без ручных действий администратора. Всё вместе, на трёх СУБД сразу и без разделения на «в Free так, в Pro иначе». Коротко, что изменится для приложения.

    habr.com/ru/articles/1077124/

    #dotnet #postgresql #mssql #sqlite #orm #database

  19. [Перевод] Две аннотации Hibernate, которые вдвое сократили время обработки JSON

    Всем привет! На связи Михаил Поливаха, технический лидер проекта Axelix . На известном в узких кругах блоге Hibernate (он же in-relation-to) пару месяцев назад вышла статья , которая, как мне кажется, будет полезной для большого количества разработчиков, кто пишет Java backend системы с использованием Hibernate. На основании своего эмпирического опыта могу сказать, что многие в той или иной степени работают с Json или подобными структурами в БД вместе с Hibernate. Если вы работали или работаете с такими системами, то та проблема, с которой столкнулись парни будет стоит вашего внмиания. Я добавил местами уточнения, которые посчитал нужным, но в целом, ребятам большой респект за то, что поделились своим опытом. Приятного чтения!

    habr.com/ru/companies/spring_a

    #hibernate #json #jsonb #performance #orm #производительность #java #jpa

  20. [Перевод] Две аннотации Hibernate, которые вдвое сократили время обработки JSON

    Всем привет! На связи Михаил Поливаха, технический лидер проекта Axelix . На известном в узких кругах блоге Hibernate (он же in-relation-to) пару месяцев назад вышла статья , которая, как мне кажется, будет полезной для большого количества разработчиков, кто пишет Java backend системы с использованием Hibernate. На основании своего эмпирического опыта могу сказать, что многие в той или иной степени работают с Json или подобными структурами в БД вместе с Hibernate. Если вы работали или работаете с такими системами, то та проблема, с которой столкнулись парни будет стоит вашего внмиания. Я добавил местами уточнения, которые посчитал нужным, но в целом, ребятам большой респект за то, что поделились своим опытом. Приятного чтения!

    habr.com/ru/companies/spring_a

    #hibernate #json #jsonb #performance #orm #производительность #java #jpa

  21. [Перевод] Две аннотации Hibernate, которые вдвое сократили время обработки JSON

    Всем привет! На связи Михаил Поливаха, технический лидер проекта Axelix . На известном в узких кругах блоге Hibernate (он же in-relation-to) пару месяцев назад вышла статья , которая, как мне кажется, будет полезной для большого количества разработчиков, кто пишет Java backend системы с использованием Hibernate. На основании своего эмпирического опыта могу сказать, что многие в той или иной степени работают с Json или подобными структурами в БД вместе с Hibernate. Если вы работали или работаете с такими системами, то та проблема, с которой столкнулись парни будет стоит вашего внмиания. Я добавил местами уточнения, которые посчитал нужным, но в целом, ребятам большой респект за то, что поделились своим опытом. Приятного чтения!

    habr.com/ru/companies/spring_a

    #hibernate #json #jsonb #performance #orm #производительность #java #jpa

  22. redb 3.7.1: поиск по props быстрее до 100 раз. Альтернатива EF Core или дополнение к нему

    Цена запроса не зависела от того, что ищешь: фильтр стоял над GROUP BY. Теперь отсечение идёт до агрегата, на трёх движках, без единой правки в коде приложения. До 100 раз на диапазоне по дате и в 5,3 раза на полной выборке в MS SQL Server. Есть класс проблем производительности, который не видно на маленьких данных и невозможно не заметить на больших. Наш выглядел так: запрос искал один редкий номер заказа среди сотни тысяч объектов ровно столько же, сколько поиск, не находящий ничего. Избирательность условия не влияла на время. Совсем. Причина оказалась в форме сгенерированного SQL. Значения props живут построчно, и запрос сначала сворачивает их в широкую строку через GROUP BY , а уже потом применяет фильтр. Условие стояло над агрегатом, то есть фильтровало результат свёртки, а не колонку. Индексу там зацепиться не за что: к моменту проверки движок уже прочитал и свернул все значения всех объектов схемы. Триграммный индекс по строкам лежал без дела. В 3.7.1 появился шаг, который ...

    habr.com/ru/articles/1074984/

    #dotnet #postgresql #mssql #sqlite #performance #orm

  23. redb 3.7.1: поиск по props быстрее до 100 раз. Альтернатива EF Core или дополнение к нему

    Цена запроса не зависела от того, что ищешь: фильтр стоял над GROUP BY. Теперь отсечение идёт до агрегата, на трёх движках, без единой правки в коде приложения. До 100 раз на диапазоне по дате и в 5,3 раза на полной выборке в MS SQL Server. Есть класс проблем производительности, который не видно на маленьких данных и невозможно не заметить на больших. Наш выглядел так: запрос искал один редкий номер заказа среди сотни тысяч объектов ровно столько же, сколько поиск, не находящий ничего. Избирательность условия не влияла на время. Совсем. Причина оказалась в форме сгенерированного SQL. Значения props живут построчно, и запрос сначала сворачивает их в широкую строку через GROUP BY , а уже потом применяет фильтр. Условие стояло над агрегатом, то есть фильтровало результат свёртки, а не колонку. Индексу там зацепиться не за что: к моменту проверки движок уже прочитал и свернул все значения всех объектов схемы. Триграммный индекс по строкам лежал без дела. В 3.7.1 появился шаг, который ...

    habr.com/ru/articles/1074984/

    #dotnet #postgresql #mssql #sqlite #performance #orm

  24. redb 3.7.1: поиск по props быстрее до 100 раз. Альтернатива EF Core или дополнение к нему

    Цена запроса не зависела от того, что ищешь: фильтр стоял над GROUP BY. Теперь отсечение идёт до агрегата, на трёх движках, без единой правки в коде приложения. До 100 раз на диапазоне по дате и в 5,3 раза на полной выборке в MS SQL Server. Есть класс проблем производительности, который не видно на маленьких данных и невозможно не заметить на больших. Наш выглядел так: запрос искал один редкий номер заказа среди сотни тысяч объектов ровно столько же, сколько поиск, не находящий ничего. Избирательность условия не влияла на время. Совсем. Причина оказалась в форме сгенерированного SQL. Значения props живут построчно, и запрос сначала сворачивает их в широкую строку через GROUP BY , а уже потом применяет фильтр. Условие стояло над агрегатом, то есть фильтровало результат свёртки, а не колонку. Индексу там зацепиться не за что: к моменту проверки движок уже прочитал и свернул все значения всех объектов схемы. Триграммный индекс по строкам лежал без дела. В 3.7.1 появился шаг, который ...

    habr.com/ru/articles/1074984/

    #dotnet #postgresql #mssql #sqlite #performance #orm

  25. I'm listening to @jacobtylerwalls talk about auto-prefetching and model field fetch modes in Django 6.1.

    I met Jacob last year, then again at Django on the Med, and saw an earlier version of this talk at DjangoCon Europe in Athens in April.

    It's really interesting to see how both the feature and the talk have evolved in just a few months, and always a pleasure to hear Jacob explain Django's ORM. 😊

    #DjangoCon #DjangoConUS #Django #ORM

  26. I'm listening to @jacobtylerwalls talk about auto-prefetching and model field fetch modes in Django 6.1.

    I met Jacob last year, then again at Django on the Med, and saw an earlier version of this talk at DjangoCon Europe in Athens in April.

    It's really interesting to see how both the feature and the talk have evolved in just a few months, and always a pleasure to hear Jacob explain Django's ORM. 😊

  27. I'm listening to @jacobtylerwalls talk about auto-prefetching and model field fetch modes in Django 6.1.

    I met Jacob last year, then again at Django on the Med, and saw an earlier version of this talk at DjangoCon Europe in Athens in April.

    It's really interesting to see how both the feature and the talk have evolved in just a few months, and always a pleasure to hear Jacob explain Django's ORM. 😊

    #DjangoCon #DjangoConUS #Django #ORM

  28. I'm listening to @jacobtylerwalls talk about auto-prefetching and model field fetch modes in Django 6.1.

    I met Jacob last year, then again at Django on the Med, and saw an earlier version of this talk at DjangoCon Europe in Athens in April.

    It's really interesting to see how both the feature and the talk have evolved in just a few months, and always a pleasure to hear Jacob explain Django's ORM. 😊

    #DjangoCon #DjangoConUS #Django #ORM

  29. I'm listening to @jacobtylerwalls talk about auto-prefetching and model field fetch modes in Django 6.1.

    I met Jacob last year, then again at Django on the Med, and saw an earlier version of this talk at DjangoCon Europe in Athens in April.

    It's really interesting to see how both the feature and the talk have evolved in just a few months, and always a pleasure to hear Jacob explain Django's ORM. 😊

    #DjangoCon #DjangoConUS #Django #ORM

  30. MetaORM — когда устал от ORM настолько, что написал свою

    Эта статья о том, как я написал 200-строчную обертку над SQLModel, которая закрывает все реальные задачи с базой. В подарок идет непрошенное мнение об излишней сложности ORM. Это будет будет попытка переосмыслить существующие подходы к ORM и предложить инструмент с более простой документацией, низким порогом входа в работу с СУБД, но при этом сохраняющий возможность делать сложные вещи.

    habr.com/ru/companies/cloud_ru

    #python #orm #sql

  31. MetaORM — когда устал от ORM настолько, что написал свою

    Эта статья о том, как я написал 200-строчную обертку над SQLModel, которая закрывает все реальные задачи с базой. В подарок идет непрошенное мнение об излишней сложности ORM. Это будет будет попытка переосмыслить существующие подходы к ORM и предложить инструмент с более простой документацией, низким порогом входа в работу с СУБД, но при этом сохраняющий возможность делать сложные вещи.

    habr.com/ru/companies/cloud_ru

    #python #orm #sql

  32. MetaORM — когда устал от ORM настолько, что написал свою

    Эта статья о том, как я написал 200-строчную обертку над SQLModel, которая закрывает все реальные задачи с базой. В подарок идет непрошенное мнение об излишней сложности ORM. Это будет будет попытка переосмыслить существующие подходы к ORM и предложить инструмент с более простой документацией, низким порогом входа в работу с СУБД, но при этом сохраняющий возможность делать сложные вещи.

    habr.com/ru/companies/cloud_ru

    #python #orm #sql

  33. 3000 точек на карте грузились полсекунды. Ускорял не там, где думал

    Эндпоинт отдавался за 380–510 мс и 811 КБ. Я думал, что причина одна – тяжёлый запрос. Разобрался: причин было три, и они лежали одна под другой. Пока не убираешь верхнюю, следующую просто не видно. Индексы, обход ORM и внезапно – gzip, который не был включён вообще.

    habr.com/ru/articles/1073070/

    #MongoDB #FastAPI #Beanie #ORM #оптимизация_API #индексы_MongoDB #gzip #nginx #Python #explain

  34. 3000 точек на карте грузились полсекунды. Ускорял не там, где думал

    Эндпоинт отдавался за 380–510 мс и 811 КБ. Я думал, что причина одна – тяжёлый запрос. Разобрался: причин было три, и они лежали одна под другой. Пока не убираешь верхнюю, следующую просто не видно. Индексы, обход ORM и внезапно – gzip, который не был включён вообще.

    habr.com/ru/articles/1073070/

    #MongoDB #FastAPI #Beanie #ORM #оптимизация_API #индексы_MongoDB #gzip #nginx #Python #explain

  35. 3000 точек на карте грузились полсекунды. Ускорял не там, где думал

    Эндпоинт отдавался за 380–510 мс и 811 КБ. Я думал, что причина одна – тяжёлый запрос. Разобрался: причин было три, и они лежали одна под другой. Пока не убираешь верхнюю, следующую просто не видно. Индексы, обход ORM и внезапно – gzip, который не был включён вообще.

    habr.com/ru/articles/1073070/

    #MongoDB #FastAPI #Beanie #ORM #оптимизация_API #индексы_MongoDB #gzip #nginx #Python #explain

  36. #TIL in #Django orm calling `.count()` forces the query to be evaluated this means that they can't be used with `OuterRef` in `Subquery`.

    Many thanks to @CodenameTim for bringing this to my attention.

    #django #python #webdev #orm

  37. Yii1: извлечение Active Record в отдельный composer пакет

    Может показаться, что старый Yii1 в 2026 году уже никому не нужен. Но, на удивление, проектов, застрявших на этом фреймворке, довольно много. Чаще всего сдерживающими факторами от переезда являются размер проекта, какие‑то свои надстройки над фреймворком или отсутствие денег у бизнеса. Переезд сопряжён с рисками получить два проекта на годы вперёд. Параллельно требуются какие‑либо доработки, что требует вдвое больше ресурсов и от разработчиков, и от бизнеса. Последний год я активно изучаю устройство современных PHP‑фреймворков и PSR‑стандарты. Относительно недавно мне пришла мысль: а что ценного есть в Yii1 и что блокирует возможность быстро съехать на другой фреймворк? Ответ довольно банален — это Active Record. Можно сказать, что это сердце фреймворка. Почему же так получилось? Как ни странно, внешний API данного слоя довольно неплох даже в 2026 году, не говоря уже о 2008-м, когда он появился на свет, а скорее всего, намного раньше. Что же мы имеем из возможностей данной ORM?

    habr.com/ru/articles/1069280/

    #Yii1 #Active_Record #composer_пакет #миграция_с_Yii1 #рефакторинг_легаси #PHP_84 #PSR11 #PSR14 #PSR16 #ORM

  38. Yii1: извлечение Active Record в отдельный composer пакет

    Может показаться, что старый Yii1 в 2026 году уже никому не нужен. Но, на удивление, проектов, застрявших на этом фреймворке, довольно много. Чаще всего сдерживающими факторами от переезда являются размер проекта, какие‑то свои надстройки над фреймворком или отсутствие денег у бизнеса. Переезд сопряжён с рисками получить два проекта на годы вперёд. Параллельно требуются какие‑либо доработки, что требует вдвое больше ресурсов и от разработчиков, и от бизнеса. Последний год я активно изучаю устройство современных PHP‑фреймворков и PSR‑стандарты. Относительно недавно мне пришла мысль: а что ценного есть в Yii1 и что блокирует возможность быстро съехать на другой фреймворк? Ответ довольно банален — это Active Record. Можно сказать, что это сердце фреймворка. Почему же так получилось? Как ни странно, внешний API данного слоя довольно неплох даже в 2026 году, не говоря уже о 2008-м, когда он появился на свет, а скорее всего, намного раньше. Что же мы имеем из возможностей данной ORM?

    habr.com/ru/articles/1069280/

    #Yii1 #Active_Record #composer_пакет #миграция_с_Yii1 #рефакторинг_легаси #PHP_84 #PSR11 #PSR14 #PSR16 #ORM

  39. Yii1: извлечение Active Record в отдельный composer пакет

    Может показаться, что старый Yii1 в 2026 году уже никому не нужен. Но, на удивление, проектов, застрявших на этом фреймворке, довольно много. Чаще всего сдерживающими факторами от переезда являются размер проекта, какие‑то свои надстройки над фреймворком или отсутствие денег у бизнеса. Переезд сопряжён с рисками получить два проекта на годы вперёд. Параллельно требуются какие‑либо доработки, что требует вдвое больше ресурсов и от разработчиков, и от бизнеса. Последний год я активно изучаю устройство современных PHP‑фреймворков и PSR‑стандарты. Относительно недавно мне пришла мысль: а что ценного есть в Yii1 и что блокирует возможность быстро съехать на другой фреймворк? Ответ довольно банален — это Active Record. Можно сказать, что это сердце фреймворка. Почему же так получилось? Как ни странно, внешний API данного слоя довольно неплох даже в 2026 году, не говоря уже о 2008-м, когда он появился на свет, а скорее всего, намного раньше. Что же мы имеем из возможностей данной ORM?

    habr.com/ru/articles/1069280/

    #Yii1 #Active_Record #composer_пакет #миграция_с_Yii1 #рефакторинг_легаси #PHP_84 #PSR11 #PSR14 #PSR16 #ORM

  40. Локальная база на клиенте: Blazor WebAssembly и MAUI на SQLite — без EF DbContext, Include и миграций

    Офлайн-хранилище со сложным графом и outbox: быстрый старт в MAUI и в браузере, базовые операции и почему в этой роли EF Core только мешает. Курьер спустился в подвал склада — связи нет. Кладовщик третий час принимает поставку в зоне, где вайфай добивает через раз. Пользователь заполнил форму на четыре экрана и нажал «Сохранить» в момент, когда сервер уехал на деплой. Приложение должно продолжать работать. Значит ему нужна своя база на устройстве : не кеш ответов, а полноценное локальное хранилище, где живут незавершённые документы, локальные состояния и очередь изменений на отправку — тот самый outbox, который дошлёт всё, когда связь вернётся. И вот тут начинается знакомое.

    habr.com/ru/articles/1068388/

    #c#_net #sqlite #blazor #maui #embedded #orm #redb #opensource

  41. Локальная база на клиенте: Blazor WebAssembly и MAUI на SQLite — без EF DbContext, Include и миграций

    Офлайн-хранилище со сложным графом и outbox: быстрый старт в MAUI и в браузере, базовые операции и почему в этой роли EF Core только мешает. Курьер спустился в подвал склада — связи нет. Кладовщик третий час принимает поставку в зоне, где вайфай добивает через раз. Пользователь заполнил форму на четыре экрана и нажал «Сохранить» в момент, когда сервер уехал на деплой. Приложение должно продолжать работать. Значит ему нужна своя база на устройстве : не кеш ответов, а полноценное локальное хранилище, где живут незавершённые документы, локальные состояния и очередь изменений на отправку — тот самый outbox, который дошлёт всё, когда связь вернётся. И вот тут начинается знакомое.

    habr.com/ru/articles/1068388/

    #c#_net #sqlite #blazor #maui #embedded #orm #redb #opensource