Најдобри практики за валидација на параметарот

Замислете дека имате апликација која е некаков front-end до целата ваша деловна логика. Овој преден дел има многу DLL од кои зависи и методите во тие DLL може да се повикуваат едни со други по едно извршување на даден метод во предниот дел. Ако корисниците на вашата апликација не пристапуваат директно до тие DLL, треба да ...

1) Ризикувајте погодок (мал) перформанс и потврдете ги параметрите во секој од тие методи, дури и ако на крајот можете да ги потврдите истите параметри на некои 5 пати; или

2) Ризикувајте неочекувано однесување и претпоставувајте дека, додека ги потврдувате влезните параметри, сите други можни параметри пренесени од и од вашиот внатрешен код се валидни (на пример, ниту ништовни, ниту празни)?

Измени: Само да дадам пример, да претпоставиме дека имате Regex RegexA и методот

internal bool Matches(string expression)
{
    return RegexA.IsMatch(expression);
}

IsMatch ќе фрли исклучок на нулта параметар, но не и на празната низа. Ако претходно знаете дека празната низа никогаш нема да одговара на таа Regex, дали треба да користите ако (String.IsNullOrEmpty (израз)) претходно, дури и знаејќи дека може да се потврди за ништовност во ] IsMatch рамковен метод? Во овој случај, вие јасно повторувате валидација, но дали е подобро да ја повторите или да ризикувате?

11
задан User 28 June 2011 в 16:57
поделиться