Ну типа того. Операции с ресурсом сами по себе атомарны, они либо выполняются, либо нет. Прошёл change - ура. Не прошёл - увы.
Ок, тогда я могу сказать, что эти все операции это создание ресурсов /schedule/start-editing /schedule/continue-editing /schedule/change /schedule/no-change
просто как только они отрабатывают - они удаляются системой.
Скажем вот как выше приводили пример с бронью в кинотеатре. Ты забронировал место, у тебя есть N минут на оплату. Пока ждём оплату - держим лок. Версионность тут вообще никак не поможет )
Ок, тогда я могу сказать, что эти все операции это создание ресурсов /schedule/start-editing /schedule/continue-editing /schedule/change /schedule/no-change
просто как только они отрабатывают - они удаляются системой.
Ну да, только у тебя эти ресурсы связаны. Ты же не можешь выполнить change, не сделав лок, например.
Я не говорю, что "лучше". Лично мне кажется, что это более наглядно, потому что получение/снятие лока привязывается к созданию/удалению ресурса "сеанс редактирования". Ты же изначально спрашивал именно про избавиться от неявных действий. Но это чисто моё мнение, я никому не навязываю.
Я не говорю, что "лучше". Лично мне кажется, что это более наглядно, потому что получение/снятие лока привязывается к созданию/удалению ресурса "сеанс редактирования". Ты же изначально спрашивал именно про избавиться от неявных действий. Но это чисто моё мнение, я никому не навязываю.
в случае create/change/commit тут вообще не про локи - тут про публикацию версии по сути, так что вы просто совсем разные бизнес сценарии обсуждаете походу
Безусловно. И в данном контексте вопроса я бы уж делал так тогда: - повесили лок - прочитали расписание - внесли правки - сняли лок.
или как делают адекватные люди - получили рассписание и его версию - внесли изменения с новой версией. Если версии не совпадают ловим ошибку и можем разруливать конфликт
или как делают адекватные люди - получили рассписание и его версию - внесли изменения с новой версией. Если версии не совпадают ловим ошибку и можем разруливать конфликт
Ну или так. Если это допустимо с точки зрения бизнес-логики, потому что в этом случае должен быть "разруливатель конфликтов". Админ там, или начальник. Мало ли, может быть просто нельзя показывать одному участнику изменения, сделанные другим.