metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2013-10-18 09:58 pm

Об удобном софте для сложных предметных областей.

Каждый раз, когда я читаю [livejournal.com profile] justy_tylor или когда меня очередной раз посещает навязчивая идея сделать генерацию UI из моделей (как у меня генерируется все остальное), я вспоминаю вот эту картинку http://ips.intermech.ru/images/s1_big.png или интерфейс 3D Max или CadSoft Eagle.

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

У меня софт обычно простой. Потому что предметка вся это "ввести первичные данные, получить данные с 100500 приборов и желязяк и показать по ним отчеты", ресурсы ограничены, UI делать некому, соответственно все по максимуму сводится к обобщенным CRUD-оперденям. А бэк-енды, базы данных и бизнес-логика, когда она не особо связана с UI - для меня это отдых. Потому как в большинстве случаев укладывается в функциональщину и SQL.

[identity profile] artureg.livejournal.com 2013-10-18 07:07 pm (UTC)(link)
как привыкли, простой - сложный интерфейс сложной предметки например - zBrush 4

пруф

[identity profile] dizel-by.livejournal.com 2013-10-18 07:22 pm (UTC)(link)
Ребе, посмотрите на автокады. Раньше был интерфейс пиздец-пиздец (но пользоваться было можно), а теперь сраные риббоны. Ещё больше пиздец-пиздец, а пользоваться уже нельзя.

[identity profile] zelanton.livejournal.com 2013-10-18 07:35 pm (UTC)(link)
Да переходи уже на веп-морду!

[identity profile] justy-tylor.livejournal.com 2013-10-18 07:48 pm (UTC)(link)
"Переведено профессиональными художниками, озвучено профессиональными программистами". Есть разные плохие подходы для многоинформации. Вывести кучу окон и кнопок (демонстрация богатства среды), которые отжирают когнитивные ресурсы. Или как в MS Office - богатство среды давно продемонстрировано, поэтому марсианская логика часть информации прячет под шторки, но ненужное торчит, а нужное почему-то каждый раз оказывается скрытым, ибо "миллионы леммингов не могут ошибаться". Здесь такой момент, что "нужное далеко" и "ненужное маячит" одинаково губительны для интерфейса, но статистически общее среднее оказывается неудобным всем разумным людям.

Единственный гуманный подход - сбалансировать подачу информации (как дерево, с учётом веса/полезности сущностей) под выбранную типовую деятельность пользователя, с возможностью ребалансировки пользователем же под нетиповые действия. Нужное - близко. Редко нужное - дальше. Нужное только приходящему автоматизатору - во встроенной консоли. Продвинутый пользователь с нетиповой деятельностью определяет свои меню и шорткаты или просит приходящего автоматизатора.

Наивная генерация UI из моделей будет заведомо несбалансирована, а вот если в модель аннотации под UI вставить, то получится полноценный logical UI, и результат превысит по качеству любые дельфиформочки.

[identity profile] tonsky.livejournal.com 2013-10-18 07:54 pm (UTC)(link)
Был такой редактор, Blender. Вот они сильно подвинули вперед UI 3д-редактирования за счет богатой системы команд с клавиатуры. Почти все кнопки, особенно буквы, чем-то управляют. ZBrush не видел, но слышал хорошее и верю что это тоже подходящий пример. Просто никто не знает как делать UI. Делают как привыкли, как все делают, из того, что есть — кпопки, ползунки, диалоговые окошки. У Adobe в CS до сих пор модальные окошки выскакивают — нет, это не оправдано никакой сложностью предметки.

[identity profile] falcrum.livejournal.com 2013-10-18 08:03 pm (UTC)(link)
В идеале, UI должен представлять из себя одну кнопку "Сделай мне заибизь!", но пока с приближением к этому как-то туговато...

[identity profile] berezovsky.livejournal.com 2013-10-18 08:29 pm (UTC)(link)
Генерить условный HTML и накладывать условный CSS, вплоть до абсолютного позиционирования отдельных кнопок ручным допиливанием.

[identity profile] nicka-startcev.livejournal.com 2013-10-19 12:39 am (UTC)(link)
Опенскад, хехе.

слева окно с кодом, справа окно с моделью, снизу лог. Ну и какие-то мелочи по бокам.

пишем код типа такого
module part_cube(x=160,y=66,z=5,r=3)
{
  //translate([x/2,y/2,z/2])
  union()
  {
    if(y>2*r)cube([x,y-2*r,z],center=true);
    if(x>2*r)cube([x-2*r,y,z],center=true);
    translate([x/2-r,y/2-r]) cylinder(r=r,h=z,center=true);
    translate([x/2-r,-y/2+r]) cylinder(r=r,h=z,center=true);
    translate([-x/2+r,y/2-r]) cylinder(r=r,h=z,center=true);
    translate([-x/2+r,-y/2+r]) cylinder(r=r,h=z,center=true);
  };
}

жмем хоткей, сразу видим модель айфона.

[identity profile] max630.livejournal.com 2013-10-19 05:35 am (UTC)(link)
Как минимум идея "пользователюэтонинужно" там не работает. А без неё все раскинодрочерство рассыапется.

[identity profile] jakobz.livejournal.com 2013-10-19 08:51 am (UTC)(link)
А ты не видел чего-нибудь декларативненького для UI-ки оперденей? Не чтобы как у 1С - мы вам закрытые контролы и ад в базе, а вы дальше пишите на нашем прекрасном XML/встроенном языке императивненько. Хочется чтобы во все кишки можно было как-то влезать если нужно. Ну и для начала чтобы прям из коробки по описанию модели получить все гриды/редакторы без особых телодвижений.

[identity profile] theiced.livejournal.com 2013-10-19 09:23 am (UTC)(link)
у тебя опять зелантон. его даже противогаз уебанил же, а ты тупишь.

[identity profile] altmind.livejournal.com 2013-10-19 02:41 pm (UTC)(link)
как то так (кликабельно)