Что является примером пользовательского интерфейса на основе задач?

Моей команде было "поручено" создать приложение, соответствующее интерфейсу на основе задач (необязательно с CQRS). Мне действительно нравится пользовательский интерфейс, который помогает пользователю легко выполнять общие задачи, но многие части этого приложения действительно (на мой взгляд) похожи на работу для типичного интерфейса CRUD (например, все детали для продукта в каталоге).

На данный момент нам нужны примеры хороших интерфейсов на основе задач, чтобы помочь нам увидеть, что возможно. Что вы видели в паутинах?

4 ответа

Решение

Я думаю, что это будет квалифицироваться как интерфейс на основе задач. Панель управления Windows

Самый простой способ создать пользовательский интерфейс на основе задач - это защитить все атрибуты / свойства ваших моделей. т.е. удалить все сеттеры.

Из этого (псевдокод):

public class TodoTask
{
    public Date getDateAssigned();
    public void setDateAssigned(Date);
    public string getAssignedTo();
    public void setAssignedTo(string);
}

к этому:

public class TodoTask
{
    public Date getDateAssigned();
    public string getAssignedTo();

    public void AssignTo(string userId);
}

Вы не можете больше создавать базовое приложение CRUD. Вы должны выполнить задачу (Assign()) обновить модель.

Начните с удаления всех сеттеров, а затем проанализируйте, какие действия (задачи) вы должны выполнять на каждой модели.

Тогда все готово.

Я написал об этом в блоге: http://blog.gauffin.org/2012/06/protect-your-data/ (прокрутите вниз, чтобы увидеть макеты для CRUD и на основе задач)

CRUD интерфейсы

Интерфейсы CRUD имеют кнопку "Сохранить" при редактировании, и вы упускаете "причину", по которой что-то меняется.

Например, изменение адреса клиента с "Fountain St. 55" на "Birds St. 444" имеет ту же семантику, что и изменение его с "Fountain St. 55" на "Fountain St. 555". Просто "обновили" улицу.

Интерфейсы на основе задач

В интерфейсах на основе задач есть "кнопки действий", которые "что-то значат" для бизнеса.

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

А затем у вас может быть другое действие, например "Переместить клиента на новый адрес", что означает, что клиент фактически переехал в новое место, и изменение адреса несет в себе все это значение.

Итак... короче

В CRUD UIs => вы "редактируете данные".

В интерфейсе на основе задач => вы "сигнализируете о том, что дела произошли".

Вывод

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

Но вы получаете огромное преимущество: знаете, "почему" вещи видоизменяются. Другими словами... зафиксируйте намерение пользователя.

Microsoft Money 2000 был примером от Microsoft (хотя они называют его Индуктивным пользовательским интерфейсом. Вот основные рекомендации и несколько скриншотов по пути: Руководства Microsoft для индуктивного пользовательского интерфейса

Думаю, я не думаю, что пользовательский интерфейс выглядит как основанный на задачах или CRUD (хотя пример Дмитрия демонстрирует, что он основан на задачах - множество команд). Я вижу ориентированный на задачи пользовательский интерфейс с точки зрения того, как он взаимодействует с базовой областью и моделью данных. Если ваше взаимодействие представляет собой не что иное, как типичное готовое MVC-приложение с методами действий для Get/List/Insert/Update/Delete, то вы создаете базовое CRUD-приложение. Но если вы откажетесь от этих методов действий по умолчанию и создадите действия / команды, которые имеют смысл для приложения (например, добавление товара в корзину, деактивация класса и т. Д.), То это станет более полезным в мире пользовательского интерфейса на основе задач.

Я думаю, что это довольно серая грань между ними.

Что касается примера, я знаю, что сайт, на котором я работаю (braincredits.com), является моей попыткой создания пользовательского интерфейса на основе задач. Это определенно работа в процессе, и я вносю изменения в нее, чтобы постоянно улучшать ее, но реализация основана на командах (например, запись в стенограмму, добавление урока, просмотр стенограммы и т. Д.), И в некоторых его частях используется шаблон CQRS.,

Надеюсь, это поможет! Удачи!

Другие вопросы по тегам