metaclass: (Default)
[personal profile] metaclass
Каждый раз, когда я читаю [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.

Date: 2013-10-19 09:21 am (UTC)
From: [identity profile] metaclass.livejournal.com
Не, оно как раз вполне нормально, за исключением того, что вместо модальных окон - машина состояний унутре, да еще там много работы на фоне делается, о которой уведомлять надо, через поллинг состояния фоновых воркеров.
Кроме того, единственный нормальный способ сделать красиво сейчас - это html, все остальное - тянет за собой адский дотнет и прочий трэш, а на Qt сделать красиво - излишне геморройно.

Date: 2013-10-19 09:30 am (UTC)
From: [identity profile] zelanton.livejournal.com
>>> машина состояний унутре, да еще там много работы на фоне делается, о которой уведомлять надо, через поллинг состояния фоновых воркеров.

Я всё же не понимаю зачем этот ад. Красиво - нанять блин для начала дизайнера, всё равно он для html нужен будет. Ну разве что кроссплатформенность, но чё-та я сомневаюсь, что причиной именно оно, это скорее бонус.

Date: 2013-10-19 09:51 am (UTC)
From: [identity profile] metaclass.livejournal.com
Сильно дешевле оставить программисту код, не привлекая его на каждое перемещение кнопочки на 1 пиксель влево. Опять же - С++ билд то еще занятие, в отличие от "поменял одну букву и тут же посмотрел".

В общем, конкретно там где нужно много красивого UI, который нужно периодически менять и мало сложных действий со стороны юзера - html+js интерфейсы очень заебись. И веб-дизайнеры там уже есть, повторное их использование очень кстати.

Date: 2013-10-19 11:46 am (UTC)
From: [identity profile] jakobz.livejournal.com
Да ну нафиг. По сравнению с каким-нибудь .net+devexpress - в вебе полный ад и гемор.

В вебе чуть-чуть попроще с деплоем (если IE<=8 на конторе законодательно запрещен), поддержкой (логи локально), и еще кое-какие плюхи из коробки (типа запоминания введенных полей, и возможности url-ы в закладки ставить и кидать по скайпу).

Но в целом опердени на вебе - на порядок более дикий гемор чем на десктопе. Хотя бы за счет возможности открыть штуку из details-таблички на редактирование тупо в модальном окне. Без необходимости сохранения всего master в базу или какого еще адового секса.

Date: 2013-10-19 03:54 pm (UTC)
From: [identity profile] gineer.livejournal.com
в Qt все ровно то же самое,
те же CSS

Date: 2013-10-19 03:57 pm (UTC)
From: [identity profile] inhate.livejournal.com
У меня для одной и той же кодовой базы - три совершенно по-разному выглядящих UI, причём часть UI иногда тянется с веба.
И следующая итерация будет с альфа-каналом, UI будет не прямоугольным, а каким там в голову дизайнеру придёт. В форме облачка с дырочкой в середине например. И вкруг дырочки будет показываться ролик с ютуба. При этом от программиста требуется впилить только поддержку альфа-канала, что в целом делается быстро и работает начиная с XP.

Date: 2013-10-19 04:01 pm (UTC)
From: [identity profile] zelanton.livejournal.com
Помню у нас был препод-шизофреник требовавший в результатах работ овальные кнопочки, формы с альфа-каналом и прочие ненужные свистоперделки))))

Date: 2013-10-19 04:18 pm (UTC)
From: [identity profile] zelanton.livejournal.com
Кстати, а html-морда чем интерпретируется? системным браузером или вся эта браузерная инфраструктура локальна, поставляется и запускается вместе с софтом?

Date: 2013-10-19 05:48 pm (UTC)
From: [identity profile] metaclass.livejournal.com
qtwebkit. Еще не хватало от заебов винды зависеть :)

Date: 2013-10-19 06:39 pm (UTC)
From: [identity profile] zelanton.livejournal.com
ну некоторые вот зависят же. неоднократно наблюдал.

