You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Сейчас у нас есть вот такая связь: если вызван метод контроллера, то обязательно будет флаш изменений в репозиторий, паб-саб и пр. Мне кажется, что от неё нужно избавиться. Почему:
Если мы будем писать длинный текст, то пользователь на другой стороне не увидит его до тех пор, пока мы не выйдем из редактирования
Если будем двигать объект, то у нас будет куча событий со сдвигом его практически по пикселю
При такой связи сложно написать Undo, т.к. для передвижения придётся как-то склеивать изменения в одно, что звучит плохо. (Если не склеивать, то отменять передвижение тоже будем по пикселю за раз)
Есть пока какая-то такая идея: при "начале" какой-то фичи view идёт в controller и получает объект фичи. Дальше вью взаимодействует с этим объектом, пока фича активна. И уже реализация этой фичи решает, когда ей нужно флашить изменения в репозиторий.
Для фичи передвижения объекта будет как-то так:
class IController:
...
def start_move(self, obj_id) -> IMoveFeature
class IMoveFeature:
def move(delta) -> None
def finish()
При зажатии ЛКМ на объекте view пойдёт в controller.start_move. Дальше при движении "по пикселю" будем дёргать move_feature.move(delta), а при отжатии ЛКМ будем идти в finish(). В данном случае в методе move будем просто запоминать итоговую позицию, а в finish будем применять изменения к репозиторию
Для фичи редактирования текста как-то так:
class IController:
def start_editing_text(self, obj_id) -> IEditTextFeature
class IEditTextFeature:
def edit(???)
def finish()
Тут в методе edit можем, например, флашить изменения как только написано новое слово или символ
При такой реализации мы даём автору фичи свободу в выборе момента флаша изменений и в выборе момента "слепка" для undo
The text was updated successfully, but these errors were encountered:
Сейчас у нас есть вот такая связь: если вызван метод контроллера, то обязательно будет флаш изменений в репозиторий, паб-саб и пр. Мне кажется, что от неё нужно избавиться. Почему:
Есть пока какая-то такая идея: при "начале" какой-то фичи view идёт в controller и получает объект фичи. Дальше вью взаимодействует с этим объектом, пока фича активна. И уже реализация этой фичи решает, когда ей нужно флашить изменения в репозиторий.
При зажатии ЛКМ на объекте view пойдёт в controller.start_move. Дальше при движении "по пикселю" будем дёргать move_feature.move(delta), а при отжатии ЛКМ будем идти в finish(). В данном случае в методе move будем просто запоминать итоговую позицию, а в finish будем применять изменения к репозиторию
Тут в методе edit можем, например, флашить изменения как только написано новое слово или символ
При такой реализации мы даём автору фичи свободу в выборе момента флаша изменений и в выборе момента "слепка" для undo
The text was updated successfully, but these errors were encountered: