2011-04-14 48 views
5

我從前任僱主回味的是,他們兩個之間區別如下:數據驗證和驗證有什麼區別?

  • 驗證是檢查的數據是一個非常基本的意義上適當的過程;例如可以將日期字段中的數據轉換爲日期,或者可以將數字字段中的字符轉換爲適當類型的數字;
  • 驗證是根據您在界面上施加的其他「商業」規則來檢查類型化數據的過程 - 例如「出生日期」字段表示申請人在特定年齡範圍內。

這些記憶不符合關於該主題的Wikipedia article,也不符合BBC BiteSize Revision article

那麼什麼是共識:當我檢查Xml輸入時,人們是否在乎什麼方法和過程被調用?

我在做什麼,當我:

  1. 檢查日期字段包含可以轉換爲一個C#的DateTime字符;
  2. 檢查DateTime是否存儲在SQL Server中的適當日期範圍內;
  3. 檢查出生日期是指18歲以上65歲以下的客戶嗎?

回答

1

好了,我會以此爲公開邀請沉思...

我覺得差異非常像編譯時間與運行時錯誤。就像編譯器能夠告訴兩個變量a,bdouble類型,並且因此表達式a/b是有效的,僅在運行期間,如果b結果爲0,則可以提出DivideByZeroException

所以要完成比喻,可以驗證一個字符串看起來像一個信用卡號碼('編譯時間'),但只能驗證它是否對應於一個有效的卡只有當一個人試圖收取信用卡( '運行時間'),金額爲

Duh。所以我想我理解它很像你的老公司。

+0

行 - 所以我選擇了你的答案,因爲你同意我的看法:)如何選擇討論問題的答案? – Nij 2011-04-16 06:35:48

+0

@Nij真的。只有那些告訴你你想聽到的人真的可以理解你:P無論如何,如果論壇像討論是我們一些人所希望的那樣......它從來沒有發生過。只有3個答案。太糟糕了:( – bottlenecked 2011-04-16 07:29:20

0

在編程方面,它與你所說的(驗證或驗證)沒有區別,但是你把邏輯放在哪裏是很重要的。通常你提到的所有三個規則都被認爲是驗證,前兩個點對應於UI驗證,最後一點指向業務規則驗證。我們通常在我們的控制器中使用數據註釋來驗證UI字段,並在業務層中執行業務規則驗證。但從軟件角度來看,底線是;除非數據正確(您稱其爲有效或已驗證),否則不要執行操作(保存,編輯)。

+0

我想我的問題的一部分是爲了找出別人是否會認爲它很重要我稱之爲!有時候即使數據無效也必須加載數據;但沒有希望到你的現場表! – Nij 2011-04-16 06:32:01

2

在我的詞彙量,驗證正在檢查數據的格式是否正確,即,如果你實際處理的是一個正確格式化日期字符串。 驗證正在檢查您獲得的日期是否實際上是您期待的日期。

+1

當你說你有一個你期待的約會時,你怎麼知道會發生什麼?你會在上面的BBC定義的旁邊,這表明驗證是重複輸入和交叉檢查他們的過程? – Nij 2011-04-16 06:38:42

相關問題