Date: 2013-10-19 05:57 pm (UTC)
From: [identity profile] inhate.livejournal.com
Тащим с собой QtWebKit во избежание сношений с кроссбраузерностью, адблоками, гей-барами, перезагрузками при уставноке гопнета нужной версии и прочей поебени, ну и собственна бизнес-логика торчит наружу (т.е. в UI) в виде JS-вызовов и хуков для апдейтов прогрессбара.
Устанавливается и обновляется приложениице статически собранным нативным win32-инсталлером (~850kb), само приложениице - 22Mb

Date: 2013-10-19 06:42 pm (UTC)
From: [identity profile] zelanton.livejournal.com
ну будем надеяться оно не ужирает память и вообще стабильно, ну в отличии от хрома например)

Date: 2013-10-19 05:32 pm (UTC)
From: [identity profile] blackyblack.livejournal.com
"В форме облачка с дырочкой в середине например. И вкруг дырочки будет показываться ролик с ютуба."

Я джва года ждал эту фичу.

Date: 2013-10-19 05:58 pm (UTC)
From: [identity profile] inhate.livejournal.com
Я сам в сомнениях, как сделают - запущу A/B с прямоугольной версией и посчитаю бабло.

Date: 2013-10-19 11:29 am (UTC)
From: [identity profile] bydlorus.livejournal.com
Ради одного только отсутствия модальных окон я бы всех заставил писать на веб-морде.

Date: 2013-10-19 11:49 am (UTC)
From: [identity profile] jakobz.livejournal.com
А вот как ты делаешь на вебе редактирование master-detail штук интересно? Ну например когда мастер нельзя сохранять пока детали все не вбиты?

Я понимаю что модальные окна - неоднозначная с точки зрения удобства штука. Но я вот не понимаю как еще делать какие-то большие изменения данных атомарно.

Date: 2013-10-19 11:53 am (UTC)
From: [identity profile] bydlorus.livejournal.com
Я вообще давно не веб-программист, так, кое-что писал раньше, но было два подхода - или хранить временный полузаполненный объект в базе и юзать его id, или гонять туда-назад (по кнопкам next/prev) все данные объекта.

Date: 2013-10-19 12:59 pm (UTC)
From: [identity profile] jakobz.livejournal.com
Вот и вот-то. И при любом раскладе обмазать это все тонной яваскрипта. При том что такое же любой юниор на десктопе сделает без включения мозга.

А потом еще QA придет и проверит что будет если кнопочки back понажимать, пооткрывать какой-нибудь второй шаг в нескольких окнах, поделать это все из сессий разных юзеров с одним объектом, а потом - еще совместить это все вместе.

Date: 2013-10-19 02:27 pm (UTC)
From: [identity profile] bydlorus.livejournal.com
С каким одним объектом, временные объекты или данные форм все разные, кнопочки back и так тестируются. Ну и к тому же без включения мозга получится полюбому хуже. Не сохранено? Выведем msgbox. Повбивал бы.

(no subject)

From: [identity profile] jakobz.livejournal.com - Date: 2013-10-21 05:46 am (UTC) - Expand

(no subject)

From: [identity profile] bydlorus.livejournal.com - Date: 2013-10-21 06:33 am (UTC) - Expand

(no subject)

From: [identity profile] jakobz.livejournal.com - Date: 2013-10-21 08:37 am (UTC) - Expand

(no subject)

From: [identity profile] bydlorus.livejournal.com - Date: 2013-10-21 08:42 am (UTC) - Expand

(no subject)

From: [identity profile] jakobz.livejournal.com - Date: 2013-10-21 08:48 am (UTC) - Expand

(no subject)

From: [identity profile] bydlorus.livejournal.com - Date: 2013-10-21 08:52 am (UTC) - Expand

(no subject)

