
Tony
14.11.2018
11:32:21
что не так?

Tigran
14.11.2018
11:34:41
ну я лично считаю, что ORM — это сферический в вакууме образчик плохой архитектуры
но независимо от этого, ты тут пытаешься сделать весьма тяжеловесную операцию и остаётся только надеяться, что твоя база никогда не станет достаточно большой

Tony
14.11.2018
11:37:00
не станет

Google

Tony
14.11.2018
11:37:06
до миллиона даже не дойдет

Jentry
14.11.2018
11:40:04
но если использовать ORM, понимая, что count дорогой, то все нормально

[Anonymous]
14.11.2018
11:45:42
?Осталось 25 мест, сегодня наша ВИП группа станет платной?

Tishka17
14.11.2018
11:46:31
ORM в начале жизни проекта это хорошо. Преждевременная оптимизация - плохо

Suren
14.11.2018
11:46:59

ᅠ
14.11.2018
11:48:31
pyautogui.typewrite('hello world 123') выводит только цифры, язык системы менять не хочу, есть варианты что сделать?

Ivan
14.11.2018
11:48:43

Tigran
14.11.2018
11:49:09
Ну, по крайней мере я говорил об ORM в духе peewee и django ORM.

Denis
14.11.2018
11:50:30
https://martinfowler.com/bliki/OrmHate.html Фаулер давно про это сказал уже

Ivan
14.11.2018
11:51:31

Tigran
14.11.2018
11:52:31

Google

Tigran
14.11.2018
11:52:58
Например, когда ты делаешь DAO, возвращающее тебе объекты, но модификации этих объектов не попадают неявно в базу.

Ivan
14.11.2018
12:00:52
Я кажется почти понял о чем ты. Модификация объекта != изменение базы.
ORM сильно упрощает и разработку и чтение кода. Когда у тебя уже реализованы crud всё становится быстрее
Если нужны сложные статистические запросы, то их тоже можно реализовать методами к твоим моделям и в них уже использовать SQL для читаемости.

Tigran
14.11.2018
12:01:32
ORM, как и все плохие архитектурные решения, упрощает разработку только поначалу (имхо).

LighteR
14.11.2018
12:02:32

Ivan
14.11.2018
12:03:07

LighteR
14.11.2018
12:06:32

Ivan
14.11.2018
12:06:38

Tigran
14.11.2018
12:07:01
Начнём с того, что я могу захотеть прикрутить NoSQL-решения.

Tishka17
14.11.2018
12:07:25
так не надо ОРМ вставлять напрямую во вьюхи
прячь реализацию запросов

Jentry
14.11.2018
12:08:06

Tishka17
14.11.2018
12:08:21
вьюхи не должны знать как там у тебя слой работы с БД устроен
это не их дело

Tigran
14.11.2018
12:08:36
ну то есть мы приходим к DAO всё равно?

Alex
14.11.2018
12:08:38

Tigran
14.11.2018
12:09:04
который для объектов в реляционных хранилищах использует ORM?

Alex
14.11.2018
12:09:04
с этим вагон потенциальных проблем

Aragaer
14.11.2018
12:09:04
/me вообще не понимает смысла в орм

Tishka17
14.11.2018
12:09:16

Aragaer
14.11.2018
12:09:25
все равно же я разделяю бизнес логику и персистенс слой на разные вещи

Google

Aragaer
14.11.2018
12:09:30
а между ними делаю трансляцию

Tishka17
14.11.2018
12:09:37
потому что такой DAO будет первое время ривиальный

Tigran
14.11.2018
12:09:43
вполне
должен ли он возвращать объекты, отправляющие изменения атрибутов в БД?

Aragaer
14.11.2018
12:09:53
в орм предполагается, что объекты бизнес логики строятся поверх объектов базы данных
а я обычно иду с другой стороны - сначала отдельно доменную область, а потом к этому прикручиваю базу

LighteR
14.11.2018
12:11:13

Tishka17
14.11.2018
12:12:32

Tigran
14.11.2018
12:13:48
Хз
Но это важный вопрос. Если да, то мы всё равно получаем ORM. Если нет и ORM служит просто слоем генерации SQL-запросов — то это слишком сложное решение для такого слоя.

Иван
14.11.2018
12:19:16
Всем привет. Собираю статистку в приложение на asyncio. Если просто, то на connaction_made - увеличиваю счетчик, на connection_lost - уменьшаю. Конекты не персистентные, это точно, отправил запрос (5-10кб). Вижу, что иногда не вызывается callback connection_lost периодически... Никто не сталкивался с этим?
И кто и как решал эту проблема, если встречались?

