Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.09.2010, 12:11   #1
Alexei91
Заблокирован
Форумчанин
 
Аватар для Alexei91
 
Регистрация: 30.12.2009
Сообщений: 544
Сообщение Грамотное юзабилити(интерфейс для пользователя)

Приветствую всех.
Между функциональностью приложения и юзабилити,что лучше выбрать?
Чем пожертвовать,так сказать? Где золотая середина?
Чем сложнее становится программа, тем сложнее у неё становится интерфейс. И т.п.
Понятно,что окна приложения нужно делать
по-возможности горизонтально вытянутыми, выбирать стандартные шрифты,
делать стандартное меню Файл,Правка,Справка и т.п.
Назначать стандартные акселераторы("горячие" клавиши) для действий.
Не увлекаться скинами...
Пожалуйста,поделитесь опытом,примерами удачной,на Ваш взгляд, реализации пользовательского интерфейса.
P.S.
Считаю,что лучше грамотное юзабилити,чем навороченная программа с
кучей функций,кот. никто особо не будет использовать.
Понятно,что это извечный вопрос,но всё же...
Темы для WordPress. Русские WordPress шаблоны
Alexei91 вне форума Ответить с цитированием
Старый 14.09.2010, 12:21   #2
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Одно другому не мешает.
Сейчас очень популярны и удобны приложения с рабочими пространствами, где в каждый момент времени интерфейс содержит только нужные элементы.
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 14.09.2010, 12:25   #3
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
По умолчанию

Alexei91
Цитата:
Чем сложнее становится программа, тем сложнее у неё становится интерфейс.
Это почему это? Архиватор, скажем, дико сложная программа, а из интерфейса у него может быть только пара десятков команд.

На мой взгляд программу и её интерфейс нужно делать по отдельности. И не смешивать абстракции программной логики с абстракциями графического интерфейса.
the_deer_one вне форума Ответить с цитированием
Старый 14.09.2010, 12:31   #4
Alexei91
Заблокирован
Форумчанин
 
Аватар для Alexei91
 
Регистрация: 30.12.2009
Сообщений: 544
По умолчанию

the_deer_one по поводу разделения интерфейса пользователя от программной логики полностью согласен. Но как фактически это реализовывать? Обьясните на пальцах,так сказать
Создавать отдельные DLL с важными процедурами и функциями, просто выносить
важные процедуры/функции в отдельные модули. А на OnClick,OnShow и т.п. просто
вызывать эти процедуры/функции с полученными параметрами...
Темы для WordPress. Русские WordPress шаблоны

Последний раз редактировалось Alexei91; 14.09.2010 в 12:34.
Alexei91 вне форума Ответить с цитированием
Старый 14.09.2010, 12:32   #5
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от Alexei91 Посмотреть сообщение
Между функциональностью приложения и юзабилити,что лучше выбрать?
Такого выбора быть не должно.
Если неудобно, но функционально, значит лишняя функциональность. А зачем нам лишняя функциональность, которая не используется?
Цитата:
Сообщение от Alexei91 Посмотреть сообщение
Чем пожертвовать,так сказать? Где золотая середина?
Ничем жертвовать не нужно.
Определяем варианты использования программы, продумываем как пользователь ей будет пользоваться, какие данные ему нужны,...
В итоге в определенных задачах и кошмарный грид с горизонтальной прокруткой может быть удобен.
Цитата:
Сообщение от Alexei91 Посмотреть сообщение
Чем сложнее становится программа, тем сложнее у неё становится интерфейс. И т.п.
Тем сложнее его спроектировать. Интерфейс не должен быть сложным вне зависимости от выполняемой задачи.
Цитата:
Сообщение от Alexei91 Посмотреть сообщение
Понятно,что окна приложения нужно делать
по-возможности горизонтально вытянутыми
Не факт. Зависит от задачи. Эмулятор телефона глупо вытягивать по горизонтали. Контакт-лист в аське тоже логичнее сделать высоким, нежели широким.
Цитата:
Сообщение от Alexei91 Посмотреть сообщение
делать стандартное меню Файл,Правка,Справка и т.п.
Меню далеко не везде нужно. Не везде есть понятие файл и работа с буфером обмена не везде подразумевается.
Цитата:
Сообщение от Alexei91 Посмотреть сообщение
Назначать стандартные акселераторы("горячие" клавиши) для действий.
Это да. Правило хорошего тона.

