Редактирование в сетках по сравнению с формами детали - насколько умный конечные пользователи?

Я думаю, вы могли бы использовать Map для построения списка результатов. Для создания третьего списка требуется O (n) дополнительного пространства и O (n) времени.

public static List<Fruit> buildFinalList(List<Fruit> firstList, List<Fruit> secondList) {
    Map<String, Fruit> map = secondList.stream().collect(Collectors.toMap(Fruit::getId, Function.identity()));

    List<Fruit> finalList = firstList.stream()
                                     .filter(fruit -> map.containsKey(fruit.getId()))
                                     .map(fruit -> map.get(fruit.getId()))
                                     .collect(Collectors.toList());
    firstList.stream()
             .filter(fruit -> !map.containsKey(fruit.getId()))
             .forEach(finalList::add);

    return finalList;
}

Выход:

Fruit{id='2', name='f2', isChecked=true}
Fruit{id='5', name='f5', isChecked=true}
Fruit{id='1', name='f1', isChecked=false}
Fruit{id='3', name='f3', isChecked=false}
Fruit{id='4', name='f4', isChecked=false}
7
задан aSkywalker 19 November 2008 в 03:58
поделиться

6 ответов

Это - главным образом вопрос вкуса, но мое предпочтение соответствует Вашему разработчику (и ответ Corey, выше.) Я очень предпочитаю образцовое только для чтения / редактирование, образцовое по большой доступной для редактирования сетке для большинства приложений. Но я работаю много в Excel, и он уничтожил бы меня для открытия строки за один раз. Различные цели! Если бы Вы, прежде всего, собираетесь быть выполнением большого объема редактирования произвольного доступа, я придерживался бы сетки. Для всего остального (включая последовательную запись) я использовал бы модель только для чтения с разъединительной формой. Различные приложения я продолжил работать, показали, что пользователи могут иметь дело с любым в соответствующем контексте.

7
ответ дан 6 December 2019 в 08:46
поделиться

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

Что в порядке? Зависит.

Если данные в каждой ячейке в сетке могут быть проверены w/o ссылка на другие ячейки и особенно другие строки, то, возможно, это в порядке. Но если законность одной ячейки зависит от значения в другой ячейке, то проверка, инициированная фокусом уничтожения, может быть хитрой. Ваш пользователь может закончить в ситуации, куда они должны поместить ЧТО-ТО в ячейку только, чтобы смочь оставить ту ячейку и перейти к реальной ячейке, которая вызывает проблему.

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

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

Я действительно соглашаюсь, что пользователь с опытом Excel является удобным редактированием в сетках, но затем Вы лучше удостоверяетесь, что Ваши сетки также ведутся себя как сетки Excel.

5
ответ дан 6 December 2019 в 08:46
поделиться

Пользователи могут полностью обработать сетки. Это более интуитивно, чем кнопка редактирования и форма детали.

Однако действительно ли это приложение является многопользовательским приложением? Базовые данные могли быть изменены больше чем одним пользователем за один раз? Если так, затем у Вас есть некоторые проектные решения параллелизма сделать, и иногда, который может быть легче решить, когда пользователи могут только отредактировать одну строку за один раз.

Это пахнет немного подозрительным, хотя, и я подозреваю, что Ваш программист делает удобные оправдания, потому что для него легче разработать сетки только для чтения в ведущем устройстве / шаблон детали.

Придерживайтесь своего инстинкта пищеварительного тракта.:)

3
ответ дан 6 December 2019 в 08:46
поделиться

Если Вы не доверяете своему ведущему разработчику полностью, они не должны быть Вашим ведущим разработчиком.

В стороне: Если у Вашего ведущего разработчика есть градус в Информатике (или другой подобный градус), не называйте их "программистом". Это отрицательно профессиональному инженеру.

Если Вы переопределите их решение, то они не будут чувствовать любви по меньшей мере. Будьте очень осторожны относительно продвижения на пальцы ног Ваших разработчиков программного обеспечения. Только сделайте так, если Вы на 100% уверены, что они делают ошибку. Даже затем Вы могли бы приблизиться к проблеме способом, которая заставляет их понять, что это - ошибка без Вас на самом деле переопределение одного из их решений. Помогите им принять лучшее решение путем выяснения у них, как они решили бы особый случай, по поводу которого Вы волнуетесь. Если они не волнуются по поводу того же случая, позвольте ему пойти. Вот почему они - ведущий разработчик. Пока они умны и понимают Ваше беспокойство, это является лучшим, можно сделать, пока Вы нанимаете правильных людей. Ущерб, который Вы могли причинить своим отношениям и их производительности путем переопределения решения ведущего разработчика, мог быть намного хуже, чем доступное для редактирования по сравнению с недоступным для редактирования представлением сетки.

1
ответ дан 6 December 2019 в 08:46
поделиться

Редактирование на месте на сетке каждый раз, когда возможный и никогда не имеют диалоговое окно редактирования. Я не могу думать ни о каком преимуществе для наличия “режима редактирования”, и оно тратит впустую время пользователей и добавляет сложность к приложению (с точки зрения пользователя). Наличие диалогового окна редактирования мешает изучать приложение, чем редактирование на месте, потому что пользователь должен изучить два окна и как перейти между ними.

Как опыт с Excel, Доступ и другие настольные приложения показывают, у пользователей нет проблемы при редактировании сетки больше, чем редактирование чего-либо еще. У Вас не должно быть проблемы, особенно если заставляют Вашу сетку быть похожей на рабочий лист Excel, или таблица Access или форма, и не как Ваше типичное “Щелкают здесь для обновления” веб-приложения.

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

Что касается проверки, сообщите пользователю любой ошибки проверки, когда фокус оставляет ячейку, но не используйте модальные ошибочные признаки (отмечающий поле с цветом, один способ сделать это, но не на единственном пути). Позвольте пользователю исправить его каждый раз, когда каждый хочет, возможно, путем фиксации других полей. Это решает зависимую проблему проверки.

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

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

BTW, много объяснительного текста в окне (например, длинные маркировки и несколько сообщений) являются признаком проблемы удобства использования, не решением.

4
ответ дан 6 December 2019 в 08:46
поделиться

Почему Вы не делаете некоторого пользователя, тестирующего, и узнаете ответ тот путь? Копируйте несколько простых прототипов или используйте существующие примеры и заставьте их выполнять простые задачи. Вы будете быстро видеть, как хорошие пользователи, и выбор оттуда должен быть довольно простым.

1
ответ дан 6 December 2019 в 08:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: