[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