From: [identity profile] jakobz.livejournal.com - Date: 2013-10-21 08:58 am (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-10-21 08:54 am (UTC) - Expand

(no subject)

From: [identity profile] jakobz.livejournal.com - Date: 2013-10-21 09:15 am (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-10-21 08:52 am (UTC) - Expand

(no subject)

From: [identity profile] jakobz.livejournal.com - Date: 2013-10-21 09:03 am (UTC) - Expand

(no subject)

From: [identity profile] berezovsky.livejournal.com - Date: 2013-10-21 01:39 pm (UTC) - Expand

Date: 2013-10-19 12:48 pm (UTC)
From: [identity profile] theiced.livejournal.com
ты что совсем ебанашка?

Date: 2013-10-19 01:18 pm (UTC)
From: [identity profile] theiced.livejournal.com
а я так вижу что совсем.

Date: 2013-10-19 04:03 pm (UTC)
From: [identity profile] zelanton.livejournal.com
А запрети уже например диалоговые окна в nativе-коде, а? У нас например онные остались кажется только в виде мастера создания сложного объекта.

Date: 2013-10-19 04:56 pm (UTC)
From: [identity profile] bydlorus.livejournal.com
А почему оно должно быть модальным? Что, даже из меню ничего нельзя выбрать? Или в редакторе прокрутить текст? Нелепые ограничения.

Date: 2013-10-19 05:04 pm (UTC)
From: [identity profile] zelanton.livejournal.com
Ну оно может и не быть модальным, но нашему мастеру создания неплохо бы отображать контекст создания объекта. В этих ваших html-мордочках оно откроется или в новой странице, или заменит текущую и чтобы вспомнить контекст создания надо будет изобретать велосипед, который редко нормально и удобно работает.

Впрочем самое главное - я ещё ни разу не видел, чтобы html морды в локальных приложениях, а не веп-сервисах, работали безглючно. Ну то есть бывает, что глюки понятны, например "ну не предусмотрели всё", не напрягают и вообще проявляются при нестандартных действиях, но чтобы глюки совсем не всплывали - ещё ни разу не видел. И ни разу не видел, чтобы в них происходило что-то такое выдающее и необходимое, что без html ну никак. В 99% случаев какие невнятные свистоперделки, за которые я врядли бы заплатил если бы меня спросили. Короче удобство интерфейса - это другое и оно не зависит от технологии реализации UI.

(no subject)

From: [identity profile] bydlorus.livejournal.com - Date: 2013-10-19 05:17 pm (UTC) - Expand

(no subject)

From: [identity profile] zelanton.livejournal.com - Date: 2013-10-19 05:21 pm (UTC) - Expand

(no subject)

From: [identity profile] bydlorus.livejournal.com - Date: 2013-10-19 05:28 pm (UTC) - Expand

(no subject)

From: [identity profile] zelanton.livejournal.com - Date: 2013-10-19 05:29 pm (UTC) - Expand

(no subject)

From: [identity profile] bydlorus.livejournal.com - Date: 2013-10-19 05:49 pm (UTC) - Expand

(no subject)

From: [identity profile] zelanton.livejournal.com - Date: 2013-10-19 06:40 pm (UTC) - Expand

(no subject)

From: [identity profile] bydlorus.livejournal.com - Date: 2013-10-19 06:48 pm (UTC) - Expand

(no subject)

From: [identity profile] zelanton.livejournal.com - Date: 2013-10-19 06:52 pm (UTC) - Expand

(no subject)

From: [identity profile] bydlorus.livejournal.com - Date: 2013-10-19 07:07 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-10-19 06:53 pm (UTC) - Expand

(no subject)

From: [identity profile] bydlorus.livejournal.com - Date: 2013-10-19 07:07 pm (UTC) - Expand

(no subject)

From: [identity profile] zelanton.livejournal.com - Date: 2013-10-19 07:18 pm (UTC) - Expand

(no subject)

From: [identity profile] bydlorus.livejournal.com - Date: 2013-10-19 07:24 pm (UTC) - Expand

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 27th, 2025 08:00 pm
Powered by Dreamwidth Studios