Свяжитесь со мной для обратной связи или вопросов! Я отвечаю всем.

Принципы плохого дизайна ПО

- Введение -
- Выскакивающие штуки -
- Нет оффлайн помощи -
- Отсутствие настраиваемых сочетаний клавиш -
- Переполненные или пустые меню -
- Зависимость базовой функциональности от расширений -
- Долгий путь к юзабилити -
- Притворяется что знает, чего я хочу, лучше меня -
- Лишние функции -

Введение

Мы сталкиваемся с ними каждый день, но научились игнорировать или терпеть их - и все же они продолжают выскакивать как кроты, претендуя на звание нашего любимого ПО. Иногда мы не знаем как точно описать недостатки - просто интуитивно понимаем что здесь что-то не так. В этой статье я постараюсь более методично указать на многочисленные неудачные дизайнерские решения, популярные нарушения, а также программы которым удалось их избежать.

Выскакивающие штуки

Моя самая ненавистная проблема дизайна, и вероятно самая распространенная. Вот вы пытаетесь работать... и тут - бум! Диалоговое окно, оверлей, уведомление - называйте это как угодно - оно крадет ваше внимание, мешает сосредоточиться и приводит вас в бешенство. Популярный пример - Mozilla Firefox (будет моей любимой мишенью здесь ^_^). Конечно, он "приветствует" вас с помощью Firefox отправляет некоторые данные, когда вы открываете новую вкладку, но мы не будем обращать на это внимания. Что происходит когда вы пытаетесь ввести что-то в адресную строку?

Показывается вот это. Конечно, мы можем увидеть манипуляцию в улучшении вашего опыта, но здесь дело не в этом. Все это должно быть в настройках, и по умолчанию должно быть ВЫКЛЮЧЕНО. Ведь для этого и существуют меню настроек, верно? Я не хочу чтобы меня беспокоили во время поиска - просто дайте мне искать! А как насчет того, когда вы закрываете браузер с несколькими открытыми вкладками?



Не нужно объяснять... Я нажал на кнопку X, конечно я хочу закрыть эти чертовы вкладки. О чем думали ребята которые придумали это? Что люди не знают, что делает кнопка X ? Не смешите меня - все, от 3 до 103 лет в наши дни пользуются компьютером. Или может быть вы должны убедиться что несмотря на прокрутку до кнопки X они действительно хотели закрыть этот чертов браузер - тем самым относясь ко всем как к золотым рыбкам или умственно отсталым? Это, опять же, может быть перенесено в меню настроек - и по умолчанию НЕ ДОЛЖНО БЕСПОКОИТЬ МЕНЯ.

Другой, еще более худший пример - Chromium. При любом неправильном закрытии после запуска отображается следующее:

И это дерьмо будет оставаться там и занимать место, пока вы не закроете его или не решите восстановить страницы. Неужели они действительно не могли бы просто сделать маленькую кнопку (прямо например, там где находятся расширения - тогда все заметят), которая восстанавливала бы сайты, если кто-то захочет? Прямо сейчас это занимает 1/4 экрана по горизонтали, пока вы не отреагируете на нее. Могло ли быть более ужасное дизайнерское решение?

Вы думаете, что нишевые браузеры придумали более умный способ, но ничего подобного. Otter Browser, например, выбрасывает целое отдельное окно:

Которое позволяет вам выбрать как начать свою сессию. И вы ничего не сможете сделать, пока не разберетесь с этим.

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

Так какие же программы делают это правильно? Ну, медиаплееры, просмотрщики PDF - просто потому, что там нет ничего что могло бы вас беспокоить. NetSurf браузер ничего не показал, когда я неправильно закрыл его и просто отобразил начальную страницу - правильное поведение - хотя в нем также должна быть опция, позволяющая восстановить вкладки (которая конечно не мешает). Золотой стандарт - иметь функциональность которая не раздражает.

Нет оффлайн помощи

