Об удобном софте для сложных предметных областей.
Каждый раз, когда я читаю
justy_tylor или когда меня очередной раз посещает навязчивая идея сделать генерацию UI из моделей (как у меня генерируется все остальное), я вспоминаю вот эту картинку http://ips.intermech.ru/images/s1_big.png или интерфейс 3D Max или CadSoft Eagle.
Я до сих пор не могу для себя решить - адский пиздец сложности UI профессионального софта - это объективное следствие сложности предметки или же все-таки, как всегда в этом нашем IT - случайная сложность, потому что делают "как привыкли", "чтобы пользователи пользовались привычными метафорами" и "у нас эргономикой занимаются программисты".
У меня софт обычно простой. Потому что предметка вся это "ввести первичные данные, получить данные с 100500 приборов и желязяк и показать по ним отчеты", ресурсы ограничены, UI делать некому, соответственно все по максимуму сводится к обобщенным CRUD-оперденям. А бэк-енды, базы данных и бизнес-логика, когда она не особо связана с UI - для меня это отдых. Потому как в большинстве случаев укладывается в функциональщину и SQL.
![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)
Я до сих пор не могу для себя решить - адский пиздец сложности UI профессионального софта - это объективное следствие сложности предметки или же все-таки, как всегда в этом нашем IT - случайная сложность, потому что делают "как привыкли", "чтобы пользователи пользовались привычными метафорами" и "у нас эргономикой занимаются программисты".
У меня софт обычно простой. Потому что предметка вся это "ввести первичные данные, получить данные с 100500 приборов и желязяк и показать по ним отчеты", ресурсы ограничены, UI делать некому, соответственно все по максимуму сводится к обобщенным CRUD-оперденям. А бэк-енды, базы данных и бизнес-логика, когда она не особо связана с UI - для меня это отдых. Потому как в большинстве случаев укладывается в функциональщину и SQL.
no subject
no subject
А потом еще QA придет и проверит что будет если кнопочки back понажимать, пооткрывать какой-нибудь второй шаг в нескольких окнах, поделать это все из сессий разных юзеров с одним объектом, а потом - еще совместить это все вместе.
no subject
no subject
- есть форма для создания или редактирования "продукта"
- на форме есть контрол для выбора категории продукта.
- обычная для оперденей практика - делать этот контрол как input с поиском имеющихся категорий, плюс ставить справа еще две кнопки - для создания новой категории (открывает модальное окно), и для расширенного поиска категории (тоже открывает новое окно)
Мне интересно как делать без модальных окон, в вебе, подобные сценарии. Всякие отклонения типа "выведем msgbox где не надо" - они мне не интересны.
no subject
Если интересует "как" сделано, так обычным js, библиотек для создания окошек - вагон.
no subject
Я вижу тут какие проблемы:
- как стейт формы снять, куда его положить, и как восстановить назад. Такое нужно решать каким-то высокоуровневым UI-фреймворком. А такие штуки, как правило, требуют заботы и внимания.
- как показать юзеру, что его это все введенное не отломалось при переходе на другую страницу?
- что если юзер пойдет еще куда-то дальше там? Что если он коллеге ссылку скинет на какую-то страницу в процессе? Как это показывать на UI? Как управлять стейтами этих всех недозаполненных форм?
При этом всем через модальные окошки на десктопе такое делается просто, быстро и довольно понятно для юзера. Учти еще что разработка опердени - это не гламурный UI для твитера делать: сил много для вылизывания UI у тебя не будет, а вот "сделайте это вчера и не отломайте ничего по дороге" - это будет.
no subject
no subject
no subject
no subject
Причем ты еще с этими окнами практически автоматически теряешь возможность иметь нормальные ссылки - чтобы можно было в чатик закинуть, забукмаркать, по почте отправить, или просто в другом окне открыть. Потому что если со стейтом одной формочки еще можно как-то извернуться, то с этой адовой тонной окон ты точно рехнешься поддерживать работу с несколькими окошками и прозрачность url-ов.
Так что нет, спасибо, я сделаю лучше модальные попапы где оно нужно, но остальной весь UI у меня будет как на человеческом вебе - с прозрачными ссылками и прочим.
no subject
no subject
no subject
Все эти хипсторасы с их готовыми жабаскриптовыми либами пока пригодны только для говнотвиттеров и кнопки "Поделится фотонькой в социальной сети".
Предполагаемый вариант: состояние хранится на сервере, ссылка указывает на "текущий контекст работы, жабаскрипт его рендерит. Т.е. если у юзера браузер отвалится и он заново откроет - он продолжит работать с того места, где прервался. А модальные-немодальные окна - это сугубо машина состояний-workflow и тому подобный мрак.
С ссылками коллегам - сложнее, там права доступа придется проверять.
no subject
И этой вот проблемы на десктопе нет - стейт в окошке, уйти из него никуда нельзя, и каждому юзеру понятно что окно закрыл - стейт просрал.
no subject