|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
В этой теме был затронута тема по сабжу, которая оказалась оффтопом, но заслужила отдельной темы тут будет её форк. ВМоисеевРассмотрим ситуацию: Вася и Петя загрузили оригинал информационного файла и начали редактировать каждый свою часть. Вася шустрый и быстренько закончил своё дело, сохранив свою работу в на сервере. Оригинал изменился. Петя пошёл попить чайку и свою работу закончил после Васи. Но он не может сохранить свою отредактированную копию в качестве оригинала, ибо будет потеря информации Васи. hVostt И пошёл Вася бить лицо Пете, так как из-за него он не может сохранить результат своей работы, правильно? :) Если вы не можете смержить результат, это ваша проблема. Вы своей неспособностью решить задачу закрываете блокировкой и переносите проблему на пользователей. И никакой возможности снизить боль и проблему у вас не предусмотрено. Лучше не упоминать, что у вас оптимистичная блокировка, так как вы говорите по сути -- я создал проблему для пользователей и горжусь этим :) Так дела не делаются. hVostt В предложенной мною схеме, навскидку, никакие данные не теряются. Оригиналом становится последнее сохранение, однако можно скачать любую версию. Вася при сохранении должен получить уведомление, что до него уже вносились правки и принять решение из вариантов: 1. Вася сохраняет свою версию, которая становится последней, и говорит Пете, чтобы перенёс свои правки в его версию 2. Вася открывает предыдущую версию, сравнивает со своей и переносит руками чужие правки в свою версию В любом случае, блокировка тут не нужна, так как она в вашем решении легко обходится пользователем, и дорого обходится бизнесу. Решение довольно херовое. ВМоисеев Не понимаю. Информационная система работает с сущностями. Каждая сущность обязательно имеет суррогатный ключ и timestamp для реализации оптимистической блокировки. Также, одним из атрибутов сущности может быть файл. Вася и Петя, как минимум имеют <pk_Entity, timestamp>. Петя в процессе попытки переписать отредактированную им копию на сервер, проверяет методом UPDATE тот факт, что он правил копию, соответствующую оригиналу (оригинал сущности не изменился). Если ок, заменяет оригинал файла своей отредактированной копией, с изменением timestamp. Далее, проснулся Вася и отредактировал файл и пытается проверить свою копию на соответствие оригинала. Получает не штатную ситуацию, но с новым timestamp. Он может плюнуть на всё и повторить перепись своей отредактированной копии с потерей работы Пети. Может поступить более аккуратно - повторно загрузить оригинал, что содержит изменения Пети. hVostt А если Вася случайно повторил, или не понял, Петя всё равно придёт бить Васе морду. Поэтому, как я уже говорил, хранение версий файлов решают эту проблему на корню. И нафиг ваша блокировка там уже не нужна. ВМоисеев Не понимаю. Это очевидно. Вы же не имеете желания рассматривать любые решения, способы разработки, кроме того, что смогли осилить. А что осилили, поднимаете на флаг, как достижение уровня открытия Америки. hVostt ВМоисеев Клиент редактирует файл на локальном компе. Поэтому всегда может сделать копию своей работы. Раз вы так рассуждаете... И нафиг тогда ваше ПО ему упало? Он из без ваших соплей может всё в экселях/вордах сделать и в папку расшаренную сохранить. Нужна ли ему какая-то кривая приблуда, которая ему только мешает жить? Если уж на то пошло :) ВМоисеев Потом, я не знаю, сколько пользователей может редактировать файл. И все их версии надо хранить? И потом искать? Вы когда-нибудь работали с Confluence? Видимо нет. В курсе, что историю изменений в том же ворде можно сохранять в самом документе? Этим давным давно пользуются и очень успешно. В ERP/CRM системах сохраняются версии, это давно обычное дело. Вылазьте из танка ) fkthat hVostt Решение довольно херовое. hVostt fkthat , Какие-то старые версии SVN сразу вспоминаются ) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 10:31 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
сразу как Петя сохранил документ Васе всплывает уведомление (в идеале через websocket), что документ изменён и его надо перезагрузить hVostt Алексей Роза , Решение хорошее, но это уже рюшки-плюшки. Т.е. как дополнительное улучшение. Вопрос сохранения это не отменяет. Явных преимуществ оптимистичной блокировки перед пессимистичной в данном кейсе нет. Хранение версий решает проблему сохранения изменений. Уведомления решают проблему сокрытия изменений. Идеальное решение -- мержинг, автоматический или ручной. и вот тут я запутался... этот мержинг? авторMerge — оператор языка SQL, который позволяет слить данные одной таблицы с данными другой таблицы. При слиянии таблиц проверяется условие, и если оно истинно, то выполняется Update, а если нет - Insert. Пару страниц назад ты говорил, что UPDATE не нужен. А прям перед моим постом ты писал: hVostt ВМоисеев, В предложенной мною схеме, навскидку, никакие данные не теряются. Оригиналом становится последнее сохранение, однако можно скачать любую версию. Вася при сохранении должен получить уведомление, что до него уже вносились правки и принять решение из вариантов: 1. Вася сохраняет свою версию, которая становится последней, и говорит Пете, чтобы перенёс свои правки в его версию 2. Вася открывает предыдущую версию, сравнивает со своей и переносит руками чужие правки в свою версию В любом случае, блокировка тут не нужна, так как она в вашем решении легко обходится пользователем, и дорого обходится бизнесу. Решение довольно херовое. ...где п.2 это практически точная копия моего варианта и таки там есть блокировка (Васе заблокирована возможность сохранить документ поверх Пети). hVostt Не SQL-merge, а слияние изменений. Вася одну часть отредактировал, Петя другую. При сохранении происходит попытка слить изменения, если нет конфликтов, которые нужно устранять вручную. Алексей Роза Пару страниц назад ты говорил, что UPDATE не нужен. UPDATE файлов не нужен. Алексей Роза ...где п.2 это практически точная копия моего варианта и таки там есть блокировка (Васе заблокирована возможность сохранить документ поверх Пети). В описанной мною схеме нет блокировки.Вася никогда не может перезатереть изменения Пети, так как все изменения сохраняются отдельными версиями. Просто актуальна всегда самая последняя версия. Петя не потеряет своих изменений ни при каких обстоятельствах, что бы там какой Вася не делал. hVostt В описанной мною схеме нет блокировки. Вася никогда не может перезатереть изменения Пети, так как все изменения сохраняются отдельными версиями. Просто актуальна всегда самая последняя версия. ну т.е. все увидят только изменения Васи. А Петя может до усрачки гордиться своими изменениями, но их так никто и не увидит... пока он их не пересохранит! тогда Васины изменения пойдут на хер, а Петины изменения увидят все... пока Вася их не пересохранит! тогда Петины изменения пойдут на хер, а Васины изменения увидят все... пока Петя их не пересохранит! ... где конец этой истории? hVostt Все увидят все изменения всех людей. Как бы об этом и речь. hVostt В ERP/CRM системах сохраняются версии, это давно обычное дело. Вылазьте из танка ) Пардон за толстую броню, но я всё ещё слабо представляю, как это должно выглядеть... Даже при том, что с CRM знаком не по наслышке. Допустим, у меня форма по заполнению паспорта. Вася заполнил, сохранил. Петя заполнил, сохранил. Коля заполнил, сохранил. Да кто угодно заполнил, сохранил. Во1, мы тупо сохраняем всем разные версии (даже без оглядки на сохранение одновременно открытых документов)? Или сохраняем только те, которые одновременно 2-3-5 челов редактировало? во2, как теперь будет выглядеть форма сохранения паспорта? Там под каждым инпутом будут вылазить все остальные варианты? в3, какая именно версия будет актуальной то - самое главное? hVostt Вариантов решения масса. Версии позволяют не терять изменения. Потеря изменений -- страшный и обидный результат работы с ПО. Как минимум в ПО добавляют аудит изменений. В любых сценариях актуальная версия та, которая была сохранена последней. При любой блокировке, любых решениях. Как работать с изменениями -- вопрос UX. Ещё учитывать контекст задачи. Как например у ВМоисеева, его "оптимистичная блокировка", которой он так гордится, с вероятностью 99,9% нафиг никому не нужна в принципе. Её наличие или отсутствие вряд ли кто-либо когда-то заметит, кроме него самого. При работе с форматируемыми документами два варианта применяются в настоящее время: 1. Версии 2. Совместное редактирование онлайн а п.2 - это не то, о чём я писал? Алексей Роза сразу как Петя сохранил документ Васе всплывает уведомление (в идеале через websocket), что документ изменён и его надо перезагрузить hVostt Нет, совместное редактирование, это когда вы сразу видите изменения, которые вносят другие пользователи. Можете попрактиковаться в на гугл документах, например. Уведомление вам чем поможет? Ну вот вы заполняете некую форму. Потратили кучу времени, а тут вылазит уведомление, что какой-то там Вася уже внёс какие-то свои изменения. И, как говорится, и чо? )) Что теперь делать? Свои изменения сохранять -- ссыкатно, Вася придёт и ругаться будет. Отказываться от своих изменений обидно. Что делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 10:31 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
hVostt Что делать? ну, во1, кол-во полей мало. Потому что большая форма разбита на блоки и в /show/ показывается только текст (БЕЗ редактирования) А кликая по каждому блоку открывается /edit/, где отдельная мини-форма с минимумом полей. Там максимум десяток инпутов/селектов/чекбоксов, а обычно 3-5. во2, делает он так: открывает в соседнем окне изменённую копию и оттуда забирает новые поля к себе. Я просто не очень понимаю, как будет разруливаться это множество версий... Ну откроется последняя, а чё со всеми предыдущими делать? Какая из них нужна, какая нет... Идея ВСЁ хранить конечно имеет свои плюсы, но это же путаница. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 10:37 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
Алексей Роза Идея ВСЁ хранить конечно имеет свои плюсы, но это же путаница. Нет никакой путаницы. Все программисты, которые работают с системами контроля версий так живут. А что "правда" решает ЛПР, через merge request. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 11:37 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
Алексей Роза сразу как Петя сохранил документ Васе всплывает уведомление (в идеале через websocket), что документ изменён и его надо перезагрузить в распределённой с оффлайновой репликацией(например Домино) системе конфликт может возникнуть после локального сохранения и Васей и Петей websocket не спасёт ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 12:33 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
mad_nazgul А что "правда" решает ЛПР, через merge request. :-) это отдельный человек-робот там сидит чтоли и правит чужие писульки? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 13:11 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
Алексей Роза сразу как Петя сохранил документ Васе всплывает уведомление (в идеале через websocket), что документ изменён и его надо перезагрузить Перезагрузить - это в смысле похерить все свои изменения и делать их заново? Или в смысле, что таки будет какое-то слияние? В последнем случае - совершенно не принципиально, когда именно всплывает уведомление. Ну то есть да, в принципе чем быстрее, тем лучше, но это количественная разница, ничего качественно она не меняет. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 13:58 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
Алексей Роза ну, во1, кол-во полей мало. Потому что большая форма разбита на блоки и в /show/ показывается только текст (БЕЗ редактирования) А кликая по каждому блоку открывается /edit/, где отдельная мини-форма с минимумом полей. Там максимум десяток инпутов/селектов/чекбоксов, а обычно 3-5. во2, делает он так: открывает в соседнем окне изменённую копию и оттуда забирает новые поля к себе. Надёжнее открыть две версии, сравнить их и перенести нужные изменения. В соседнем окне вы откроете весь документ, в котором не увидите изменений Пети. Что это вам даст? Вы будете вычитывать каждое поле? Какой-то шит, честно говоря. Алексей Роза Я просто не очень понимаю, как будет разруливаться это множество версий... Ну откроется последняя, а чё со всеми предыдущими делать? Какая из них нужна, какая нет... Версии можно сравнить. Можно увидеть какие изменения кто вносил. В любом случае они останутся, и Петя может свои изменения перенести, как минимум -- он же их делал. Или подсказать что перенести Васе. Как Вася будет по-вашему переносить изменения Пети в свою, если он понятия не имеет что Петя делал? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 14:05 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
ВМоисеев >Алексей Роза, сегодня, 00:38 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1325775&msg=22160474][22160474] >сразу как Петя сохранил документ Васе всплывает уведомление (в идеале через websocket), что документ изменён и его надо перезагрузить < Согласен. Вася должен знать, что отредактировал копию не актуального оригинала файла. И сохранять его копию в качестве оригинала не совсем правильно. Но как он узнает об этом печальном событии? Откуда Петя знает, что надо сообщать Васе, Коле …? Я пытаюсь сделать тоже, что и Вы. Но в процессе попытки переписи копии в оригинал. Мне не надо знать, кто ещё возможно редактирует свою копию оригинала. Клиент получает сообщение, что его отредактированная копия не соответствует актуальному оригиналу. Что клиент будет делать в этом случае - лучший вариант, он заново считает оригинал на свой комп и повторно введет изменения. Вопрос, каков объем изменений? Если большой, то имеет смысл сделать (возможно автоматически) копию копии, но на рабочем компе. Вот и большой вопрос. Вы там втулили нафиг никому не нужную "оптимистичную блокировку", а тут же предлагаете решать проблему пользователем самостоятельно в локальной папке. Где логика? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 14:07 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
hVostt Как Вася будет по-вашему переносить изменения Пети в свою, если он понятия не имеет что Петя делал? как же не имеет?! После уведомления он не сможет сохраниться в этом окне. Он откроет в другом окне последнюю сохранённую версию (которая будет Петиной) и вот в неё перенесёт свои правки. Ну две версии тоже ок, их визуально можно рядом поставить. Но: а) их сложнее обслуживать; б) сложнее для пользователя с ними разбираться; в) сложности с UI для программиста. Как вообще это будет происходить? Петя сохранился, Васе то опять же надо уведомление дать? А потом показать где-то новую версию... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 14:11 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
Алексей Роза как же не имеет?! После уведомления он не сможет сохраниться в этом окне. Он откроет в другом окне последнюю сохранённую версию (которая будет Петиной) и вот в неё перенесёт свои правки. Максимально уродский интерфейс с точки зрения UX, как ни крути. Любой Вася плюнет и пойдёт жаловаться начальству, что программисты придурки не дают ему нормально работать, документ не сохраняется и всё такое. И будет абсолютно прав. Алексей Роза Ну две версии тоже ок, их визуально можно рядом поставить. Но: а) их сложнее обслуживать; б) сложнее для пользователя с ними разбираться; в) сложности с UI для программиста. Если вы так организовали работу с ваши приложением, что совместное редактирование -- это норма, а не из ряда вон выходящйи случай, то нужно подумать о совместном редактировании онлайн. Для остальных случаев версии прекрасно и великолепно решают проблему. Напоминаю вопрос, с Confluence работали? Алексей Роза Как вообще это будет происходить? Петя сохранился, Васе то опять же надо уведомление дать? А потом показать где-то новую версию... Уведомление это не гарантии, это всегда доп. плюшка -- не более того. Вы всегда должны рассматривать решение, как будто уведомлений нет. Если такого решения нет и всё завязано на уведомлении, это ужасное решение. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 14:19 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
hVostt Максимально уродский интерфейс с точки зрения UX, как ни крути. Любой Вася плюнет и пойдёт жаловаться начальству, что программисты придурки не дают ему нормально работать, документ не сохраняется и всё такое. И будет абсолютно прав. Ну вообще-то это я - начальство. И я им скажу, что там красным выделено на видном месте, почему вы не можете сохраниться. "Максимально уродский" С интерфейсом то всё в порядке. Поля легко идентифицируются, ясные и понятные названия. Кнопки на видном месте, делают свою работу без сюрпризов. Есть подсказки. Юзеру удобно и прельстиво. Я видел по-настоящему непродуманные интерфейсы, думаю вы тоже, так что не надо бросаться такими заявлениями. hVostt Если вы так организовали работу с ваши приложением, что совместное редактирование -- это норма, а не из ряда вон выходящйи случай, то нужно подумать о совместном редактировании онлайн. hVostt Напоминаю вопрос, с Confluence работали? ну вот тут бы надо определиться, что в wiki/confluence это одно, а в CRM это редкость. А мы тут про CRM как раз. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 15:49 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
Алексей Роза ну вот тут бы надо определиться, что в wiki/confluence это одно, а в CRM это редкость. А мы тут про CRM как раз Wiki, CRM... А слабо для начала пользовательский сценарий описать простыми словами? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 18:45 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
А вообще тема совместного редактирования на форуме уже обсуждалась. Причём со ссылками на академические работы по алгоритмам слияния изменений и реализации. Какой смысл их сранивать с решениями 20-летней давности? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 18:48 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
Алексей Роза hVostt Максимально уродский интерфейс с точки зрения UX, как ни крути. Любой Вася плюнет и пойдёт жаловаться начальству, что программисты придурки не дают ему нормально работать, документ не сохраняется и всё такое. И будет абсолютно прав. Ну вообще-то это я - начальство. И я им скажу, что там красным выделено на видном месте, почему вы не можете сохраниться. Ну тогда вы тем более должны понимать, что ПО должно решать проблемы, а не создавать их . Вы поймите. Если пользователь сам накосячил и неправильно ввёл данные -- это одно. Если пользователь всё правильно сделал, но не может сохраниться из-за (этого "придурка Пети"), это совершенно другое. Разница между этими двумя случаями -- космос. Алексей Роза С интерфейсом то всё в порядке. Поля легко идентифицируются, ясные и понятные названия. Кнопки на видном месте, делают свою работу без сюрпризов. Есть подсказки. Юзеру удобно и прельстиво. Я видел по-настоящему непродуманные интерфейсы, думаю вы тоже, так что не надо бросаться такими заявлениями. Нет надо. Ещё как надо. Говёные интерфейсы, это в нашем мире норма. Хорошие интерфейсы -- редкость и бриллианты. Особенно в сфере enterprise. Зачем же плодить говёные решения на ровном месте? ПО это в первую очередь -- автоматизация. Но не заставлять пользователю вручную делать то, что может сделать за него программа, или по крайне мере максимально снизить боль. Не давать сохраниться, это фиговое решение. При чём в моей практике такое поведение ПО скорее всего привело бы к эскалации и скандалу. Алексей Роза ну вот тут бы надо определиться, что в wiki/confluence это одно, а в CRM это редкость. А мы тут про CRM как раз. Изначально ВМоисеев вбрасывал именно редактирование документов-файлов. Вордяшников там, экселей, или чего там у него. Собственно в этом ключе я и веду дискуссию. Понимаю к чему вы клоните, но вам лучше уточнять, чтобы не было разногласий. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 20:33 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
ну я на это внимание обратил hVostt Вы когда-нибудь работали с Confluence? Видимо нет. В курсе, что историю изменений в том же ворде можно сохранять в самом документе? Этим давным давно пользуются и очень успешно. В ERP/CRM системах сохраняются версии, это давно обычное дело. Вылазьте из танка ) вопрос то кстати был не ко мне, а к ВМоисееву :) hVostt Не давать сохраниться, это фиговое решение. При чём в моей практике такое поведение ПО скорее всего привело бы к эскалации и скандалу. Я не могу с вами согласиться. Я могу сказать, что ещё фиговей, когда Вася сохранится, а потом Петя сохранится. Вася откроет снова, а там уже другая инфа, которую он никогда не видел и надпись "это Петя". Всё. Разбитые ёбла. Война. Хаос. Разрушения. Я понимаю, что в wiki это не канает, там много совместных редактирований и интерфейс под это заточен. Но в CRM это разовые случаи. Я также могу привести кучу примеров, когда нельзя чего-то сделать, потому что прав нет. Или когда не заполнил что-то в анкете клиента и поэтому не можешь распечатать договор. Это уже потенциальный серийный убийца ходит по офису и всех расстреливает из бластера. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 21:23 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
Алексей Роза Я не могу с вами согласиться. Я могу сказать, что ещё фиговей, когда Вася сохранится, а потом Петя сохранится. Вася откроет снова, а там уже другая инфа, которую он никогда не видел и надпись "это Петя". Всё. Разбитые ёбла. Война. Хаос. Разрушения. Ну давайте на конкретном примере что ли. Спустимся на землю так сказать. Есть у вас такой пример? У меня -- нет. Что конкретно там Вася у вас мог такое редактировать, что некий Петя его опередил, и наступил хаос? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 23:00 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
Алексей Роза Я не могу с вами согласиться. Я могу сказать, что ещё фиговей, когда Вася сохранится, а потом Петя сохранится. К слову сказать, пессимистичной блокировке 100500 лет, миллионы людей, если не миллиарды работали в подобных системах и продолжают успешно работать. И знать не знают про ваши надуманные с ВМоисеевым проблемы Оптимистичная на самом деле нужна только в определённых кейсах, довольно узкий спект применения. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 23:03 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
hVostt Оптимистичная на самом деле нужна только в определённых кейсах, довольно узкий спект применения. Я пожалуй что не назову ни одного кейса, когда она действительно нужна с точки зрения бизнес-логики. Я думаю, что её всегда определяли технологии. Эта идея появилась для решения проблем, возникающих у клиент-серверных приложений при использовании блокировочных СУБД. Потом она продемонстрировала определённые достоинства с точки зрения работы над пулом соединений, при отсоединённом редактировании итп. То есть факторы выбора - технологические. С точки зрения бизнес-логики я не могу ни вспомнить, ни придумать ни одного случая, когда вылетающее сообщение "а Вася успел первым" было бы наиболее удобно пользователю. Как правило, пользователю удобно, что вылетало сообщение "Вася хочет отредактировать запись, которую Вы держите, позволить? Да/нет/Чуть позже/Поговорить с ним/Тайм-аут". ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 23:18 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
softwarer Как правило, пользователю удобно, что вылетало сообщение "Вася хочет отредактировать запись, которую Вы держите, позволить? Да/нет/Чуть позже/Поговорить с ним/Тайм-аут". И скорее всего подобное сообщение увидели бы лишь избранные. Нужно очень крепко напрячь фантазию и придумать кейс, где подобная проблема была бы повсеместной. Это что за агрегат такой, который Вася и Петя, да Маруся -- всем срочняком понадобилось отредактировать в одно время? Что это бизнес такой е...ый? :) Также соглашусь, что тип блокировки относится больше к технологическому стеку и общей архитектуре системы. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 23:25 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
hVostt Ну давайте на конкретном примере что ли. ну например, Вася редактирует <textarea>, сохраняет новую версию с критическими правками. И там, например, написано "не трогать клиента, потому что он плюётся ядом". А в это время Петя редактирует её же и не видит новой инфы, сохраняет свою инфу "клиенту звонил, договорились о встрече на завтра". В итоге Петя умер. Васю посадили. Клиента сожгли. Руководство выебали. Компанию закрыли. Имущество распродали. Занавес. hVostt пессимистичной блокировке 100500 лет это в которой надо по 3 записи дополнительные вводить для каждой такой блок формы? где указано: кто заблокировал, время блокировки и какой именно блок блокируем. авторОсновной минус тут один: запись может висеть в заблокированном состоянии сколько угодно, поэтому желательно наличие какого-нибудь администратора, который может принудительно разблокировать любую запись. Кстати, а чё это мы уже на пессимистичную блокировку переместились, были же вроде на мультиверсионном варианте БЕЗ блокировок... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 23:27 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
Алексей Роза ну например, Вася редактирует <textarea>, сохраняет новую версию с критическими правками. И там, например, написано "не трогать клиента, потому что он плюётся ядом". А в это время Петя редактирует её же и не видит новой инфы, сохраняет свою инфу "клиенту звонил, договорились о встрече на завтра". В итоге Петя умер. Васю посадили. Клиента сожгли. Руководство выебали. Компанию закрыли. Имущество распродали. Занавес. Это давным-давно решается историей. Никто чужой textarea не редактирует, добавляются исторические записи. Вася своё написал, Петя своё. Обе информации видны в карточке. Нормальный кейс давайте. Алексей Роза это в которой надо по 3 записи дополнительные вводить для каждой такой блок формы? где указано: кто заблокировал, время блокировки и какой именно блок блокируем. Почитайте про пессимистичную блокировку. Алексей Роза Кстати, а чё это мы уже на пессимистичную блокировку переместились, были же вроде на мультиверсионном варианте БЕЗ блокировок... Это происходит как раз в рамках пессимистичной блокировки, если что :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 23:35 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
hVostt Обе информации видны в карточке. и это навсегда теперь в базе? Всё что там когда-либо сохраняли вы держите в своём Event Store? hVostt Почитайте про пессимистичную блокировку. да читал . Озвучил вам вариант №2. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 23:39 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
hVostt Это происходит как раз в рамках пессимистичной блокировки, если что :) а что за блокировки вообще, если у вас ES ?? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2020, 23:40 |
|
совместное редактирование форм
|
|||
---|---|---|---|
#18+
softwarer Я пожалуй что не назову ни одного кейса, когда она действительно нужна с точки зрения бизнес-логики. При немного расширенном использовании с её помощью можно делать "умный" мерж. Вася прочитал запись (Имя, Цена) и обновил Имя, пока он это делал Петя прочитал ту же запись (Имя, Цена) и обновил Цена. Тогда можно автоматически распознать, что Петя не трогал то что обновлял Вася, и сохранить только его изменения в Цена не перетирая изменения Васи старым значением. Но на самом деле все это можно решить еще проще чем нибудь типа "Event Sourcing", всегда просто сохраняя не всю запись в виде новой версии, а только её изменения. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 00:01 |
|
|
start [/forum/topic.php?fid=32&msg=39975437&tid=1539842]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 162ms |
0 / 0 |