Почему вы полагаете что у всех есть подключение к Интернету в любое время? Люди могут взять с собой ноутбук в место, где нет WiFi. Или их интернет-провайдер может просто не работать некоторое время. Или отключилось электричество, и они работают от батареи. Или они переехали, а в новом доме еще нет интернета. Независимо от причин, помощь все равно должна быть доступна в автономном режиме; если нет смысла подключаться к интернету - может быть не подключайтесь. Проще упомянуть ПО, которое не нарушает этот принцип - SpaceFM, Claws Mail и Geany - это все, что я нашел на данный момент.

Отсутствие настраиваемых сочетаний клавиш

Это должно быть непростительно в современную эпоху, и тем не менее, это не удается подавляющему большинству ПО. У вас могут быть некоторые основные сочетания клавиш, установленные по умолчанию (только для некоторых действий - тех, которые нужны по мнению разработчиков, остальные могут идти к черту), но вы не можете их изменить - или, что еще хуже, вам даже не говорят что это такое (Firefox и Chrome являются примерами последнего). Почему мы должны быть во власти разработчиков ? Мы должны иметь возможность управлять софтом так как мы хотим. Geany имеет отличный раздел Keybindings в настройках, почему другие не могут последовать его примеру? SpaceFM делает даже лучше - вы можете установить шорткат для каждого элемента на который можно нажать. Это золотой стандарт - но пока мы можем довольствоваться меню Keybindings в стиле Geany.

Файл, Просмотр, Редактирование, Инструменты, Помощь... звучит знакомо? Очевидно, нет, для некоторых "современных" программ, которые решили что могут сделать лучше. Как обычно, и Chrome, и Firefox являются главными нарушителями. Меню Chrome состоит из одной кнопки которая содержит настройки, которые, по мнению разработчиков, являются наиболее важными, в то время как всё остальное идет в отдельное меню Настройки где всё снова скомпоновано вместе. В Firefox всё еще хуже - меню состоит из нескольких больших кнопок.

Вырезание, сохранение, масштабирование - которые традиционно находятся в отдельном меню - вместо этого смешаны вместе.

Конечно, чтобы добиться этого, обоим браузерам пришлось максимально сократить количество доступных настроек (см. картинку выше) - остальное сбрасывается в about:config или в бездну. Для небраузерного примера - GNOME 3 также, очевидно страдает от этой проблемы (что породило MATE) - но я не много знаю об этом. Что не так с традиционным интерфейсом "метафора рабочего стола" ? Вот о чем разработчикам стоит подумать, прежде чем придумывать свои "улучшения". К счастью, подавляющее большинство программного обеспечения все еще имеет вменяемый пользовательский интерфейс.

Зависимость базовой функциональности от расширений

Когда вы устанавливаете программу, вы ожидаете что некоторые вещи будут присутствовать в ней по умолчанию - но в последнее время многие разработчики стали отказываться от этой модели. Конечно, наши "любимцы" Chrome и Firefox возглавляют стаю - с каждой новой версией всё больше и больше вещей удаляется, и вы вынуждены бродить по их, по общему признанию, огромным магазинам расширений, чтобы добавить их обратно. Так много, что первое, что должен сделать каждый после установки браузера, это добавление к нему кучи расширений. Блокировщики контента, редакторы стилей, назначители клавиш, переключатели прокси... все то, что должно быть там по умолчанию. Это действительно то направление в котором мы хотим двигаться? Это не означает, что расширения вообще плохи - но они должны расширять программное обеспечение, а не заменять его. Кто делает это правильно? SpaceFM например - все основное (и даже больше!), что вы ожидаете от файлового менеджера есть, и любой может предоставить и поделиться плагином с кастомной командой. SpaceFM снова сорвал джекпот - почему другие не могут последовать за ним?

Длинный путь к юзабилити

Вы запускаете программу и ожидаете, что сможете сразу же приступить к работе. Но не все из них позволяют это сделать. На самом деле, для некоторых из них существует довольно долгий путь, прежде чем вы сможете ее использовать, и это не всегда очевидно. Давайте посмотрим, что появляется когда мы запускаем GNU Image Manipulation Program:

Очень много ничего.

