Когда неожиданная функциональность ошибка или просто плохой дизайн - PullRequest
1 голос
/ 29 ноября 2010

Бывают случаи, когда программист явно делает осознанный выбор в своей структуре кода, что приводит к поведению, которое (в лучшем случае) неинтуитивно, но технически не является ошибкой в ​​том, что оно не работает.Должно ли это быть классифицировано как ошибка и исправлено?

Например, хорошо известная система электронной коммерции с открытым исходным кодом (если вы посмотрите мою историю ответов, вы поймете, какая из них!) Предоставляет функциональные возможности для увеличения количества, где администратор может указать несколько единиц, которыедолжны быть добавлены в корзину (например, должно быть 5, 10, 15, 20 и т. д.).Код написан так, что эти ограничения применяются только тогда, когда система находится в режиме «Управление запасами» (т. Е. Уровни запасов уменьшаются с каждым заказом).Теперь вполне допустима ситуация, когда владелец магазина может продавать свой продукт с определенными приращениями, но не управлять уровнем запасов.Код игнорирует конфигурацию в режиме без вывода сообщений (без обратной связи с администратором), и нет документации о необходимости включения функции управления запасами.

Это ошибка?Или просто плохой дизайн / документация.

Обратите внимание, я уверен, что некоторые читатели воспримут этот вопрос как субъективный, но я думаю, что между ошибками и плохим дизайном есть существенное различие.Это особенно актуально в проектах с открытым исходным кодом, где отчеты об ошибках, как правило, работают в разных процессах, чем внутренние системы компании.

Ответы [ 2 ]

2 голосов
/ 29 ноября 2010

Ошибка означает поведение, отличное от того, что имел в виду программист, в то время как плохой дизайн означает, что поведение, намеченное программистом, является чем-то иным, чем пользователь может разумно ожидать.

1 голос
/ 29 ноября 2010

Существует ли спецификация, которая определяет, является ли тот или иной путь правильным?Если есть спецификация, то это ошибка.

Если нет спецификации, то, возможно, это плохая документация.

Могут ли возникать ошибки, когда код игнорирует конфигурацию молча?Тогда это ошибка.

...