@dlangru

Страница 202 из 719
Denis
30.06.2017
14:52:15
может что-то с СУБД не так, если просто так туда бизнес-сущности не вкорячиваются?)
С кодерами не так. Выгодно говнокодить посколько ресурсы компов пока что растут

Pavel
30.06.2017
14:52:17
Сейчас я иногда пишу сложные запросы голые, но когда речь идето простой выборке по условию с парой джоинов, то всегда через ActiveRecord выбираю

Pavel
30.06.2017
14:52:55
Там под ним слой DAO который делает prepare

Google
Pavel
30.06.2017
14:53:14
А чуть выше слой который выбирает под какую БД загрузить драйвер.

Denis
30.06.2017
14:53:35
а как оно определяет когда PREPARE нужен а когда нет?

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

Pavel
30.06.2017
14:54:51
а как оно определяет когда PREPARE нужен а когда нет?
Ну когда есть плейсхолдеры в запросе :)

Anatoly
30.06.2017
14:55:16
Я надеюсь, что через 10 лет профессия SQL-кодер просто вымрет

Pavel
30.06.2017
14:55:29
Я SQL-кодера за 9 лет карьеры ни разу не встречал :)

Dmitry
30.06.2017
14:55:43
@ttldtor а как проблему будут решать?

Denis
30.06.2017
14:55:57
Вижу тут полное непонимание сути работы с БД, граждане

Pavel
30.06.2017
14:56:48
Смотря где работать
Вот тут мы и подходим к самой сути спора :) Ты своим утверждением что ORM не нужно взял и отмел весь малый да и средний бизнес, оставив только технологических гигантов. Не надо так.

Google
Anatoly
30.06.2017
14:57:51
Pavel
30.06.2017
14:57:54
Ну а где есть SQL кодеры то? Мне кажется это только кровавый энтерпрайз.

Или хайлоад, вот там ORM плохо живет.

Anatoly
30.06.2017
14:58:22
норм живёт

Denis
30.06.2017
14:58:32
Орм не нужно потому что это как кодить с goto - можно, но если проект вырастет то будет ад

Anatoly
30.06.2017
14:58:48
ты вообще какие ORM тыкал?)

Denis
30.06.2017
14:59:16
Ну а где есть SQL кодеры то? Мне кажется это только кровавый энтерпрайз.
В любой конторе где много сложных данных и консистентность данных важна

Dmitry
30.06.2017
14:59:19
Павел, в некоторых конторах есть. Приятель в Транснефти работает. Там у них отдельный человек который разные запросы и процедуры пишет

Denis
30.06.2017
15:00:03
ты вообще какие ORM тыкал?)
Я даже свою писал. Потом в тупик пришёл, посмотрел как у других, поговорил со взрослыми и всё понел

Pavel
30.06.2017
15:00:40
Вот уж где ад, так это в компаниях вроде транснефти. Где требования настолько дурацкие и бизнесу настолько наплевать на архитектуру, что у них там сидит отдельный программист и программирует километровые запросы.

Dmitry
30.06.2017
15:01:59
ну там на самом деле куча народу говнокодит пиздец как. переменные транслитом и хардкод параметров в коде это еще цветочки

Denis
30.06.2017
15:02:14
тупик философский или технический?
Тот что в википедии описан выше

Pavel
30.06.2017
15:02:34
Там описан идеологический случай :)

Но по такой же логике ты должен прочитать вот эту статью https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%B0_%D0%BE%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8 и уйти из программирования вообще, потому что невозможно остановить зависшую программу.

Denis
30.06.2017
15:03:44
Я ж практик

А не теоретик

Сконструировать сложный select красиво в ООП нереально

А тратить время на Орм из за простых нет смысла

Google
Pavel
30.06.2017
15:05:31
Ну и что? Для таких случаев всегда в ОРМах предусмотрен метод для вызова голого запроса.

Dmitry
30.06.2017
15:05:33
А в не-ООП языках?

Pavel
30.06.2017
15:06:15
А тратить время на Орм из за простых нет смысла
Есть и огромный. Как минимум Query Builder экономят кучу времени когда надо сочинять динамически запросы.

Denis
30.06.2017
15:06:15
А в не-ООП языках?
Sql это вообще язык готовый, зачем прослойки?

Pavel
30.06.2017
15:08:13
Вот простой пример: юзер хочет в базе искать машины. Иногда он хочет искать по цвету, иногда по цене, а иногда по цвету и по цене. Как это решается голым запросом?

У него в интерфейсе 3 поля - название марки, цвет машины и цена. Иногда он не заполняет 1-2 поля и тогда этот критерий учитывать не нужно.

Denis
30.06.2017
15:08:54
Условным select

Case when then в условии выборки по каждому полю

Если кратко

