|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
Алексей Роза hVostt Обе информации видны в карточке. и это навсегда теперь в базе? Всё что там когда-либо сохраняли вы держите в своём Event Store? Не, это по бизнесу. Вот мы с вами переписку ведём на форуме, мы же не одно и тоже сообщение правим, правильно? Добавляем комментарий за комментарием. На кой ляд заставлять юзеров редактировать один текстареа, если вы знаете, что информация от каждого сотрудника будет нужна и важна? По поводу Event Store, это вообще перпендикулярно тому, что видит пользователь. Способ работы с данными. Есть свои, довольно сильные преимущества, но и они вовсе не бесплатные. Алексей Роза Хрень какая-то допотопная и доисторическая. Давайте уже конкретику какую разберём? Какую задачу решаем? Давайте пример. Не Вася/Петя, а что-то более конкретное. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 00:25 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
Алексей Роза hVostt Это происходит как раз в рамках пессимистичной блокировки, если что :) а что за блокировки вообще, если у вас ES ?? У меня щас не ES, а принципиально другое, лучше я не буду взрывать вам мозг :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 00:26 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
hVostt И скорее всего подобное сообщение увидели бы лишь избранные. Нужно очень крепко напрячь фантазию и придумать кейс, где подобная проблема была бы повсеместной. У меня в проекте это не так редко, но скорее из-за специфики проекта. Суть процесса - планирование цен на ассортимент товаров. То есть деятельность целиком виртуальная (нет платёжки у конкретного бухгалтера, ящика на конкретном складе итп), при этом от выставленных цен зависят объёмы продаж, от продаж одного товара зависят продажи другого (грубо говоря, больше купят розовых футболок => меньше зелёных штанов), размещение на производстве одного заказа может занять мощности, помешать размещению другого и тем изменить его себестоимость, цены доставки зависят от объёмов, меняются и ими занимаются отдельные люди, одни люди занимаются товарами в разрезе категорий, другие - в разрезе брендов, третьи - в разрезе каналов, всё это должно вписываться в заданные рамки прибыльности итп... в общем, многомерная мешанина. А поскольку товары вдобавок бывают сезонные, поскольку у них разные сроки на разработку, заказ итп, в итоге не так редко получается так, что половина пользователей резко бросилась в один и тот же сегмент. fkthat При немного расширенном использовании с её помощью можно делать "умный" мерж. Вася прочитал запись (Имя, Цена) и обновил Имя, пока он это делал Петя прочитал ту же запись (Имя, Цена) и обновил Цена. Проблема в том, что атрибуты нередко взаимосвязаны. Вася прочитал запись (Количество; Цена; Скидка) и поставил скидку за уровень свыше миллиона единиц, а Петя прочитал ту же запись (Количество; Цена; Скидка) и уменьшил количество до восьмисот тысяч. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 00:27 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
fkthat softwarer Я пожалуй что не назову ни одного кейса, когда она действительно нужна с точки зрения бизнес-логики. При немного расширенном использовании с её помощью можно делать "умный" мерж. Вася прочитал запись (Имя, Цена) и обновил Имя, пока он это делал Петя прочитал ту же запись (Имя, Цена) и обновил Цена. Тогда можно автоматически распознать, что Петя не трогал то что обновлял Вася, и сохранить только его изменения в Цена не перетирая изменения Васи старым значением. Но на самом деле все это можно решить еще проще чем нибудь типа "Event Sourcing", всегда просто сохраняя не всю запись в виде новой версии, а только её изменения. Так нельзя. Т.е. Event sourcing конечно сохраняет только изменения, но это сути не меняет. Агрегат должен быть сохранён полностью в полном, согласованном виде. На уровне хранилища ES там оптимистик, но это потому, что журнал строгий, все изменения идут друг за другом. Но и здесь могут быть более прогрессивные модели. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 00:28 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
дел ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 00:29 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
softwarer, Не совсем понимаю. Там два товарища на один и тот же товар рандомно ставят один одну цену, другой другую? Так при чём тут ПО? :) Это целиком проблема бизнеса. История изменений опять же снимает все проблемы. Я вот могу привести пример. Аукцион. И то, это вообще не вопрос блокировки в БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 00:39 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
softwarer Проблема в том, что атрибуты нередко взаимосвязаны. Вася прочитал запись (Количество; Цена; Скидка) и поставил скидку за уровень свыше миллиона единиц, а Петя прочитал ту же запись (Количество; Цена; Скидка) и уменьшил количество до восьмисот тысяч. Так уменьшил он в уме, а поставил конкретную цену. Другое дело, если он именно, что уменьшил. Типа "Уменьшить на [ ] Р." -- вот это уже другое дело. Так как в зависимости от текущего значения, результат будет разный. В ином случае не понятно что это за треш, если так и происходит, то пофигу чьи изменения сохранятся, или кто-то дурак ) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 00:41 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
hVostt Так нельзя. Т.е. Event sourcing конечно сохраняет только изменения Ну почему же. На самом деле мы сохраняем "Domain events" агрегата. Измение в свойстве "Имя" сделанное Васей и изменение в свойстве "Цена" сделанное Петей это просто два частных случая доменного события, которые запишутся как два отдельных последовательных ивента. Когда будет собираться текущее состояние, то они просто последовательно применятся к крайнему снепшоту и друг друга не перетрут, т.к. первое изменит только имя, а второе изменит только цену. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 00:55 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
hVostt Не совсем понимаю. Там два товарища на один и тот же товар рандомно ставят один одну цену, другой другую? Нет. Один товарищ управляет ценовой политикой, например, по ботинкам, и выставляет неким ботинкам свою цену. Другой товарищ управляет ценовой политикой, например, по бренду "Пьер Карден", и выставляет тем же ботинкам свою цену. Когда эти цены расходятся - ботинки висят в статусе, назовём его "Переговоры", пока они между собой не договорятся. Когда цены совпадают - их можно двинуть дальше, ну там в "Заказать". В это же время третий товарищ занимается, например, транспортными расходами и вбивает их в те же ботинки, дабы по ним можно было посчитать себестоимость и прибыль. То есть эти люди реально могут попытаться одновременно редактировать одну запись, это не такое исключительное событие конкретно в этой системе. hVostt Так уменьшил он в уме, С чего вдруг? Пример, конечно, условный, но уменьшил он в интерфейсе и сохранил в БД. Ну то есть вот условно: Петя видит, что запланирован миллион единиц товара, звонит Кардену и говорит: Пьер, я такой хороший клиент, что хочу заказать целый миллион ботинок, дай мне по этому поводу особую скидку. Договаривается, пробивает её в запись и идёт праздновать. В это же время Вася решает, что ботинок от Кардена многовато и решает уменьшить запланированный объём. А "умный мерж", описанный моим собеседником, молча объединяет эти изменения, в результате чего оказывается, что Кардена кинули, он в бешенстве и все немножечко обосрались. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 01:12 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
softwarer Один товарищ управляет ценовой политикой, например, по ботинкам, и выставляет неким ботинкам свою цену. Другой товарищ управляет ценовой политикой, например, по бренду "Пьер Карден", и выставляет тем же ботинкам свою цену. Ценник в магазине это официальный документ и будь ты хоть Пьер Карден, хоть Джимми Чу, хоть, тем более, служба доставки, ты не можешь просто взять и выставить какую-то цену, что тебе нравится. Все равно будет какой-то пассажир, который эту цену должен зааппрувить. Могу просто завтра из первых рук узнать, т.к. знакомые в торговле имеются. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 02:34 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
>hVostt, вчера, 14:07 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1326982&msg=22160902][22160902] >Где логика? < Что ёрничать? Сохраненная твоя правка файла позволяет использовать copy/paste при повторном редактировании. Пользователь получит отказ от сохранения исправлений, если кто-то другой уже подправил оригинал. Поэтому пользователь будет вынужден считать актуальный оригинал и провести изменения заново. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 09:18 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
ВМоисеев Поэтому пользователь будет вынужден считать актуальный оригинал и провести изменения заново. Это прямо праздник какой-то - заполнить форму из 42 полей (как программасты любят делать), а потом обнаружить, что мне её надо перезагрузить и заполнять заново. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 10:28 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
fkthat заполнить форму из 42 полей это дичь, а не форма. Она должна быть разбита на блоки. hVostt На кой ляд заставлять юзеров редактировать один текстареа, если вы знаете, что информация от каждого сотрудника будет нужна и важна? потому что не понимаю, как они потом эти разные версии будут разруливать без эксцессов. hVostt Давайте уже конкретику какую разберём? Какую задачу решаем? Давайте пример. Не Вася/Петя, а что-то более конкретное. да задачу я уже озвучивал - 2+ человека правят одну форму. Один сохраняет, а второй об этом ничего не знает и тоже сохраняет. Ну и вашу позицию я понял. Нет смысла снова пережёвывать. Спасибо, что поделились. Гораздо интереснее какие-то новые технологии обсудить, типа этой: hVostt У меня щас не ES, а принципиально другое, лучше я не буду взрывать вам мозг :) неожиданно ушли с ES, в который так много вложили... чё там за технология такая :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 11:15 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
fkthat hVostt Так нельзя. Т.е. Event sourcing конечно сохраняет только изменения Ну почему же. На самом деле мы сохраняем "Domain events" агрегата. Измение в свойстве "Имя" сделанное Васей и изменение в свойстве "Цена" сделанное Петей это просто два частных случая доменного события, которые запишутся как два отдельных последовательных ивента. Когда будет собираться текущее состояние, то они просто последовательно применятся к крайнему снепшоту и друг друга не перетрут, т.к. первое изменит только имя, а второе изменит только цену. Так не получится :) Event Sourcing не решает эту проблему. По сути он хранит изменение, как из одной версии агрегата получить следующую. Каждое событие увеличивает версию +1. Ты же описываешь ситуацию, когда была версия, допустим, 5. Вася и Петя редактировали версию 5, потом сохранил Вася, получилась версия 6. И сохранил Петя -- по твоей логике должна получиться версия 7, но так нельзя. Версию 7 можно сделать только из 6, но не из 5. Поэтому у Пети будет ошибка. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 11:49 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
softwarer Нет. Один товарищ управляет ценовой политикой, например, по ботинкам, и выставляет неким ботинкам свою цену. Другой товарищ управляет ценовой политикой, например, по бренду "Пьер Карден", и выставляет тем же ботинкам свою цену. Когда эти цены расходятся - ботинки висят в статусе, назовём его "Переговоры" , пока они между собой не договорятся. Когда цены совпадают - их можно двинуть дальше, ну там в "Заказать". В это же время третий товарищ занимается, например, транспортными расходами и вбивает их в те же ботинки, дабы по ним можно было посчитать себестоимость и прибыль. То есть эти люди реально могут попытаться одновременно редактировать одну запись, это не такое исключительное событие конкретно в этой системе. Так это конкретный бизнес сценарий (выделено красным). Это вообще за рамками обсуждения :) Речь шла об конкурентном сохранении изменений в БД. Тут вообще нет блокировки (конечно в БД она есть), но изменения не блокируются. По сути ты описываешь одну из реализации версионности. Нужно, чтобы кто-то принял одну из конкурирующих версий. Всё просто. softwarer С чего вдруг? Пример, конечно, условный, но уменьшил он в интерфейсе и сохранил в БД. С точки зрения данных нет понятий уменьшил/увеличил, есть старое значение и новое значение. Сравни с инкрементом, как записью данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 11:52 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
ВМоисеев >hVostt, вчера, 14:07 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1326982&msg=22160902][22160902] >Где логика? < Что ёрничать? Сохраненная твоя правка файла позволяет использовать copy/paste при повторном редактировании. Пользователь получит отказ от сохранения исправлений, если кто-то другой уже подправил оригинал. Поэтому пользователь будет вынужден считать актуальный оригинал и провести изменения заново. Вот договор, содержащий более сотни страниц с приложениями. Я поправил, ты поправил, я сохранил раньше. Ты чего будешь делать? Сравнивать все страницы со своей копией? Херню не неси. Так никто не будет работать, это чистой воды идиотизм. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 11:53 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
Алексей Роза hVostt На кой ляд заставлять юзеров редактировать один текстареа, если вы знаете, что информация от каждого сотрудника будет нужна и важна? потому что не понимаю, как они потом эти разные версии будут разруливать без эксцессов. Я ж сказал как. Как это делается. Почему игнорируете? Сохраняются оба значения сразу. Это история. Никто ничего не правит, а добавляют новые значения. Алексей Роза да задачу я уже озвучивал - 2+ человека правят одну форму. В реальном бизнесе два человека не правят одну форму. Такое может случиться только, если данные общие. Я попросил реальный кейс, прям бизнес-кейс, где такое -- норма. Давайте обсудим. Алексей Роза hVostt У меня щас не ES, а принципиально другое, лучше я не буду взрывать вам мозг :) неожиданно ушли с ES, в который так много вложили... чё там за технология такая :) Виртуальные акторы, каждый со своим состоянием :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 11:59 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
hVostt Так это конкретный бизнес сценарий (выделено красным) Безусловно. Это просто пояснение к тому, почему в конкретной системе пользователи сравнительно часто сталкиваются на блокировках одной и той же записи. Особенности бизнес-процесса. hVostt Речь шла об конкурентном сохранении изменений в БД. Тут вообще нет блокировки (конечно в БД она есть), но изменения не блокируются. По сути ты описываешь одну из реализации версионности. Нужно, чтобы кто-то принял одну из конкурирующих версий. Всё просто. Ты ушёл куда-то не туда. Смотри. Есть запись, "ботинки от Кардена". В ней три поля: цена категорийного менеджера (редактирует первый чувак), цена бренд-менеджера (редактирует второй чувак), транспортные расходы (редактирует третий чувак). Естественно, это донельзя упрощённая картина, просто чтобы описать природу процесса, порождающего довольно частые столкновения на блокировках. hVostt softwarer С чего вдруг? Пример, конечно, условный, но уменьшил он в интерфейсе и сохранил в БД. С точки зрения данных нет понятий уменьшил/увеличил, есть старое значение и новое значение. Блин, я ещё две реплики назад сказал: старое значение миллион, новое значение восемьсот тысяч. Что тут непонятного? Ты пишешь сначала одну дикую реплику, потом другую... hVostt В реальном бизнесе два человека не правят одну форму. Такое может случиться только, если данные общие. Я попросил реальный кейс, прям бизнес-кейс, где такое -- норма. Давайте обсудим. Я привёл тебе кейс, где такое - норма. Ты начал что-то про версионность. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 12:15 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
>hVostt, сегодня, 11:53 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1326982&msg=22161501][22161501] >...Херню не неси. < Вноси только СВОИ изменения. Если твоя правка занимает большой объём - copy/paste из сохраненной редакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 12:57 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
ВМоисеев Вноси только СВОИ изменения. Если твоя правка занимает большой объём - copy/paste из сохраненной редакции. Году в 2005-м я приехал к одному заказчику, и нашёл там местных айтишников, боровшихся с проблемой на другом проекте. Суть проблемы была в том, что пользователи выгружали счёт в pdf, руками правили в нём цифры и в таком виде отсылали клиенту. Причём делали они так потому, что поставить правильные цифры таким образом было элементарно проще, чем заставить систему их сформировать и выдать. Так вот, только что я понял, каким образом рождаются такие системы. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 13:10 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
hVostt Я ж сказал как. Как это делается. Почему игнорируете? Сохраняются оба значения сразу. Это история. Никто ничего не правит, а добавляют новые значения. ну сказали. И я всё понял. Просто я это не принимаю hVostt Вот договор, содержащий более сотни страниц с приложениями. Я поправил, ты поправил, я сохранил раньше. Ты чего будешь делать? Сравнивать все страницы со своей копией? нет, давайте сделаем ещё 150 копий договора и будем решать, а какая из них актуальная. Как я это могу принять? hVostt В реальном бизнесе два человека не правят одну форму. Такое может случиться только, если данные общие. Я попросил реальный кейс, прям бизнес-кейс, где такое -- норма. Давайте обсудим. в реальном бизнесе не правят одного и того же клиента? Один и тот же договор? Одни и те же телефоны? в CRM такое происходит сплошь и рядом. Пытаются выдать каждому менеджеру своего клиента, чтобы только он его вёл... Но так страдают клиенты, которые ждут, когда менеджер из отпуска выйдет. Поэтому в итоге любой может поправить любого клиента. Такое впечатление, что у вас какой-то нереальный бизнес. Поэтому и не могу принять. может вы надеетесь услышать от меня "у меня вика, где мы постоянно правим один и тот же текст" но у меня не вика, а CRM. Там такое не часто, но бывает. И вот 150 версий договора ну прям вообще нахой не нужны. Их ещё кто-то должен удалять потом... Я всегда могу сохранить себе пдф-ку отдельно, если надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 13:15 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
>softwarer, сегодня, 13:10 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1326982&msg=22161557][22161557] >...Так вот, только что я понял… < Мне сложно понять, что и чем вы поняли. Суть. Есть конкретная сущность - Персоны (а-ля сотрудник). Атрибуты располагаются в полях строк двух таблиц + атрибут "Личные данные", документ Word на файловом сервере в .zip архиве, + атрибут "Паспорт", документ формата .jpg, файловый сервер, + атрибут "Фотография", документ формата .jpg, файловый сервер Пользователю (-ям) нужно отредактировать "Личные данные" ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 13:32 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
softwarer ВМоисеев Вноси только СВОИ изменения. Если твоя правка занимает большой объём - copy/paste из сохраненной редакции. Году в 2005-м я приехал к одному заказчику, и нашёл там местных айтишников, боровшихся с проблемой на другом проекте. Суть проблемы была в том, что пользователи выгружали счёт в pdf, руками правили в нём цифры и в таком виде отсылали клиенту. Причём делали они так потому, что поставить правильные цифры таким образом было элементарно проще, чем заставить систему их сформировать и выдать. Так вот, только что я понял, каким образом рождаются такие системы. Выгрузить в Excel и там поправить - этому воркэраунду сто лет в обед. А учитывая, что в Google Docs и Office 365 с совместным редактированием проблем нет... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 13:57 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
ВМоисеев >hVostt, сегодня, 11:53 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1326982&msg=22161501][22161501] >...Херню не неси. < Вноси только СВОИ изменения. Если твоя правка занимает большой объём - copy/paste из сохраненной редакции. Я полагаю, у тебя абсолютно нет никакого опыта в работе с документами. Ты сидел час и правил документ, внёс множество правок, исправлений, форматирование поправил. Как ты эти изменения перенесёшь, без очередной ёб...и на час? ) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 15:41 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
softwarer hVostt Речь шла об конкурентном сохранении изменений в БД. Тут вообще нет блокировки (конечно в БД она есть), но изменения не блокируются. По сути ты описываешь одну из реализации версионности. Нужно, чтобы кто-то принял одну из конкурирующих версий. Всё просто. Ты ушёл куда-то не туда. Смотри. Есть запись, "ботинки от Кардена". В ней три поля: цена категорийного менеджера (редактирует первый чувак), цена бренд-менеджера (редактирует второй чувак), транспортные расходы (редактирует третий чувак). Естественно, это донельзя упрощённая картина, просто чтобы описать природу процесса, порождающего довольно частые столкновения на блокировках. Т.е. у каждого своё поле (упрощённо). Это же вообще за рамками обсуждения:) softwarer Блин, я ещё две реплики назад сказал: старое значение миллион, новое значение восемьсот тысяч. Что тут непонятного? Ты пишешь сначала одну дикую реплику, потом другую... Проехали, я фигово объясняю, либо ты тупо не понимаешь, результат всё равно один. softwarer hVostt В реальном бизнесе два человека не правят одну форму. Такое может случиться только, если данные общие. Я попросил реальный кейс, прям бизнес-кейс, где такое -- норма. Давайте обсудим. Я привёл тебе кейс, где такое - норма. Ты начал что-то про версионность. Не увидел никакой корреляции с тем, что мы обсуждаем. Сорян. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 15:46 |
|
|
start [/forum/topic.php?fid=32&msg=39975849&tid=1539842]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
26ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
others: | 247ms |
total: | 382ms |
0 / 0 |