Інтерфейси

Jun 06, 2008 11:41

У фільмах і книгах про майбутнє часто показано, як людина спілкується з комп'ютером звичайною людською мовою - як з іншою людиною. Звичайно, у такого керування системою є свої "плюси" й "мінуси", але така концепція показує наше спрямування ну зручний інтерфейс користувача. Людині нецікаво, незручно, неприємно спілкуватись "машинною мовою". Сучасні технології, поки що, не дозволяють вести повноцінний діалог з електронікою, хоча дослідження у цьому напрямку ведуться.
Дивує мене інше. Ну нехай ми не можемо створити голосовий інтерфейс - тут є об'єктивні перешкоди. Але чому не використовується на "повну катушку" можливості звичайного - графічно-текстового інтерфейсу?
У епоху gettext та повальної локалізації досі зустрічаються перли: "Залишилось: 2 мегабайт" і подібні. Про це колись писав Лєбедєв (здається, у "Ководстві"), і тут я з ним згоден на 100%. Це ж дибілізм. Ще у школі, коли я починав навчатись програмуванню, були задачки такого плану: в залежності від чисельника поставити відповідну форму іменника.
Інша напасть - повідомлення про помилки. "Error: 0x123456" - це клінічний випадок. Це не лікується, можна одразу до моргу. Іноді просто: "Error connecting remote host" - теж достатньо тупо. Повідомлення про помилки мають бути як мінімум двох типів: для користувача та для розробника. Це те, чим хворіє більшість софту, розробленого для ОС Windows - відсутність нормального журналу роботи. У книзі "Філософія UNIX" у першому розділі є дуже класна фраза. Перекладається приблизно так: "Якщо програмі немає чого сказати - нехай вона мовчить. Якщо програма завершується аварійно - треба створити як мога більше шуму й гуркоту". Так, SIGSEGV - наше все :) Але цей "шум і гуркіт" - це для розробника. Користувачу треба лише повідомити, що сталось. Погана форма: "Помилка з'єднання з віддаленим сервером". Хороша форма: "Не можу з'єднатись з віддаленим сервером - він не відповідає на запити". Це для користувача. Для кваліфікованого інженера у лог має бути записано щось таке: "[2008/06/06 13:58:25] ftp.cpp (1213): Error on connect: 'Connection refused'". А перед цим мають бути записані всі параметри ініційованого з'єднання: адреса, порт...
Одним словом, коли працюєш з якою-сь системою - треба створити ілюзію, що тобі відповідає людина. Звичайна людина - з плоті й крові. Без шаблонних фраз: "Створення бази даних композицій". Але в той-же час не треба створювати перепони спеціалістам: "Ошибка тестирования домена". Завжди має бути 2 рівня доступу до інформації - звичайний і спеціальний.

PS: на мене звалилась чортова уйма роботи, тому я майже не пишу і не відповідаю. Зараз видалась хвилинка, поки mastername перевіряє домени.

інтерфейси, робота, філософія, програмування

Previous post Next post
Up