Pavel
30.06.2017
15:11:13
То есть ты не считаешь это говнокодом? Такой запрос будет выполняться дольше чем динамически собранный

Pavel
30.06.2017
15:13:41
Да это пример простейший, там не должно быть сложных запросов

Denis
30.06.2017
15:14:24
Запрос не сложный, условие сложнее "обычного". На скорость это точно не повлияет

Pavel
30.06.2017
15:15:30
Другой кейс - у тебя в большой системе есть кучи запросов к автомобилям разные. И в один прекрасный день тебе понадобилось реализовать soft deletable, то есть добавить поле is_deleted BOOL, и везде выбирать только WHERE is_deleted = false В ORM это делается изменением в одном месте модели.

Denis
30.06.2017
15:16:21
А в БД в 2 местах, но без участия ди кодера вообще

Тебе даже ничего не скажут

Pavel
30.06.2017
15:16:38
Причем оно автоматически будет придумывать алиасы в сложных джоинах и следить за тем чтобы не было конфликтов алиасов.

Google
Pavel
30.06.2017
15:17:27
А в БД в 2 местах, но без участия ди кодера вообще
Но в одном месте в коде тебе надо все-же выбирать все машины без условия, чтобы посмотреть какие были удалены ;)

Denis
30.06.2017
15:18:21
Поэтому в 2 местах. Всякие такие флажки это вообще внутренние детали схемы, прикладным кодерам их знать не надо

Pavel
30.06.2017
15:18:45
Надо, они же бизенс логику реализуют

Таких флажков может быть десяток, всякие колонки статуса и т.д.

Denis
30.06.2017
15:19:24
Надо, они же бизенс логику реализуют
Я думал этот флажок не бизнес логика а просто какой-то хак

Pavel
30.06.2017
15:19:47
soft deletable это абсолютно реальный паттерн который много где реализуется.

Denis
30.06.2017
15:19:53
Я сторонник бизнес логику в БД прятать вообще.

Pavel
30.06.2017
15:20:44
Возможность потом возвращать случайно удаленные объекты. И просто удалять объекты без нарушения консистентности статистики например.

Admin
ERROR: S client not available

Pavel
30.06.2017
15:21:30
Как он тогда будет влиять на то учитывать ему флаг или нет?

Это очень частый кейс

Denis
30.06.2017
15:22:04
Никак - ему отдадут данные уже с учётом этих флагов

Pavel
30.06.2017
15:22:15
Он же должен как-то управлять этим

Denis
30.06.2017
15:22:37
Где должен там у него возьмут этот флаг.

Pavel
30.06.2017
15:22:57
В интернет магазине - товары, пользователи. На форуме - посты и т.д. В образовательной системе - курсы, вузы, расписание, да что угодно. Все это может быть удалено, причем почти никогда нельзя это удалять насовсем.

Pavel
30.06.2017
15:24:13
Нет денег ни на каких ди кодеров :)

Точнее на кодеров базы

Google
Pavel
30.06.2017
15:24:33
В маленьком стартапчике точно не будет.

Denis
30.06.2017
15:25:09
А изучить - зашквар? )

Pavel
30.06.2017
15:25:15
Максимум это 1 фронтенд, который делает верстку и JS пишет, и 1 бэкенд который пишет логику и управляет базой и серверами.

А что изучать? Писать голые запросы тупо дольше и в них потом разбираться сложнее. Когда пойдет поток правок и все условия надо будет менять.

Denis
30.06.2017
15:25:52
Как в резюме sql вписать так у всех, а как реально базу проектировать так Орм и тайные знания кодера 3в1

Pavel
30.06.2017
15:26:55
Ну sql на средне-глубоком уровне бэкендер и так знает. Но знание SQL тебе не даст скорости при переписывании сотен запросов на новую логику.

Denis
30.06.2017
15:26:57
Мне пофиг но если проект вырастет то его придётся выкинуть и переписать с нуля.

Потому что реализация скрыта будет в БД. А данные так и так придётся переносить, так что лучше совместить

Pavel
30.06.2017
15:28:11
Denis
30.06.2017
15:28:47
Ну так и делают, это тоже нормальная практика.
Вы определитесь есть у вас деньги или нет)

Pavel
30.06.2017
15:29:00
Вначале денег ни у кого нету

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

Но это увы происходит в лучшем случае с 1% проектов.

Pavel
30.06.2017
15:30:50
Ну бывает. Тогда может стоит подумать и отказаться от ОРМ, но это не абсолют :)

Вообще ОРМ очень большой процент потребностей покрывает, и если схема реально сложная и он не применим то это вообще повод задуматься, а умеет ли проектировщик проектировать схему и правильно ли он понимает бизнес-задачи )

Pavel
30.06.2017
15:38:52
жизнь показывает другое )

Страница 202 из 719