4庸毫、老土眼中的撤銷重作原則
為了避免用戶的誤用和誤擊沟于,系統(tǒng)應(yīng)提供撤銷和重做功能尽纽。
不知道其他人怎樣,老土對“撤銷重作原則”是又愛又恨的。先說“愛”来惧,當(dāng)然從用戶的角度看,針對用戶的誤操作,為用戶提供“撤銷”和“重做”是非常貼心的。任何“貼心”的設(shè)計(jì)或多或少都可以提高用戶滿意度兑徘。然而談到“恨”,老土不得不說羡洛,在很多場景中為了支持“撤銷”和“重做”引入的開發(fā)工作量是巨大的,尤其是在應(yīng)用設(shè)計(jì)的初期并沒有考慮支持“撤銷”和“重做”的時(shí)候更是如此藕漱。舉例來說欲侮,如果一個(gè)操作涉及了一定次序的多個(gè) 數(shù)據(jù)庫表中條目的創(chuàng)建和修改,那么對這個(gè)操作的“撤銷”和“重做”將會非常復(fù)雜肋联,需要認(rèn)真設(shè)計(jì)操作流程 威蕉。在哪個(gè)環(huán)節(jié)進(jìn)行“撤銷”和“重做”,就需要將這個(gè)環(huán)節(jié)之前的“全部”數(shù)據(jù)庫操作統(tǒng)統(tǒng)撤掉橄仍,從而保證“撤銷”和“重做”不會導(dǎo)致有異常數(shù)據(jù)和垃圾數(shù)據(jù)出現(xiàn)韧涨。當(dāng)然一種比較簡單的做法是將這一系列的操作放在一個(gè)數(shù)據(jù)庫事務(wù)中完成,但引入數(shù)據(jù)庫事務(wù)操作對數(shù)據(jù)庫的性能有不良影響侮繁,也需要非常慎重虑粥。
常見的“撤銷重做”模式包括:
1、任意“撤銷重做”:從想當(dāng)然的角度宪哩,這種模式自然是“極好的”娩贷,但事實(shí)上,這種模式也是開發(fā)成本最高的锁孟。因?yàn)檫@里我們需要關(guān)注的是“撤銷和重做”畢竟還是一個(gè)小概率操作(如果“撤銷和重做”成了一個(gè)大概率操作彬祖,只能說明產(chǎn)品的交互設(shè)計(jì)出了問題)。為了這個(gè)小概率操作品抽,引入不菲的開發(fā)量實(shí)在是不值得的储笑。另一方面,隨著操作“深度”的增加圆恤,任意“撤銷和重做”的開發(fā)成本會越來越高突倍,因此如果不得不支持任意“撤銷和重做”,則在產(chǎn)品設(shè)計(jì)中非常有必要限制一下每個(gè)操作的“深度”哑了。老土個(gè)人覺得“3步”已經(jīng)是最大可以接受的深度了赘方。
2、永遠(yuǎn)回到第一步:這種模式的最杰出的代表就是iPhone的Home鍵設(shè)計(jì)弱左。當(dāng)用戶在操作iPhone的時(shí)候窄陡,不論遇到什么問題,只要按一下Home鍵就可以回到首屏拆火。用戶可以再次從這個(gè)首屏出發(fā)完成自己需要的操作跳夭。這個(gè)簡單的特性涂圆,對非常多的初級用戶絕對是福音,反正我老爸和老媽是非常喜歡的币叹。而作為這種模式的一個(gè)變種就是“用戶不得不完成一個(gè)系列的全部的操作润歉,但是可以在完成這個(gè)系列操作之后,將這個(gè)系列的全部“成果”一次性干掉”颈抚。
3踩衩、僅撤銷“上一步”:如果認(rèn)為前兩種方式過于極端,則可以考慮僅支持一步撤銷贩汉。這種方式一方面提供了“撤銷重作”的功能驱富,另一方面有效的控制了相關(guān)的開發(fā)復(fù)雜度。
綜上匹舞,“撤銷重作”可以有很多模式褐鸥,但解決方案的最佳手段是“防止問題發(fā)生”,所以老土建議:
1赐稽、盡可能不要涉及多步連續(xù)操作(單步操作的“撤銷重作”要簡單的多)叫榕;
2、不得不多步連續(xù)操作姊舵,則要盡可能控制操作“深度”晰绎;|
3、多步連續(xù)操作的設(shè)計(jì)一定要非常慎重蠢莺,代碼邏輯要充分審閱寒匙,以保證不會引入異常數(shù)據(jù)和垃圾數(shù)據(jù)。
最后關(guān)于“撤銷重做”再分享一個(gè)小的產(chǎn)品設(shè)計(jì)技巧躏将。
錘子手機(jī)支持一項(xiàng)非常有趣的功能“取消短信發(fā)送”锄弱,操作方式如下:用戶編輯短信,點(diǎn)擊“發(fā)送”之后如果有特殊情況或者不想發(fā)送祸憋,可以立即點(diǎn)擊短信界面右上角取消發(fā)送会宪。
這個(gè)功能非常唬人蚯窥,因?yàn)橛须娦啪W(wǎng)絡(luò)技術(shù)背景的人都知道掸鹅,短信技術(shù)本身是不支持“取消短信發(fā)送”功能的!那么錘子手機(jī)是如何實(shí)現(xiàn)的呢拦赠?其實(shí)也很簡單巍沙,就是用戶點(diǎn)擊“發(fā)送”之后,短信并沒有被立即發(fā)送荷鼠,而是在3秒鐘之后再發(fā)送句携。因此用戶只能是在點(diǎn)擊“發(fā)送”后3秒內(nèi)可以取消發(fā)送,過了這3秒允乐,也是不可能取消的矮嫉!不過這3秒的緩沖已經(jīng)算是對很多“誤發(fā)”短信用戶的福音了削咆。