Отказ от ответственности: Я являюсь непрофессионалом, который в настоящее время учится программировать. Никогда не участвовал в проекте и не писал ничего более ~ 500 строк.Нарушает ли защитное программирование принцип DRY?
Мой вопрос: защитные программы нарушают принцип «Не повторяйте себя»? Предполагая, что мое определение защитного программирования правильное (если вызывающая функция проверяет ввод вместо противоположного), не будет ли это вредным для вашего кода?
Например, это плохо:
int foo(int bar)
{
if (bar != /*condition*/)
{
//code, assert, return, etc.
}
}
int main()
{
int input = 10;
foo(input); //doesn't the extra logic
foo(input); //and potentially extra calls
foo(input); //work against you?
}
по сравнению с этим:
int main()
{
if (input == /*condition*/)
{
foo(input);
foo(input);
foo(input);
}
}
Опять же, как неспециалист, я не знаю, сколько рассчитывать простые логические высказывания против вас, насколько поскольку производительность идет, но, безусловно, защитное программирование не подходит для программы или души.
Как это относится к C++? – xtofl
Извините, удалите этот тег, если хотите .. Я использовал это в примерах. – jkeys
Я написал это, когда учил себя в возрасте 15 лет. Возможно, сейчас я знаю меньше слов, но я написал более значительные программы. Два шага вперед, я полагаю ... – jkeys