Я начал использовать контракты кода и обнаружил, что это затрудняет немедленное выявление «внутренностей» метода.
Возьмем этот (очень простой) пример:
public static void UserAddNew(string domain, string username, string displayName)
{
Contract.Assert(!string.IsNullOrWhiteSpace(domain));
Contract.Assert(!string.IsNullOrWhiteSpace(username));
Contract.Assert(!string.IsNullOrWhiteSpace(displayName));
LinqDal.User.UserAddNew(domain, username, displayName);
}
Теперь у меня возникает соблазн поместить контракты в какой-то регион, чтобы их можно было спрятать, но тогда меня беспокоит, что я теряю хорошее преимущество возможности взгляните на метод и посмотрите, чего он ожидает.
Что вы делаете, чтобы ваши контракты были «чистыми»? Или я просто слишком разборчив?