Здравствуйте, Ops, Вы писали:
V>>Потому что SQL безбожно устарел и вообще в современной разработке является сущностью второго рода — производной генерируемой хренью/абракадаброй. Ops>Критикуя — предлагай. Мне SQL тоже не очень, но нужны варианты. Можешь дать хоть концепцию?
Концепции есть очень давно и поменялись не сильно.
Как и SQL.
Поменялась начинка под капотом.
Как и у SQL.
Я тут рядом давал внушительный список.
Если будешь читать тему — наткнёшься.
Здравствуйте, vdimas, Вы писали:
T>>У тебя был аргумент — почему не добавить к объекту методы, которые реализуют логику, которая ему принадлежит. Мой — сущности, которые ты вытаскиваешь из БД объектами не являются, поэтому твой аргумент тут не применим. V>А сущность "заказ" — это тоже "объект"? V>Или просто данные, а объектом можно сделать некую другую сущность "менеджер заказов", который умеет управлять их состоянием?
да можно просто: Order и OrderData, которая хранится в БД.
я только не поня, чем это принципиально лучше.
Здравствуйте, vdimas, Вы писали:
V>А сущность "заказ" — это тоже "объект"?
Если она мапится непосредственно на таблицу "заказ", то точно не объект.
V>Или просто данные, а объектом можно сделать некую другую сущность "менеджер заказов", который умеет управлять их состоянием?
Можно даже сделать объект "Заказ", только в другом слое приложения. Этот объект будет инкапсулировать бизнес-логику. А для вытаскивания данных по преджнему нужно использовать объект "заказ" для ORM.
V>Т.е. почему бы не построить модель происходящего, приближенную к реальной?
Здравствуйте, vdimas, Вы писали:
V>Странные рассуждения. V>А чем ты вообще руководствуешься в дизайне? V>Критерии какие?
Вот конкретно в случае с логикой в запросах проблема в том, что запросы это такие строки, которые мало того, что плохо поддаются статической проверке, так ещё и написаны на языке, отличном от того, на котором написан остальной код.
V>И почему ты игноришь один из самых главных критериев через, секундочку, "но никуда не денешься".
А какой критерий ты выделил как самый главный?
V>Это какой такой критерий смог переплюнуть один из самых главных?
Производительность. Когда её не хватает — "никуда не денешься".
V>Кароч, колись! )) V>Откуда ты этих догм понабрался, дай мне адрес сего рассадника, ворвусь туда и сожгу там всё нафик... V>Кто-то вам голову там пудрит, а вы и ведётесь.
Ты понимаешь, я почитал твои последние сообщения, которые — ответы на мои. И мне даже толком не ясно в чём ты со мной не согласен. Нередко ты просто повторяешь мою точку зрения.
Здравствуйте, neFormal, Вы писали:
S>>Ну то есть сами, пусть догоняют. Например по вечерам F>делать им больше нечего, как по вечерам за тупых коллег всё доделывать. F>лучше пост на кывт накатать.
Ну тогда пусть целыми днями этим и занимаются... Ну, пока не проголодаются, например.
Здравствуйте, Terix, Вы писали:
НС>>А я вот про рептилоидов с Нибиру много раз от разных людей. Иллюстрация понятна? T>Иллюстрация понятна, зачем ты её мне показал — совершенно непонятно.
Затем, что "где то что то слышал" не аргумент.
НС>>Давай конкретно — что это за плюхи и почему ОРМ не может их использовать? T>Конкретно — поля типа массив
Это сахар, на перформанс не влияющий.
T>поиск по json полям
А зачем тебе json в БД?
T>курсоры
Отличный способ убить перформанс.
T>lateral join, cte, nulls first,
Не вижу причин почему бы это не поддержать со стороны ОРМ
T> оконные функции, хинты
А это тот же linq2db уже умеет.
T>гибкое указание стратегии загрузки сущностей
Баззворд
T> и так далее.
Слабоватенько.
T> Есть такие ORM, которые не поддерживают UPDATE по более чем одной сущности
А зачем нам обсуждать тухлые ОРМ?
НС>>Хороший ОРМ упрощает 99% всех операций.
T>Какой ORM имеется в виду под хорошим?
linq2db к примеру.
НС>>Логика зато имеет место быть в самих запросах. А вот если ты ее оттуда вынешь, то вот тут уже и огребешь по полной от производительности. T>Чем её меньше в запросах, тем лучше.
Здравствуйте, Terix, Вы писали:
T>Вот конкретно в случае с логикой в запросах проблема в том, что запросы это такие строки, которые мало того, что плохо поддаются статической проверке, так ещё и написаны на языке, отличном от того, на котором написан остальной код.
Это проблема не с логикой в запросах, а с тухлым ОРМ.
Здравствуйте, Ops, Вы писали:
Ops>А они тормозят. Мне постгря не дает написать план, а ее оптимизатор делает совсем фиговый, там пара порядков разницы, в сравнение с возможным — тупо перемножает число записей. Ops>Приходится писать 2 запроса и сводить результаты уже у себя, это ппц.
Тебе ж уже объяснили тут, что проблема не в убогом оптимизаторе постгри, а в том что ОРМ не используют его уникальные, ни с чем не совместимые фичи.
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Затем, что "где то что то слышал" не аргумент.
Я и не приводил это в качестве аргумента.
T>>Конкретно — поля типа массив НС>Это сахар, на перформанс не влияющий.
Это не такая штука, которая позволяет избежать джойнов там, где у нас одна сущность связана с двумя — тремя другими?
НС>А зачем тебе json в БД?
Бывает нужен. Но сходу конкретный кейс придумать сложно, потому что обычно его избегают, из-за того, что ORM не поддерживает.
T>>курсоры НС>Отличный способ убить перформанс.
Когда как. Иногда наоборот.
T>>lateral join, cte, nulls first, НС>Не вижу причин почему бы это не поддержать со стороны ОРМ
Я тоже не вижу, но увы, многие не поддерживают.
T>> оконные функции, хинты НС>А это тот же linq2db уже умеет.
Это хорошо
T>>гибкое указание стратегии загрузки сущностей НС>Баззворд
Непонятно, что я имею в виду? Я имею в виду возможность указать, что связанные сущности нужно грузить вложенным селектом или джойном вместе с основными или джойном, но без основных.
T>> и так далее. НС>Слабоватенько.
Ниубедил, понимаю
НС>А зачем нам обсуждать тухлые ОРМ?
Чтобы составить полную картину и понять почему люди ORM не любят.
T>>Какой ORM имеется в виду под хорошим? НС>linq2db к примеру.
Здравствуйте, vdimas, Вы писали:
vsb>>А что в SQL плохо? Или сама концепция реляционной базы данных неудобна? Мне в SQL не нравятся некоторые вещи, но это чисто на уровне синтаксиса (много зарезервированных слов, неудобно генерировать условия, нельзя писать x == :param для null и тд).
V>Конечно нельзя. V>Поначалу никаких параметров в SQL не было. V>А по английски с NULL не сравнивают, говорят IS NULL. V>А язык должен был представлять из себя "фразы", близкие к английским.
Ну вот должен-должен, а мне для каждого nullable-параметра приходится писать x == :param or x is null and :param is null (ну или делать динамический SQL, что в некоторых случаях ещё хуже). Неудобно. Особенно в каком-нибудь оракле, где пустая строка это null.
V>Ты же понимаешь, что математически вот этот предикат абсурден: IS NOT NULL?
Не понимаю. Это синтаксический сахар для not (x is null). Что тут абсурдного? У меня претензия к тому, что (null == null) == false. Этого я не понимаю. Или не понимаю, почему нет специального оператора, какой-нибудь x =is= y, для которого (null =is= null) = true.
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Тебе ж уже объяснили тут, что проблема не в убогом оптимизаторе постгри, а в том что ОРМ не используют его уникальные, ни с чем не совместимые фичи.
Какой нафиг ORM? У меня так чистый SQL запрос тормозит. Рядом же писал, EXPLAIN пишет, что умножает таблицу саму на себя. Запрос да, сложный, но подсказать, как реализовать план, я не могу, нет средств.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Здравствуйте, Ops, Вы писали:
Ops>Да нет, ты как некоторые в политике, пишешь "долой", но своего решения не даешь.
Всмысле готового "своего"?
Список готовых был приведён и он очень неполный.
Ops>Скажи, на что именно надо поменять?
Так ты определись, что ты спрашиваешься-то? ))
Тебе надо название готового продукта (список есть, как и мой комментарий к нему) или ты бы хотел обсудить возможные пути развития этой области (этого тоже более чем достаточно в обсуждении)?
Даже если тебе лень читать имеющееся обсуждение, но поучаствовать охота, ну блин, спровоцируй на новую подветку, т.е. подкинь провокационную идею какую-нить или задай конкретные вопросы по озвученным тезисам.
Здравствуйте, vsb, Вы писали:
V>>А язык должен был представлять из себя "фразы", близкие к английским.
vsb>Ну вот должен-должен, а мне для каждого nullable-параметра приходится писать x == :param or x is null and :param is null (ну или делать динамический SQL, что в некоторых случаях ещё хуже). Неудобно.
Всем неудобно, не только тебе.
Потому что язык этот проектировался исключительно для написания конкретных запросов человеком.
Повторяю — никаких параметров в SQL изначально не было.
V>>Ты же понимаешь, что математически вот этот предикат абсурден: IS NOT NULL? vsb>Не понимаю.
Жаль.
vsb>У меня претензия к тому, что (null == null) == false. Этого я не понимаю. Или не понимаю, почему нет специального оператора, какой-нибудь x =is= y, для которого (null =is= null) = true.
Это лишь следствие абсурдности (одной из).
Re[22]: В России опять напишут новый объектно-ориентированны
Здравствуйте, vdimas, Вы писали:
V>Мы это уже проходили несколько лет назад, никуда дальше азов я с тобой не уехал.
Ясное дело, ты же сливался сразу, примерно как сейчас.
V>Поэтому, или говори по делу, или шатап.
По этому критерию ты должен был заткнуться пару десятков постов назад, так что будь любезен, последуй собственному совету.
V>Из прошлых общений с тобой я вынес лишь то, что у тебя непрофильное образование, тонна пробелов в тех самых азах в IT области, завышенное ЧСВ и крайне позднее появление в IT как таковом, т.е. опыт и кругозор весьма специфические, ужее некуда.
Ты меня ни с кем не путаешь? Похоже ты на меня свой образ проецируешь, в психологии это называется объектным переносом.
V>Я подробно разбирался с этим задолго до того как ты написал свой первый SQL-запрос, во время того как ты недолго их писал и после того, как ты давно уже перестал этим заниматься.
Ну чтож, печально, что все эти годы были потрачены в пустую, и тебе так и не удалось в этом разобраться.
V>Про "переформулирование" запроса и, по-сути, дублирование планов скромно проигнорил.
Нет, это ты проигнорил, что я не проигнорил. Я указал тебе на твое заблуждение и попросил ознакомиться с реальным положением дел, а не заниматься прикладным теоритезированием.
По какой-то причине, вполне дружеский совет ты воспринял как оскорбление и начал хамить с переходом на личности...
V>Не пиши мне, плиз, тебе нечем со мной поделиться.
Вот это весь твой ответ на конструктивную критику. С таким подходом ты так и будешь путаться в собственных заблуждениях.
Мы уже победили, просто это еще не так заметно...
Re[25]: В России опять напишут новый объектно-ориентированны
Здравствуйте, vdimas, Вы писали:
V>Речь шла о вопросах, на которые у тебя нет ответов.
На которые у меня нет желания отвечать. Ибо я с тобой вообще разговора не вел.
V>Если не врать и не изобретать, то всегда можно "отстреляться".
"Можно" и "нужно" — это ни разу не синонимы.
Re[23]: В России опять напишут новый объектно-ориентированны
Здравствуйте, IB, Вы писали:
V>>Мы это уже проходили несколько лет назад, никуда дальше азов я с тобой не уехал. IB>Ясное дело, ты же сливался сразу, примерно как сейчас.
Интересно, как перед тобой можно слиться, если от тебя никогда нет ничего предметного?
"Механизм слива" не подскажешь случаем?
Типа, озвучил банальность или выдержку из доки, то вот она — "победа"?
Одно маленькое но — ты рассуждаешь как пользователь системы, любую систему рассматриваешь как "черный ящик", в стиле научпопа.
А я так не играю, мне не интересно.
Мы тут циничные профи, часто стоим на стороне баррикад разработчиков технологий, а не их юзверов, перед которыми стоит разводить рекламу в твоём духе. Я ведь читал когда-то давно пару твоих статей — ну ты знатно прогнулся перед мелкомягкими, просто молодец! ))
Но рекламщики, типа тебя, у меня сразу ходят лесом и там живут безвылазно.
Не заметил, что я старался не общаться с тобой все годы?
Не понимаешь — почему? Ну вот честный ответ на честный вопрос?
Зато ты зачем-то периодически нарываешься...
Я признаю и уважаю любых коллег, пока они не начинают сувать нос туда, куда им сувать не стоит.
У тебя свой уровень взаимодействия с техникой, у меня свой.
Ты со своим уставом перидически пытаешься сунуться в чужой монастырь.
И ладно бы корректно — но ты же совершенно не корректен.
И поэтому простые улыбки, вызванные твоей незамутнённостью сразу по многим разделам IT, резко превращаются в иронию, подчас злую.
И зависимость тут простая — чем большим ЧСВ ты пытаешься отсвечивать одновременно с непониманием сути вопроса, тем злее ирония выходит.
Этой простой зависимости ты тоже не знал или как?
Кароч, это всё жутко нелепо, но ты с этой нелепостью повторяешься и уже вынуждаешь.
Определённая неуклюжесть, замеченная за многими из той же самой области деятельности, что была у тебя в середине 2000-х, просматривается до сих пор, увы. Надо ли тебе говорить, как разработчики смотрят на вас, "продвинутых юзеров", искренне считающих, что познали Дзен?
V>>Про "переформулирование" запроса и, по-сути, дублирование планов скромно проигнорил. IB>Нет, это ты проигнорил, что я не проигнорил. Я указал тебе на твое заблуждение и попросил ознакомиться с реальным положением дел, а не заниматься прикладным теоритезированием. IB>По какой-то причине, вполне дружеский совет ты воспринял как оскорбление и начал хамить с переходом на личности...
Специально оставил.
Любой RTFM должен быть обоснован.
Т.е. должна быть раскрыта суть заблуждений и показаны источники, способные эти заблуждения развеять.
Нет ни первого, ни второго.
Причём, я хорошо понимаю, что тебе кажется, будто есть, и достаточно почитать, скажем, доку по MS SQL.
А для меня это рука-лицо.
В своё время я занимался реляционной алгеброй довольно-таки плотно.
Т.е. источники надо давать совсем другие — которых ты сам в глаза не видел и которые тебе, скорее всего, не интересны.
А содержимое твоих источников я знаю слишком хорошо, т.е. заранее знаю, что именно мне предлагают прочесть.
В общем, поэтому, советы подобного рода от, скажем прямо, далёких от темы людей — это просто некий раздражающий фактор.
Я их запросто игнорю годами, пока мне не начинает казаться, что здесь уже имеет место быть перебор ЧСВ автора совета.
Голову иногда тоже включать надо.
И я не говорю, что ты специально, я честно говорю — что это было неуклюже.
Чтобы не быть неуклюжим, надо включить внимание.
V>>Не пиши мне, плиз, тебе нечем со мной поделиться. IB>Вот это весь твой ответ на конструктивную критику.
Критики не было.
Разве ты не в стоянии различать классы аргументов: "я так считаю" от "здесь тогда происходит то-то и то-то".
М/у этими классами аргументов пропасть.
Вторые всегда интересны, первые лишь потребляют терпение.
IB>С таким подходом ты так и будешь путаться в собственных заблуждениях.
ЧТД.
Хочешь сказать — еще не понял происходящее? ))
Тебе эту фразу можно будет смело выбить на надгробии.
Ну, понятно, под фразой подпись, всё как полагается.