Date: 2004-09-23 08:47 pm (UTC)
Вот ровно это-то и не получится. Потому что при восстановлении старого состояния отменятся все действия других пользователей, произведенные со времени твоего отменяемого. Пример -- в следующем комменте [livejournal.com profile] vap.
Вообще же:
1. Как правило, undo устроен не так. Потому что обычно состояние системы большое, а изменение маленькое. Представь себе, что ты редактируешь мегабайтный файл и стерла в нем букву. Так, как ты описываешь, придется хранить текущее состояние файла плюс такое же огромное предыдущее (и так на всю глубину undo). На самом деле достаточно запомнить, что это была за буква и где стояла.*
2. Видимо, идея undo в принципе хорошо подходит далеко не ко всем программам. Она идеальна, когда есть активный пользователь и пассивные данные, с которыми он работает и которые не меняются без его ведома. А как только начинается взаимодействие с внешним миром, undo теряет смысл. Что такое, например, undo в чате?
3. Как только система становится многопользовательской, даже обычные файлы оказываются активной средой -- с ними работают другие.
---
*Примечание для программистов: с другой стороны, редактор может быть построен на каких-нибудь Окасакинских (http://www-2.cs.cmu.edu/~rwh/theses/okasaki.pdf) структурах -- и тогда, действительно, достаточно сохранять копию, и больших потерь не будет, поскольку большая часть структуры разделяется.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

January 2022

S M T W T F S
       1
2345678
910111213 14 15
16 171819202122
23242526272829
30 31     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 18th, 2026 11:52 am
Powered by Dreamwidth Studios