Jentry
14.11.2018
12:20:07
Использовал sqlalchemy, django-orm, go-pg, squirrel + sqlx. Здесь нет единого ответа плохо ORM или хорошо. Ну попробуйте мне без билдера собрать запрос с условиями в зависимости от переданных аргументов? И попробуйте с ORM решить узко-специфичные, например работа с jsonb в postgre, вещи? ORM и нужен и не нужен.

Тимур
14.11.2018
12:25:18
Я думаю такие большие и сложные вещи и данные вообще не должны выполняться сразу в онлайн при запросе клиента показать ему страничку. Django это интерфейс, для простых задач и логик там и описаны. Что то большое и сложно выносить за пределы django, тот же pyspark для обработки данных. С того же nosql. Чтобы интерфейс джанго тупо только брал и показывал данные с максимальной скоростью

LighteR
14.11.2018
12:25:22
Ну попробуйте мне без билдера собрать запрос с условиями в зависимости от переданных аргументов?
А в чем тут проблема?

Alex
14.11.2018
12:26:08
и менее читабельно

Ivan
14.11.2018
12:26:21

Тимур
14.11.2018
12:27:06
И строить все разбивая на микросервисы. И даже больше скажу не писать чистый sql в коде вообще никогда. Пользоваться хранимыми процедурами, которые можно менять, оптимизировать не трогаю исходного кода в приложениях

Ivan
14.11.2018
12:27:12
Не совсем верно выразился. Не без возможности изменения, а без возможности сохранения "изменений" в базу

Alex
14.11.2018
12:28:00

LighteR
14.11.2018
12:28:39

Google

LighteR
14.11.2018
12:29:00
Ну и микросервисы тут вообще не в тему

Тимур
14.11.2018
12:31:49
Что-то на счет хранимок я не уверен
Когда один проект на столько большой, что пишутся множество приложений. Веб, консольные, десктопные. Где то дублировать логику вытаскивания данных, плохое решение
Данные отдельно, интерфейсы с пользователями отдельно.

Teratron
14.11.2018
12:32:21
Уважаемый автор поделки-бота "Vladimir Parkhomenko" тренеруйтесь где-нибуль в другом месте. Не забывайте правило "где ем, там не гажу".

Тимур
14.11.2018
12:32:23
И масштабировать удобно.

LighteR
14.11.2018
12:32:31
Ну и к деплою хранимок у меня большие вопросы

Admin
ERROR: S client not available

Тимур
14.11.2018
12:35:09
Т.е. у вас микросервисы в одну базу что ли ходят?
Микросервисы общаются друг с другом разными путями. Базы к сервисам привязаны. А на уровне базы и сервиса через оптимизированные процедуры или сторонние утилиты по обработки данных. На выходе django и подобные интерфейсы выдают данные без сложных обработок данных и логик.

Roman
14.11.2018
12:35:54
А целесообразно парсить сайты на regexp?

Aragaer
14.11.2018
12:36:13
нет

Tishka17
14.11.2018
12:36:14
нет

Тимур
14.11.2018
12:36:20

Alex
14.11.2018
12:36:20
нет

LighteR
14.11.2018
12:36:32

Aragaer
14.11.2018
12:37:12
я слишком долго искал ту ссылку

LighteR
14.11.2018
12:37:15

Иван
14.11.2018
12:42:43
Ребята, подскажите, кто-то делал push-notifications для Gmail ???
Можно ли тестить с ngrok, или обязателюно регать и подтверждать домен?

Тимур
14.11.2018
12:42:44

Google

Roman
14.11.2018
12:44:30
Так regexp-ы же должны очень даже быстро работать?

LighteR
14.11.2018
12:45:05

Tigran
14.11.2018
12:47:10

Aragaer
14.11.2018
12:48:35
можно использовать регекспы, чтобы его разбить на отдельные куски
и сделать из этих кусков xhtml
я такое делал

Tigran
14.11.2018
12:48:57
Токенизировать возможно, да. Вряд ли это имеется в виду.

Тимур
14.11.2018
12:49:22

Aragaer
14.11.2018
12:49:24
ну да
после токенизации уже обработка идет вручную

LighteR
14.11.2018
12:53:42

Тимур
14.11.2018
12:56:17
Сложность когда слишком много разработчиков разных, и приложений и все работает со всеми. В том числе через rest api. Версии нужно сохранить.
Php шники не поймут, как иногда сложно постоянно или периодически обновлять приложение. У них напрямую по фтп код поправил и готово ничего страшного.


LighteR
14.11.2018
13:03:16

Aragaer
14.11.2018
13:04:39
/me считает, что хранимые процедуры не нужны

Тимур
14.11.2018
13:05:00

Alex
14.11.2018
13:07:00