1. О модальности.Модальность в общем случае – зло. Но возможны исключения. Если одно модальное окно вызывает второе модальное окно – это зло без исключений.
Если пользователю что-то нужно, то лучше дать ему это в том окне, в котором он в данный момент работает.
А конкретные рекомендации стоит давать только для конкретных задач.
2. О размерах окон.Если окно состоит из чекбоксов, статического текста и т. п. – то пусть оно будет фиксированным. Если его растягивать, то появится куча некрасивого пустого места.
Если окно содержит поля МЕМО, гриды, TreeView и тому подобные вещи, или получает данные от пользователя – вот его лучше не фиксировать.
3. О диалоге с пользователем.Диалога быть не должно. Пользователь должен вести монолог. А программа должна выполнять. И что-то предлагать, только когда пользователь сам попросит. А еще программа должна уметь предвидеть действия пользователя.
Например, рассмотрим Excel. Я ввожу формулу длинной 300 - 400 знаков с кучей скобок и функций. Жму Enter. Excel выдает сообщение: формула неправильная, напишите лучше так – и далее следует вариант от Excel. И три кнопки – принять предложенную формулу, отредактировать свою и посмотреть справку. Вопрос на засыпку: сколько здесь ошибок? Ой, много…
Excel может в любой момент проверить формулу и перепроверять после ввода каждого символа. Зачем тогда окно?
Excel не даст мне сохранить неправильную формулу. Т. е. отложить «на потом» написание сложной формулы я не могу. Можно, конечно, апостроф в начале строки поставить, и тогда Excel перестанет считать этот текст формулой, - но кто ж про эту возможность знает? Никто не знает, и она не очевидна.
Excel предлагает мне свой вариант, но при этом я должен сам определить, чем он отличается от моего варианта. А как? Никакой возможности для этого нет, кроме как глазами прочитать 300 – 400 значков и сравнить…
Итого, как выглядел бы Excel моей мечты: во время ввода формулы рядом отсвечивали бы три кнопки (там, где сейчас галочка и крестик): те же галочка и крестик, что и сейчас, и еще вопросик – вызов справки (мне она нафиг не сдалась, но вдруг кому поможет). Крестик отменяет ввод, галочка сохраняет формулу (даже неправильную!), у неправильной формулы не вычисляется значение, галочка имеет зеленый цвет при правильной формуле и красный при неправильной, а если уж совсем сильно хочется подсказать пользователю, где в формуле пропущена скобка – выделять ее так, чтобы у пользователя на ее поиск ушло не больше 2 секунд.
Все это справедливо для Excel 2003, а 2007-м я пока не пользовался. Но что-то сомневаюсь, что стало лучше.
Хотя, говорят, в Microsoft потратили на исследования юзабилити 3 миллиарда баксов. Врут, наверно, я бы за 3 миллиарда придумал что-нибудь покруче. Ну то есть уже придумал, см. выше
Миллиарды можно заносить прямо ко мне домой...
4. Как сделать красиво?Надо самому пользоваться своей программой. Выслушивать критику от других. Работая с другими программами, подходить к ним с позиции презумпции собственной невиновности и придираться, придираться, придираться… Ну и самому так не делать.
Никогда не делать так, как делают разработчики Open Office. Они тупо передирают функциональность Excel. Причем с теми же самыми ошибками, плюс своих добавляют.
Я стараюсь применять эти правила с теми или иными оговорками. Пока вроде неплохо получается.