Главная » Delphi » Совет 8 — об автоматизации

0

Основная цель, для которой изначально были созданы компьютеры — автоматизировать и ускорить те операции, которые человеку самому проводить сложно. Это никогда не следует упускать из виду. Описанные ранее программы, типа WinOnCD, выглядят глупо именно потому, что их разработчики об этом напрочь забыли. Давайте подумаем: ведь CD-ROM есть не что иное, как просто еще одна разновидность памяти. Формально он ничем не отличается от, к примеру, дискет. Разве вы видели программу записи на дискету, которая вынуждала бы создавать какие-то "project"? Обращение к дискете происходит совершенно прозрачно для пользователя, единственное, что ему требуется делать— следить за тем, чтобы она была отформатирована (что, если вдуматься, тоже лишнее, вполне можно было бы обойтись и без перекладывания этого действия на плечи пользователя). Программы записи на CD — типичные образчики программистского мышления.

Все, что может быть автоматизировано, должно быть автоматизировано, и неважно, рассчитана ли ваша программа на виртуоза-профессионала или на "ламера", привыкшего использовать компьютер исключительно как печатную машинку. Возьмем упомянутую ранее обработку исключений. Корректно составленная программа в случае обнаружения ошибки при каких-то действиях пользователя должна выводить сообщение об этом— но при действиях именно пользователя, а ни в коем случае не самой программы! Если ошибку можно безболезненно обойти, то это исключительно внутреннее дело программиста. Пользователя о таких ситуациях нужно информировать только, если от него требуется принятие какого-то решения, в противном случае он устанет нажимать на кнопку ОК, закрывая окна с совершенно бесполезной для него информацией.

Но и впадать в противоположную крайность, делая все действия программы полностью скрытыми от пользователя, тоже не стоит— помните, что решения, которые принимаете вы, мягко говоря, не всегда являются оптимальными, вы просто не можете предусмотреть всего. Поэтому настройки автоматизации нужно спрягать от "чайника", но сделать так, чтобы они были доступны квалифицированному пользователю по максимуму.

Заметки на полях

Вот пример: пользователи скажут вам большое спасибо, если вы не поленитесь сделать автозаполнение для полей какой-либо формы так, что их нужно только немного подправить. Это касается и диалогов и интернет-форм, и вообще любых действий, когда от пользователя требуется ввести с клавиатуры что-то конкретное. Например, если пользователю требуется ввести дату, то обязательно нужно, чтобы в соответствующем поле появлялся образец, иначе он будет долго гадать, что именно от него хотят: вводить ли дату, как "21.06.05", "21.06.2005", "06.21.05", "21/06/05", или, может быть, как "21 june 2005"? Но нет ничего печальнее опыта разработчиков Word, которые включали автозаполнение даты а тексте по умолчанию — само по себе это нужно крайне редко, а такая функция может создать кучу неприятностей. Представьте себе, что вы открыли созданное полгода назад служебное письмо и вдруг все даты а тексте автоматически поменялись на текущую. Неопытная секретарша может даже и не заметить этого, пока не получит выговор от шефа — это в лучшем случае.

Еще хуже выглядит "автоматизация" в стиле Excel, когда вы обнаружив вете, что вместо введенного вами числа 3005,97 в ячейке вдруг оказывается записано "30 мая 1997". Как говорится, это было бы смешно, если бы не было так грустно…

В общем, все рекомендации по этому поводу вполне укладываются в лозунг: "Сервис не должен быть навязчивым!".

Это не все, что мне бы хотелось отметить в качестве советов далеко не только начинающим программистам, но для начала достаточно. Ранее я замечал, что одно выполнение первых двух пунктов может значительно увеличить время вашей работы над программой, а если учесть все остальное, то можно прийти к выводу, что основное время будет потрачено на такие вещи, которые к собственно главной функциональности программы не относятся. Да, это так, и добавлять "к сожалению" я не считаю нужным. Потому что даже такая утилитарная вещь, как приготовление и употребление пищи, предполагает создание определенного комфорта, и хозяйке приходится тратить иногда гораздо больше времени на то, чтобы приготовить не как-нибудь, а вкусно, и еще красиво оформить стол, а потом помыть посуду и вычистить кухню. Все это— неотъемлемая часть процесса приготовления еды. И программирование тут ничем не отличается от любой другой области человеческой деятельности. Можно только помочь хозяйке, например, подарив ей посудомоечную машину — именно в роли подобного помощника и выступают современные среды визуального программирования.

Источник: Ревнч Ю. В.  Нестандартные приемы программирования на Delphi. — СПб.: БХВ-Петербург, 2005. — 560 е.: ил.

По теме:

  • Комментарии