Верхом на чемоданах - Девиртуализация [entries|archive|friends|userinfo]
Masha

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

Девиртуализация [Sep. 23rd, 2004|04:35 pm]
Previous Entry Add to Memories Tell A Friend Next Entry
LinkLeave a comment

Comments:
[User Picture]
From:[info]gogabr@lj
Date:September 23rd, 2004 - 03:47 pm
(Link)
Вот ровно это-то и не получится. Потому что при восстановлении старого состояния отменятся все действия других пользователей, произведенные со времени твоего отменяемого. Пример -- в следующем комменте [info]vap@lj.
Вообще же:
1. Как правило, undo устроен не так. Потому что обычно состояние системы большое, а изменение маленькое. Представь себе, что ты редактируешь мегабайтный файл и стерла в нем букву. Так, как ты описываешь, придется хранить текущее состояние файла плюс такое же огромное предыдущее (и так на всю глубину undo). На самом деле достаточно запомнить, что это была за буква и где стояла.*
2. Видимо, идея undo в принципе хорошо подходит далеко не ко всем программам. Она идеальна, когда есть активный пользователь и пассивные данные, с которыми он работает и которые не меняются без его ведома. А как только начинается взаимодействие с внешним миром, undo теряет смысл. Что такое, например, undo в чате?
3. Как только система становится многопользовательской, даже обычные файлы оказываются активной средой -- с ними работают другие.
---
*Примечание для программистов: с другой стороны, редактор может быть построен на каких-нибудь Окасакинских структурах -- и тогда, действительно, достаточно сохранять копию, и больших потерь не будет, поскольку большая часть структуры разделяется.
[User Picture]
From:[info]mashaaaa@lj
Date:September 24th, 2004 - 08:46 am
(Link)
Унду в чате -- это чтобы равносильно команде: "Данную фразу в лог не записывать!"
Унду в системе типа uupc -- чтобы равносильно стиранию письма перед отправкой, пока оно лежит-копится в спуле. %-)