metaclass: (дзедline)
metaclass ([personal profile] metaclass) wrote2013-01-28 10:38 am

О UI дизайне и кодогенерации

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

[identity profile] falcrum.livejournal.com 2013-01-28 07:42 am (UTC)(link)
Скажи, а вот всякое "показать это поле, если сегодня Луна напротив Юпитера, а клиент ввёл в во-он той позиции слово из трёх букв" ты генеришь автоматом?

[identity profile] norguhtar.livejournal.com 2013-01-28 07:51 am (UTC)(link)
Легко совместима. Человек-рисователь UI прописывает тебе guideline а дальше ты генеришь свой UI согласно guildeline.

[identity profile] kosiakk.livejournal.com 2013-01-28 08:10 am (UTC)(link)
ИМХО такой человек должен пристально смотреть на сгенерированные окна и находить косяки и лишние элементы. Программист исправляет шаблоны/кодогенератор/логику/модель и итерация повторяется

[identity profile] bydlorus.livejournal.com 2013-01-28 08:17 am (UTC)(link)
xaml же!

[identity profile] tzirechnoy.livejournal.com 2013-01-28 08:22 am (UTC)(link)
Если человек вменяемый -- то легко. Он рисует вид, ты генеришь что-то, похожэе на этот вид (применяя какие-то хинты и эвристики). Вы соглашаетесь, что это похожэ, потом по этим хинтам и эвистикам генерите ещё 100 форм. Он с какими-то из них соглашается, с какими-то -- нет. Ты добавляешь ещё хинтов пока драка не закончится.
В процэссе рефакторинга, возможно, некоторые хинты преборазуются в какие-то другие общие правила построения.

[identity profile] vit-r.livejournal.com 2013-01-28 08:43 am (UTC)(link)
Нужен метаязык описания интерфейса. То есть для небанальных вещей "человек-рисователь" задаёт правила построения элементов.

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

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

[identity profile] aamonster.livejournal.com 2013-01-28 09:15 am (UTC)(link)
А нет ли возможности разделить окно на генерящуюся часть и рисуемую (грубо говоря, генерящийся html и создаваемый дизайнером css)?
И дать ему возможность писать этот "css" в wysiwyg-режиме, чтобы сразу пресечь попытки вылезти за рамки возможностей такой связки.

[identity profile] gineer.livejournal.com 2013-01-28 10:10 am (UTC)(link)
когда (если?) найдете ответ, свисните?

[identity profile] migmit.livejournal.com 2013-01-28 10:28 am (UTC)(link)
Чего-то мне последнее время кажется, что они обе говно.

[identity profile] zmila.livejournal.com 2013-01-28 11:05 am (UTC)(link)
примерно так: сначала жава-програмер пишет jsp-страничку типа
<table>
<c:forEach items="${bean.myNames}" var="n" >
  <tr>
    <td>${n.name}</td>
    <td> 
      <c:if test="${n.editable}">  <img src="../images/edit.png" />   </c:if> 
    </td>
  </tr>
</c:forEach>
</table>
т.е. просто выдаёт данные, которые надо показывать/редактировать

а дизайнер смотрит на этот голый макет и на картинку от заказчика и пишет навороченные html и css, причём он уже довольно крут, что знает javascript и использует jQuery

затем жава-програмер берёт тот маркап, и подправляет свой код, чтобы он выдавал такой же html как у дизайнера:
<ul class="myNames">
<c:forEach items="${bean.myNames}" var="n" >
  <li> 
    <span class="myName">${n.name}</span> 
    <c:if test="${n.editable}">
      <span class="myNameEdit" />
    </c:if>
  </li>
</c:forEach>
</ul>

[identity profile] justy-tylor.livejournal.com 2013-01-28 11:44 am (UTC)(link)
"Отдельный человек-рисователь UI" для приложений не нужен. В открытом вебе есть задача "чтоб выглядело не как у всех" и веб-дизайнеры под неё, для десктопа такой задачи нет, visual UI определяется свойствами и традициями операционной системы и/или соответствующего фреймворка.

"Отдельный UI-проектировщик" под logical UI - да, клёво, если удача и бюджет позволяют найти хорошего юзабилиста.

Генерировать автоматически - иначе с большинством форм никак. Хорошо бы куда-то впихнуть тестовый рендер максимально заполненных форм, чтобы автоматикой отслеживать косяки, когда выбор многословного пункта в каком-нибудь Choice контроле требует второго монитора.

[identity profile] berezovsky.livejournal.com 2013-01-28 04:22 pm (UTC)(link)
Рисовальщик задаёт некий общий шаблон, а генерация его подхватывает.
В случае html это может быть css.
В случае винды - выставление свойств у объектов.
Как-то так в общем случае.
Ну или сгенерить и СОХРОНИТЬ, а он пускай в наиболее кривых руками кнопки передвигает.

[identity profile] dmitry shamov (from livejournal.com) 2013-01-29 05:29 pm (UTC)(link)
CSS же. Тоесть ты нагенерил, а он из готового перерисовал. Для тебя что текстовое поле ввода, что выпадающий календарь пофиг.