[Catalyst] Use Undo on A List Apart
Matthieu Codron
matthieu at codron.org
Sun Jul 29 00:20:34 GMT 2007
>
> I do not know how this could be generalized for all apps. In the
> simple
> cases -- maybe. Consider the following scenarios that you would
> need to
> handle:
>
> * Change happens, the updated data affects the next 5 actions (via
> the
> current user or another user(s)) and then the user requests an undo --
> hard. Imagine a change such as a picklist item deletion -- where
> other
> users ordering the bundle that place orders after the fact have a
> bundle
> that is limited via the deletion. admin users goes woops and trys
> to undo
> -- now how do you reconcile the state?
>
> * Change happens from multiple sources creating a complex merge
> list of
> different fields -- "undoing" this in different orders or pieces
> may leave
> the data state in a poor state.
>
>
> Undo (or at least intelligent undo) is a very hard problem in all
> but the
> simplist of shared applications.
>
Undo is not easy to implement when then is shared data (like in your
examples).
But when it's about a shared application letting multiple users
manipulate their very own private data, IMHO it's definitely a
manageable problem.
Rememberthemilk is a good example of this.
> The OK or Cancel button is not there because of lazy programming
> practices,
> it is usually there because you are entering a state where a
> backout is too
> hard to do or just does not make sense because of the context.
> You may be
> better served just putting in undo actions in the places where the
> action
> makes real sense and ignore a list apart's box top screaming.
I agree, not every action is undoable and the article in A List Apart
goes a bit too far on usability and lacks about feasibility/
usefulness. But I still think a common infrastructure could help in
some cases. Desktop apps have had this kind of functionality for
years, yet it is not too common in web applications.
--
Matthieu Codron
matthieu at codron.org
More information about the Catalyst
mailing list