170 похожих чатов

Так, объясните мне, почему орм это плохо и как тогда

делать миграции?)

42 ответов

33 просмотра

Руками

Я как выяснил. В крупных и сложных проектах orm это плохо, потому что делает лишние телодвижения (менее производительнее). А так 50\50 люди делятся, кто за то что плохо или нет. Могу ошибаться в каких-то моментах, так как только перехожу после js)

Илья
Я как выяснил. В крупных и сложных проектах orm эт...

> менее производительнее Те, кто это говорят, даже не знают, что такое профайлинг и не могут элементарно измерить время выполнения того или иного участка кода. Я не использую ORM, но совсем по другим причинам

Dmitriy Sviridov
> менее производительнее Те, кто это говорят, даж...

> Те, кто это говорят, даже не знают, что такое профайлинг и не могут элементарно измерить время выполнения того или иного участка кода причем здесь профайлинг? ОРМ действительно очень неплохой оверхед привносит

Dmitriy Sviridov
> менее производительнее Те, кто это говорят, даж...

А можно узнать по каким именно причинам?

Илья
А можно узнать по каким именно причинам?

1. Не использую автомиграции, которые есть во многих ORM 2. Не считаю логичным описывать модели, соответствующие таблицам в БД, потому что результаты выборки далеко не всегда совпадают с полями таблиц. Мне нравится делать плоские структуры под результаты конкретных запросов. 3. Люблю очевидность и предсказуемость 4. Люблю относительно чётко видеть запрос, который пойдёт в БД, а также их количество 5. Не нравится думать над тем, "а как же мне в ORM построить вот такой вот запрос"

Dmitriy Sviridov
Ещё один. Сколько конкретно?

2093нс на простом селекте, 4167нс на более сложном

Павλо 🇺🇦
2093нс на простом селекте, 4167нс на более сложном

и я даже не уверен, что это полный цикл селекта забенчмаркан. Запустил бенчмарки в самом горме, коих всего 2 (лол)

Павλо 🇺🇦
2093нс на простом селекте, 4167нс на более сложном

Это ж ни о чём. Сетевые издержки на сам запрос к БД это всё сведут в ноль

Dmitriy Sviridov
Это ж ни о чём. Сетевые издержки на сам запрос к Б...

если для тебя 2-4к нс ни о чем, то у меня плохие новости

Павλо 🇺🇦
если для тебя 2-4к нс ни о чем, то у меня плохие н...

Сколько по времени у тебя выполняется любой запрос к БД с учётом сети? Хоть SELECT 1

Павλо 🇺🇦
без понятия. У меня нет поднятых бд

А в этом вся суть. Потому что это значение будет многократно больше того, что ты указал. Настолько больше, что разницей между 2к нс и 4к нс можно пренебречь - это ничтожно малое значение в пределах погрешности. И если принимается решение, юзать ORM или нет, то точно не это должно быть определяющим фактором.

Павλо 🇺🇦
без понятия. У меня нет поднятых бд

зато что я знаю наверняка, оправдывают медленный код сетевыми издержками только дилетанты

Павλо 🇺🇦
зато что я знаю наверняка, оправдывают медленный к...

экономят на спичках дилетанты и предварительная оптимизация - тоже из их арсенала

Dmitriy Sviridov
А в этом вся суть. Потому что это значение будет м...

если это ничтожно малое значение в пределах погрешности, то у меня плохие новости

Владимир Гришин
экономят на спичках дилетанты и предварительная оп...

"слышу звон, не слышу откуда". Увы, в ответе тебе не удалось использовать "дилетант" в правильном контексте:) расскажешь мне, что такое предварительная оптимизация?

Павλо 🇺🇦
если это ничтожно малое значение в пределах погреш...

1 секунда - это много или мало? Мало. А если речь идёт о времени поездки из Санкт-Петербурга в Москву?

о, легко. это когда ты люди начинают оптимизировтаь скорость кода ДО того, как узнают требования по времени исполнения