Хорошо, давайте создадим новый файл. Отлично! Теперь начнем рисовать... подождите, где моя кисть? Конечно, она спряталась в разделе "Инструменты". Подождите, я сделал ошибку - надо ее стереть! Так давайте найдем ластик... вот он. Теперь снова кисточка... к черту, это же так неудобно. Почему я не могу отобразить все инструменты на боковой панели? О, подождите... Windows > New Toolbox позволяет это сделать, но почему ее не было там по умолчанию? И как я мог узнать, что она находится в Windows, а не в Tools? Это так неинтуитивно. Ладно, давайте нарисуем что-нибудь карандашом и наш рисунок закончен. Хм, это довольно большой размер для карандаша... я хочу уменьшить размер. Конечно, опция для этого должна была появиться, как только я выберу карандаш... но её там нет. Где она прячется? В Windows > Dockable Dialogs > Tool Options. Попробуйте угадать это! Inkscape делает это правильно - в чем же оправдание GIMP ? Я сосредоточился на нем здесь, но это может относиться к любому ПО - даже к дистрибутивам Linux, которые требуют установки слишком большого количества дополнительных пакетов чтобы быть пригодными к использованию. Или медиаплеер, которому нужно возиться с кодеками и т.д.

Притворяется что знает, чего я хочу, лучше меня

Недавно моя система Linux выдала ошибку о файле .Xclients, так что я естественно пошел в DuckDuckGo, чтобы проверить в чем дело. И что же я увидел? Включая результаты для .clients. Отвали - я набрал .Xclients, потому что это было точно то что я хотел искать! Проверка орфографии - еще одна "функция", которая подходит под эту категорию - если я что-то неправильно написал, то это на моей совести - я всегда могу обратиться к словарю, если я не уверен. Чего я не хочу, так это назойливого зачеркивания - или, что еще хуже, автоматической модификации - которая, по иронии судьбы, часто оказывается неправильной (много ужасных историй о том, как смысл сообщений на форуме был полностью изменен благодаря проверке орфографии). Возможно, эти вещи не были бы так страшны, если бы они не были по умолчанию - но, к сожалению, обычно они таковы.

Лишние функции

Давайте сыграем в игру! Угадайте, какова основная цель этой программы? Это E-mail клиент! Но можно ли так говорить, если к нему добавлены все остальные "функции"? Я предлагаю называть его мерзостью. В любом случае, есть несколько причин, по которым программа не должна пытаться делать более чем одну работу - это загромождает пользовательский интерфейс, увеличивает время загрузки, повышает вероятность ошибок и проблем с безопасностью, а также просто запутывает и отвлекает пользователей. Эффективность также снижается, когда ваш почтовый клиент пытается выполнять работу программы чата, поскольку он не будет делать это так же хорошо, и вам в любом случае понадобится соответствующая программа. Но что, возможно, более важно, у нас уже есть лучший способ делать то, что делают эти мерзости - он называется оконный менеджер. Да, это та штука, которая позволяет вам запускать любую программу и переключаться между ними по желанию. Нужно отредактировать текст? Запустите Leafpad. Набрать несколько команд? Нажмите на значок xterm. Отправить мгновенное сообщение? Pidgin вам в помощь. Размещать в программе более одного типа функциональности - это бесполезное дублирование работы оконного менеджера. Это все равно что бросать еду, одежду и электронику в один контейнер, вместо того чтобы аккуратно разделить их. Это не имеет ничего общего с недавней ошибочной тенденции "минимализма" - когда вы намеренно заставляете свою программу делать как можно меньше. Наличие функций - это прекрасно, если только они все они относятся к поставленной задаче - так, почтовый клиент может иметь все функциональные возможности, необходимые для обработки почты, но должен избегать вторгаться на территорию веб-браузеров или чат-программ, как это делает Thunderbird. Другие примеры программ, страдающих от этой проблемы: systemd, SeaMonkey, FrostWire / Tixati, VLC (видео и музыка должны быть разделены!), и многие другие.

Вернуться на главную страницу

Translated by nullpointer