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

StackOverflow https://stackoverflow.com/questions/4300074

  •  29-09-2019
  •  | 
  •  

Вопрос

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

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

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

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

Это было полезно?

Решение

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top