2010-04-02 95 views
2

關於數據驗證,我聽說選項是「快速失敗,提前失敗」或「完全驗證」。第一種方法在第一次驗證錯誤時失敗,而第二種方法建立失敗列表並顯示它。數據驗證:快速失敗,早期失敗與完全驗證

我很想知道在服務器端和客戶端數據驗證的背景下。在什麼情況下適用哪種方法,爲什麼?

我個人對於客戶端數據驗證的偏好是告知用戶所有失敗約束的第二種方法。我沒有足夠的信息對服務器端有任何意見,儘管我可以想象它取決於涉及的業務邏輯。

回答

4

這是令人困惑的部分原因是人們不會將正交性作爲標準的一部分來討論。 「失敗提前」是有用的,這樣錯誤就會發生,而不是下游。但是對於正交失敗,沒有下游或多個下游。

例如,大多數用戶表單都充滿了大量獨立問題,例如用戶名,密碼,電子郵件等。由於他們是獨立的,請等到所有3個到達,並立即描述所有錯誤。使用戶經歷三次提交 - 檢查 - 投訴循環是荒謬的。

+0

謝謝!這解釋得很好。 – 2010-04-03 19:38:04

+0

我很高興你發現它有幫助! – 2010-04-06 12:29:14

2

對於瑣碎的錯誤,如無效輸入或缺失數據,取決於您想爲系統創建用戶的方便程度。例如,如果有人將完整的數據電子表格導入到系統中,並且第一行失敗,並且您說「第一行失敗」,這可能非常煩人。用戶修復第一行,導入並獲取消息「第二行失敗」。想象一下,有65536行。你已經知道你不會對數據做任何事情,但是你想讓用戶的生活更輕鬆嗎?再次,這些是我正在討論的錯誤的錯誤,當然您將設計一個系統,在處理之前驗證所有數據。

對於更嚴重的錯誤,要麼您不期望或不僅僅是驗證問題,請恢復爲快速且難以處理的錯誤