09 июня 2010

Проверяйте интервалы

   Недавно, когда я платил за электричество через инфокиоск Беларусбанка, я ошибочно ввел текущие показания счетчика на 100 единиц меньше, чем было оплачено в прошлый раз.
   Результат поразительный – я чуть не оказался должен оплатить 5 760$ за 99 900 киловатт!
   Спрашивается: где "защита от дурака"? Господа программисты, помните, что надпись "ПРОВЕРЯЙТЕ ПРАВИЛЬНОСТЬ ИНФОРМАЦИИ" ни к чему не обязывает пользователя, даже если вы её напишите большими жирными буквами! Лишняя, на первый взгляд, простенькая проверка введенной информации окажется совсем не лишней и спасет вас от подобного казуса.

9 комментариев:

  1. Анонимный09 июня, 2010 11:18

    Вы показали пример правильной программы!
    А вот если бы вам написали, что вы должны "-125" - вот тогда бы была ошибка :)

    ОтветитьУдалить
  2. В принципе я тоже согласен что все правильно!.

    ОтветитьУдалить
  3. Анонимный09 июня, 2010 12:24

    Все абсолютно корректно, автор не подумал о том, что счетчик иногда переходит через 0 и начинает считать заново. Вот именно эту ситуацию и рассмотрела программа. Никаких ошибок нет.

    ОтветитьУдалить
  4. Анонимный09 июня, 2010 12:37

    А я согласна с автором. Где 0, а где 9200? Лично мне, 99900 киловат и за 25 лет не использовать, а не то что за месяц :) Пользователь - это создание не разумное, и лишняя проверка данных после ручного ввода ни когда не повредит.

    ОтветитьУдалить
  5. Давайте прикинем Счетчик образно говоря 4-значный

    У вас оплачено по 9900
    за месяц еще 300 набежало.
    Итого 0200

    Ну и в чем проблема???

    ОтветитьУдалить
  6. Я знаю про переход через ноль. Поэтому и не писал, что проверка должна быть: новое больше старого. Проверка интервалов может быть более интеллектуальная.
    Вообще то, программа должна выдавать предупреждения, если данные подозрительные (если явно распознать ошибку нельзя). В данном случае потребление превысило среднемесячное в 200-250 раз.
    Программы должны быть более умными, а программисты должны быть менее ленивыми, что бы учитывать подобные ситуации и предупреждать пользователя, что он возможно ошибся. Ведь компилятор программистам тоже не только про ошибки пишет, он еще предлагает взглянуть на warning'и и hint'ы ;)

    ОтветитьУдалить
  7. Не в принципе я согласен, тоже ни раз так попадал, но к счастью (или сожалению) по 17*10^ у меня на карточки никогда не было =)))

    ОтветитьУдалить
  8. Кашак прав. Вероятность того, что действительно будет потрачено 99 900 киловатт за месяц, файтически равна нулю.
    Программистам действительно стоит задуматься о таких случаях, и предлагать пользователям дополнительное подтверждение правильности введённой информации.

    ОтветитьУдалить
  9. У меня тоже 17 лямов на карточке нет. Но вдруг, если бы я не заметил такую сумму, добрый банк дал бы мне кредит под оплату электроэнергии? ;)

    ОтветитьУдалить