Владимир Гришин
о, легко. это когда ты люди начинают оптимизировта...

то есть, мы можем пилить лютый говнокод, выкидывая из головы понятие эффективности?

Павλо 🇺🇦
то есть, мы можем пилить лютый говнокод, выкидывая...

Зависит от того, что считать эффективностью. Если ORM позволяет повысить эффективность разработки, прибавляя 2к нс ко времени ответа эндпоинта, то не вижу никаких проблем использовать удобный инструмент.

Dmitriy Sviridov
Зависит от того, что считать эффективностью. Если ...

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

Павλо 🇺🇦
то есть, мы можем пилить лютый говнокод, выкидывая...

что значит понятие эффективности? Если ты ускорил свою программу на 4мкс, о чем тебя никто не просил, но потратил на это в два раза больше времени, ты не эффективен. Если твой код работает секунду, а может работать минуту, но его в три раза сложнее читать, ты написал неэффективный код

Dmitriy Sviridov
Зависит от того, что считать эффективностью. Если ...

гдеб найти такую орм? обычно всё скатывается в борьбу с нею и попытки прохачить для получения желаемого

Павλо 🇺🇦
вот и я не вижу. Только изначальный разговор был о...

а, ну и при более сложных запросах, мы не отделываемся 2к нс

Павλо 🇺🇦
вот и я не вижу. Только изначальный разговор был о...

Эта разница настолько ничтожная, что можно считать, что бесплатная. Какое у тебя время ответа эндпоинтов в сервисе?

Павλо 🇺🇦
а, ну и при более сложных запросах, мы не отделыва...

https://medium.com/@rocketlaunchr.cloud/how-to-benchmark-dbq-vs-sqlx-vs-gorm-e814caacecb5

Павλо 🇺🇦
"слышу звон, не слышу откуда". Увы, в ответе тебе ...

Если твоим ресурсои будут пользоваться 1000 человек, а ты заморачиваешься как на лям это и есть предварительная оптимизация. Когда ты пишешь специфические алгоритмы что бы сэкономить несколько байт, это тоже предварительная оптимизация.

Павλо 🇺🇦
а, ну и при более сложных запросах, мы не отделыва...

Более сложные запросы и в БД будут выполняться обычно более долго

A DROP TABLE users
гдеб найти такую орм? обычно всё скатывается в бор...

Так и есть. Я насчёт ORM уже выше высказался по пунктам https://t.me/gogolang/842686

Владимир Гришин
что значит понятие эффективности? Если ты ускорил ...

> Если твой код работает секунду, а может работать минуту, но его в три раза сложнее читать, ты написал неэффективный код понял. Можешь не продолжать

Dmitriy Sviridov
Более сложные запросы и в БД будут выполняться обы...

орм их обрабатывать будет тоже дольше. И тут горм дает неплохой такой оверхед

Павλо 🇺🇦
орм их обрабатывать будет тоже дольше. И тут горм ...

Сколько по времени отвечает любой эндпоинт твоего сервиса, лазающий в БД? Ты сам сказал "Как можно использовать "много" или "мало" вне сравнения с чем-либо?"

Dmitriy Sviridov
Сколько по времени отвечает любой эндпоинт твоего ...

нисколько. Я пишу вебфреймворк. И мне хватает того, что запрос в среднем полносью обрабатывается в 600нс

Павλо 🇺🇦
нисколько. Я пишу вебфреймворк. И мне хватает того...

Если ты с БД не работаешь, то о чём речь вообще? О том, сколько выполняется участок кода в вакууме?

Ꙕ Ꙗ
Скорее эффективный но не поддерживаемый

Он же не решает задачу, значит неэффективен:)

Владимир Гришин
Самый быстрый раздатчик хелловорлда в мире:)

по крайней мере, я знаю толк в базовых оптимизациях. Я уже продвинутый гофер

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта