如何編寫有用的錯誤消息?

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"錯誤消息的領域涉及很多方面的內容。它們需要將UX領域的幾乎所有元素(信息、說明、界面、微文案)結合起來,並且用幾句話將這些信息闡述清楚。所有這些元素都是爲了一個共同的目標:"},{"type":"text","marks":[{"type":"strong"}],"text":"在出現問題時幫助用戶"},{"type":"text","text":"。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/14\/1428d5672c0901991d606f9739f23555.png","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"錯誤消息需要快速、清晰地通知、指導和引導用戶"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"但上面的說法還是太簡單了,因爲錯誤消息還需要包含以下內容:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"你的站點或系統的結構"},{"type":"text","text":":用戶和開發人員都不希望看到無窮無盡、含義各異的文本字符。所以你需要考慮爲之編寫錯誤消息的系統上下文。你需要找出系統的所有需求和約束,然後儘可能讓錯誤邏輯保持簡單和一致。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"整體體驗"},{"type":"text","text":":從現有的設計模式中汲取靈感,或共同打造一個新的設計模式來滿足設計和內容需求。用戶都喜歡熟悉的內容,並且重用各種語言模式就像重用各種設計模式一樣會讓大家都很滿意。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"品牌和產品"},{"type":"text","text":":消息應該反映你的品牌或產品的聲音和基調,這些內容還要同上下文和用戶心態保持平衡。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"那麼,如何編寫對所有人和用戶都有幫助的錯誤消息呢?你該從哪裏入手?"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"(先)不要寫任何東西!"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"什麼都不管就開始打字是很誘人的做法。你覺得你的大腦每次只會應付一條消息,因此每個錯誤都能寫出完美、井井有條的消息!"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"聽起來很棒?但情況並非總是如此。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"如果你正在開發一個新的網站、工具或系統,你需要寫很多錯誤消息纔行。如果你要添加一條消息,那麼同類的消息可能已經有好幾條了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"利益相關者也有很多:設計師、開發人員、品牌人員,他們都希望看到精心設計、保持一致的錯誤處理方法。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"用戶需要在他們遇到問題時獲得錯誤消息的幫助——所以這些消息最好是有用的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"因此,與其“編寫”錯誤消息,不如考慮“構建”消息。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"打下堅實的基礎"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"如果你正在創建一個全新的網站、工具或系統,請召集整個團隊,共同列出所有可能出錯的事情,例如:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"可能提交錯誤信息的人"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"將用戶引向不存在頁面的損壞鏈接"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"系統整個崩潰,沒有任何解釋"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"然後,開始對它們分組——你的分組方法將取決於你所開發的產品,這裏有一些例子:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"系統和網絡"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"字段和輸入"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"“你不能那樣做”"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"現在將這些事件按照令人困惑(frustrating)、煩人(annoying)到令人生氣(infuriating)的級別分類。這一部分引用了Deliveroo的內容設計團隊的理念,他們也寫了一篇關於錯誤消息的出色"},{"type":"link","attrs":{"href":"https:\/\/medium.com\/deliveroo-design\/how-to-write-any-error-message-7a3348cce594","title":"","type":null},"content":[{"type":"text","text":"文章"}]},{"type":"text","text":"。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在下面這個分類圖上,到了某一點後,錯誤就會阻止用戶會話繼續進行下去。用戶或系統都無法修復它。他們的關鍵路徑被打亂了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/af\/af13e335e0d423985fa09b07f477b677.jpeg","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"將這些事件分組後,你就更容易設計出一致的模式。按嚴重程度排名可以幫助你表達正確的語氣。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"構造錯誤消息"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"一旦你構建了一些基礎,你就可以給你的錯誤消息建立一些結構。這樣,所有錯誤消息就都會保持一致,永遠都不會過於冗長。"}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"你應該問自己三個關鍵問題:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"numberedlist","attrs":{"start":1,"normalizeStart":1},"content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":1,"align":null,"origin":null},"content":[{"type":"text","text":"誰觸發了錯誤?"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":1,"number":1,"align":null,"origin":null},"content":[{"type":"text","text":"用戶:如果是用戶導致了錯誤,比如輸錯了電子郵件地址,那就不要道歉。這時候道歉只會花費用戶更多的時間和精力來閱讀和處理,時間是很寶貴的。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":1,"number":2,"align":null,"origin":null},"content":[{"type":"text","text":"系統:如果是我們的錯,那就說聲“對不起”。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":2,"align":null,"origin":null},"content":[{"type":"text","text":"我們知道是什麼原因造成的嗎?"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":1,"number":1,"align":null,"origin":null},"content":[{"type":"text","text":"是:解釋發生了什麼,或者爲什麼有些事情不起作用。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":1,"number":2,"align":null,"origin":null},"content":[{"type":"text","text":"否:如果我們不知道出了什麼問題,請承認並告訴他們。向他們保證我們正在努力修復問題。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":3,"align":null,"origin":null},"content":[{"type":"text","text":"我們可以現在就修復嗎?"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":1,"number":1,"align":null,"origin":null},"content":[{"type":"text","text":"是的,我們可以:解決問題,並告訴他們你正在做什麼以提供幫助"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":1,"number":2,"align":null,"origin":null},"content":[{"type":"text","text":"是的,用戶可以:給他們明確的指示來引導他們解決問題"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":1,"number":3,"align":null,"origin":null},"content":[{"type":"text","text":"否:如果沒法繼續下去,請提供最佳建議或引導他們後退一步重試。只有在有用的情況下才將人們帶到幫助文檔或實時\/web對話中。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/8b\/8b75a584ce75b64af13ce41284d7ade3.jpeg","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"使用一系列問題和構建塊構建你自己的錯誤消息"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"讓錯誤消息自行生成"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"一旦你有了一個定義好的結構,你就有了一個很好的公式-構建塊組合來構建用戶可能遇到的所有錯誤消息。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"你現在可以按這樣的結構來編寫錯誤消息:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"}],"text":"[解釋] [指導]"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"}],"text":"[道歉] [解釋] [解決]"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"或者在非常糟糕的情況下:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"}],"text":"[道歉] [承認,安撫] [引導他們回來]"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/fe\/fe74ec1d18ede272c2795cf1457b50fc.jpeg","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在密碼框中,用戶可能忘記了正確密碼。因此你需要創建第二個循環,並提供讓用戶重回正軌的流程。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"這樣做可以讓句子結構保持簡單、清晰和一致,這對大家都有好處。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"用戶會感到更加熟悉並更快地處理它們。設計師可以正確地預估消息內容的間距和設計模式。開發人員也可以開始構建邏輯和字段驗證可能需要的細節級別。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"收尾工作"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"所以,現在你知道了你的錯誤消息需要滿足哪些要求,那麼我們的消息具體應該說什麼呢?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我們可以在構建塊中加入其他一些內容,比如:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"錯誤對用戶來說是多麼煩人,多麼令人頭疼"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"你的品牌聲音和基調,可能需要根據品牌調性來調整具體內容"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"上下文,例如設計和開發需求"}]}]}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"選對說法"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"首先,你的錯誤信息應該一直都是清晰準確的。它應該聽起來很人性化,並且只使用你日常對話中會用到的詞彙。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/54\/54fc9f4386f212a8b384376d949f9355.jpeg","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"“無法連接”聽起來不像“未檢測到互聯網連接”那麼機械,雖然它們說的是同樣的事情。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"你的產品還應該具有一致的個性或"},{"type":"text","marks":[{"type":"strong"}],"text":"聲音"},{"type":"text","text":"。一些品牌(例如私人銀行)的聲音聽起來更正式,因爲這種正式感能讓用戶感到自己的資金更加安全可靠。而其他一些品牌(如時尚、遊戲或運動行業)則可能更健談、不拘禮節,甚至隨性。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"你的錯誤消息都應該符合你的品牌聲音調性。錯誤消息應該考慮到受衆身份,以及他們爲什麼、何時使用你的產品。"}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"打出正確的語氣"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"當品牌聲音固定下來以後,你的語氣需要和不同的錯誤情況相適應。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"如果錯誤很小,例如用戶輸入了錯誤的電子郵件地址,你的語氣就可以比較隨意,同時讓人感到你正在提供幫助。如果你的品牌聲音允許的話,你還可以加入一些溫暖或幽默的語氣。但這些調整不應該讓你的信息更難理解。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"如果錯誤真的很糟糕,比如有人被鎖定在他們的帳戶之外,那麼現在你的語氣就應該變得更加誠懇、更讓人感受到幫助了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"你應該理解用戶所處的位置,以及他們爲了解決問題需要付出的努力。你的帳戶恢復流程可能短暫而甜蜜。但是你的用戶還是被鎖定在他們的帳戶之外了,這終歸是給人壓力的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/1f\/1fb0b3ba71695812d4e5549a386a3cd5.jpeg","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"採取更直接的方法:“你需要恢復你的帳戶”而不是“哎呀,你被鎖定了!”,但告訴用戶“我們隨時爲你提供幫助。”"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"平衡精度與一致性"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在一個簡單的表單上(比如用戶註冊頁面),你需要考慮一些最常見的錯誤。你或許可以爲用戶提供更具體的指導,例如提醒他們密碼始終應該包含數字,或者電子郵件地址始終應該包含“@”。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"通過與設計師、開發人員和團隊其他成員的緊密合作,你甚至可以提前阻止一些錯誤的發生!"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/10\/10f57c3df9828d4b04ebd2f73fab2529.jpeg","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"如果你能提前同團隊合作設計驗證字段,就可以預防一些錯誤並改善整體用戶體驗。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"但如果你正在處理一個大型表單,你可能無法涵蓋所有​​類型的字段驗證,因爲這樣會很難構建和維護。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"如果是這種情況,請系統地應對問題。將字段類型分組,定義最常見的錯誤,看看是否可以將字段標籤插入可重用的響應來生成錯誤消息。比如說:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"輸入[字段標籤]"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"選擇一個選項"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/ee\/ee6c636ba39cda413c71497b2d2840cd.jpeg","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"一些更簡單、全面的錯誤消息示例,它們平衡了技術限制和實用性,例如“選擇一個選項”和“輸入[字段標籤]”。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"寫出好的消息的原則"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"根據項目的不同,你可能需要調整其中的一些想法。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"它們並不是解決問題的一刀切原則。不同的情況需要不同的細節水平。需要根據用戶測試和數據的情況來調整細節水平。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"但是你可以遵循一些很好的原則,它們可以幫助你寫出很出色的錯誤消息:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"使用通俗易懂的語言:寫出你會大聲念出來的句子和單詞"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"分解長句:兩個短而清晰的句子比一個長句好"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"使用主動語態:應該說“輸入你的姓名”,而不是“未輸入姓名”"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"修剪不必要的詞:“請”往往是累贅的單字"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"避免責怪用戶:不要說“你沒有輸入你的電子郵件地址”,而是讓他們“輸入一個電子郵件地址”"}]}]}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"總結"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"錯誤消息可能寫起來很讓人頭疼。僅僅幾句話就可以決定用戶體驗的成敗。只要能系統地構建錯誤消息,你就可以讓消息內容清晰、富有建設性。這種系統方法可以防止消息內容跑偏或者太過寬泛,也能維持一大堆消息的一致性。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"一套合理正確的編寫流程有助於實現更簡潔的設計、更精簡的代碼,帶來更快樂的用戶。所以你的重點不應該放在具體的編寫上。首先建立你的基礎,定義一個結構,然後再慢慢裝點它們吧。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"原文鏈接:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"https:\/\/www.bbc.co.uk\/gel\/guidelines\/how-to-write-useful-error-messages"}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章