@ru_python

Страница 7037 из 9768
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 в начале жизни проекта это хорошо. Преждевременная оптимизация - плохо

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

Ivan
14.11.2018
11:48:43
ну я лично считаю, что ORM — это сферический в вакууме образчик плохой архитектуры
Эм. Не вижу причин отрицательно относиться к orm, сейчас всё на этом строится. Любой момент где ты данные получая из базы записываешь в класс можно уже смело называть orm. Если не так, то работать исключительно со строками и массивами?

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
> Любой момент где ты данные получая из базы записываешь в класс можно уже смело называть orm Неверно.
идея ORM оборачивать данные из бд в объекты. Ну и упрощение получения/изменения/создания данных

Tigran
14.11.2018
11:52:31
идея ORM оборачивать данные из бд в объекты. Ну и упрощение получения/изменения/создания данных
Засовывать данные из бд в объекты можно по-разному, и не всегда это называется ORM.

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:06:32
Это претензия не к ORM как к идее, а к конкретной реализации
Ну если принять что ORM это просто маппинг db-row -> object и обратно, то я пожалуй соглашусь

Ivan
14.11.2018
12:06:38
ORM, как и все плохие архитектурные решения, упрощает разработку только поначалу (имхо).
Вот этого без примера понять не могу. Допустим тебе в начале проекта orm упрощала жизнь. Значит у тебя там использовались какие-то crud действия. Что должно стать с проектом, чтобы тебе резко захотелось заменить эти круды на нативный sql и dao?

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

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

прячь реализацию запросов

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

это не их дело

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

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

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

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

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
в орм предполагается, что объекты бизнес логики строятся поверх объектов базы данных

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

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
Использовал sqlalchemy, django-orm, go-pg, squirrel + sqlx. Здесь нет единого ответа плохо ORM или хорошо. Ну попробуйте мне без билдера собрать запрос с условиями в зависимости от переданных аргументов? И попробуйте с ORM решить узко-специфичные, например работа с jsonb в postgre, вещи? ORM и нужен и не нужен.
+ В большинстве случаев на проектах с которыми работал 95% запросов писались простеньким orm. Для сложых статистических запросов приходилось что-то допиливать вбивая sql/nosql запросы ручками, но и эти запросы оборачивались в orm в итоге возвращая объекты(без возможности изменения)

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

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

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
И масштабировать удобно.

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
нет

Alex
14.11.2018
12:36:20
нет

LighteR
14.11.2018
12:36:32
А целесообразно парсить сайты на regexp?
https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags

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

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

Тимур
14.11.2018
12:42:44
Если у каждого микросервиса свои изолированная база, то откуда возьмется дублирование кода, по который ты выше писал?
Про микросервисы написал, это к разделению, вынесения кода от основного. Ну дам пример. От задачи зависит. Некоторым сначала нужен сайт. Они пишут и все внутри сайта пихают. Потом им понадобилось мобильное приложение. И конечно лучше писать api, но по ТЗ там используют тоже прямое подключение к базе. И где начинаются дубли логик. Потом часто банкомат, терминалы, веб версия, разные приложения работают с определёнными базами.

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

Tigran
14.11.2018
12:47:10
Так regexp-ы же должны очень даже быстро работать?
1. В питоне регекспы работают за экспоненциальное время. 2. HTML не является регулярным языком, поэтому корректно распарсить его регэкспами математически невозможно.

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
1. Да, конечно; 2. Не понял вопроса. Главное чтобы входные и выходные данные не менялись. Видимо не понимаю о чем речь
1. Да, конечно Теперь понятно откуда в разных сервисах может дублироваться код Главное чтобы входные и выходные данные не менялись Что делаете когда их все-таки надо менять? Версионируете процедуры?

Тимур
14.11.2018
12:56:17
1. Да, конечно Теперь понятно откуда в разных сервисах может дублироваться код Главное чтобы входные и выходные данные не менялись Что делаете когда их все-таки надо менять? Версионируете процедуры?
Да новая версия процедуры. Как и поддержка старых методов должна оставаться. Потому как с ней могут работать старые приложения которые ещё не обновились отдавать и получать другое количество данных.

Сложность когда слишком много разработчиков разных, и приложений и все работает со всеми. В том числе через rest api. Версии нужно сохранить.

Php шники не поймут, как иногда сложно постоянно или периодически обновлять приложение. У них напрямую по фтп код поправил и готово ничего страшного.

LighteR
14.11.2018
13:03:16
Да новая версия процедуры. Как и поддержка старых методов должна оставаться. Потому как с ней могут работать старые приложения которые ещё не обновились отдавать и получать другое количество данных.
С версионированием понятно. Но я все равно не очень понимаю какой профит дают общие (для нескольких микросервисов) хранимые процедур по сравнению с их взаимодействием через API

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

Тимур
14.11.2018
13:05:00
С версионированием понятно. Но я все равно не очень понимаю какой профит дают общие (для нескольких микросервисов) хранимые процедур по сравнению с их взаимодействием через API
В частности нужно на проект смотреть. Микросервис может работать с файлами, изображениями. Спрашивает что то у базы. А сам сервис выдаёт все по api конечному приложению который дёрнул сервис.

Alex
14.11.2018
13:07:00
С версионированием понятно. Но я все равно не очень понимаю какой профит дают общие (для нескольких микросервисов) хранимые процедур по сравнению с их взаимодействием через API
имхо хранимые процедуры для всего - оверкилл. но если, например, триггер какой нужно реализовать, то могут быть полезными.

Страница 7037 из 9768