Цитата:
Сообщение от Alexei91 Посмотреть сообщение
the_deer_one по поводу разделения интерфейса пользователя от программной логики полностью согласен. Но как фактически это реализовывать? Обьясните на пальцах,так сказать
Создавать отдельные DLL с важными процедурами и функциями, просто выносить
важные процедуры/функции в отдельные модули. А на OnClick,OnShow и т.п. просто
вызывать эти процедуры/функции с полученными параметрами...
Почитайте про MVC, MVP, MVVM,... Если по такому принципу код разделить на слои, то в программе остаётся слой V, а остальные слои разбредаются по DLL. В случае с C#, например, в DLL можно вынести и классы. В С++ тоже с определенными оговорками классы выносятся, но это ближе к костылю будет относится. Не рекомендуется это. Хотя есть технология ActiveX для этого...

Последний раз редактировалось pu4koff; 14.09.2010 в 12:37.
pu4koff вне форума Ответить с цитированием
Старый 14.09.2010, 13:16   #6
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Хороший пример RJTextEdit. Автор Rickard Johansson написал сначала простенький редактор кода и обратился ко всем своим друзьям и пользователям - что они хотели бы добавить в этот редактор. В результате нескольких лет постоянного улучшения редактора на данный момент мы имеем наилучший профессиональный редактор кода для windows.
Виталий Желтяков вне форума Ответить с цитированием
Старый 14.09.2010, 13:33   #7
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

Цитата:
наилучший профессиональный редактор кода для windows
расскажи это пользователям vim/emacs. а то ребята не в курсе
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 14.09.2010, 14:26   #8
Alexei91
Заблокирован
Форумчанин
 
Аватар для Alexei91
 
Регистрация: 30.12.2009
Сообщений: 544
По умолчанию

pu4koff попробую найти что-нибудь про MVC, MVP, MVVM

Виталий Желтяков посмотрю что за RJ TextEd - до этого использовал Notepad++
Яндекс по запросу не 1 ссылки не дал, Google только.
RJ TextEd дом. изделие, глючный -Access Violation в rtl100.bpl выдал. Версия Portable.
ИМХО, Notepad++ проще и лучше,даже потому что более популярен.
Среднестатистический пользователь скачает подобную программу,посмотрит,а разбираться
со всеми особенностями не станет - удалит,поставит более простой
(пусть и менее функциональный) и более популярный аналог.

pproger vim консольный для Linux-систем,а RJ TextEd с графич. интерфейсом для Windows.

Про emacs не слышал - для MAC OS?
pproger найду VIM для windows и под Linux посмотрю,что за вещь.
pu4koff почитал о MVC суть на схемке примерно ясна -
дальше надо уже в коде применять,но это уже моя забота
Про паттерны где-то уже читал мельком (С++).

Жалко что + второй раз не могу прибавить,а так за полезные ссылки спасибо.
Темы для WordPress. Русские WordPress шаблоны

Последний раз редактировалось artemavd; 14.09.2010 в 18:18.
Alexei91 вне форума Ответить с цитированием
Старый 14.09.2010, 14:32   #9
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от Alexei91 Посмотреть сообщение
pu4koff попробую найти что-нибудь про MVC, MVP, MVVM
На RSDN есть пара статеек по теме. Для старта пойдёт. Правда там примеры на C#. Но главное тут - суть уловить, а она языко-независимая
http://rsdn.ru/article/patterns/ModelViewPresenter.xml
http://rsdn.ru/article/patterns/generic-mvc.xml
http://rsdn.ru/article/patterns/generic-mvc2.xml#EORAG
pu4koff вне форума Ответить с цитированием
Старый 14.09.2010, 14:44   #10
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Alexei91
Цитата:
pproger vim консольный для Linux-систем,а RJ TextEd с графич. интерфейсом для Windows.
тебя обманули. для вима минимум 3 гуевины - gtk, motif, nexTaw. под windows тоже есть окошечный

Цитата:
Про emacs не слышал - для MAC OS?
тоже кросплатформенный, как и вим
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Графический интерфейс для Python anyx Софт 2 09.12.2010 19:06
Интерфейс для программы на с++ siemdi C++ Builder 21 23.05.2010 01:17
Оконный интерфейс пользователя bagfinder Помощь студентам 1 18.06.2009 21:48
интерфейс пользователя в С++ Nadezhda Помощь студентам 0 08.04.2009 17:58