Пятиминутка ненависти
vitus_wagner — 19.02.2010 Пошел сегодня брать деньги в банкомат, а они там кончились. Ну не совсем, а осталось явно меньше, чем я обычно беру.Жму кнопку на которой написана фиксированная сумма, оно шуршит а потом выдает текст на весь экран
"По техническим причинам банкомат не может выдать вам денег. Возможные причины:
1. Вы набрали сумму не кратную минимальному размеру купюры.
2. Вы набрали сумму превосходящую лимит данного банкомата
3. Вы запросили денег больше, чем у вас есть на счету.
По-моему, авторы этого софта явно вдохновлялись примером Internet Explorer, который в случае любых ошибок выдает одно и то же сообщение, а при нажатии на ссылку "Подробнее" вываливает пару страниц из тьюторила по TCP/IP для MSCE (всегда одних и тех же) и ничего ни про то, что реально произошло, ни про то, как проблему на самом деле диагностировать.
В данном случае обрабочику ошибок должно быть заведомо известно, что клиент банкомата не набирал сумму руками, а выбрал предложенную из меню. Соответственно, первые две причины заведомо нерелевантны, потому что если в меню предлагается сумма, удовлетворяющая одному из первых двух условий, это не runtime error, это design assertion.
Я уж не говорю о том, что в грамотно придуманном интерфейсе просто не будет возможности выбрать из меню такую сумму, которую банкомат прямо сейчас не сможет выдать.
И не придется решать задачу методом перебора вариантов - ты набираешь сумму, тебе вываливают сообщение и выплевывают карточку, ты втыкаешь ее обратно, заново вводишь PIN, выбираешь меньшую сумму, и так далее...