Информация об изменениях

Сообщение Re: Две иконки сохранения от 27.11.2021 22:17

Изменено 27.11.2021 22:20 Shtole

Re: Две иконки сохранения
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>Я считаю, что одной иконки сохранения недостаточно.


А что конкретно подразумевается под «иконкой сохранения»? Прямо-таки иконка как изображение, или всё же, как я подозреваю, команда?

Пятиминутка КО. Если говорить о классическом десктопном UI, его интерфейс построен вокруг этих самых команд. Команда представлена контролом в меню / на панели инструментов. Тип этого контрола зависит от типа команды. В простейшем случае команды бывают только одного типа (действие), но офисные приложения эволюционировали в сторону усложнения. Навскидку:

Тип команды Тип контрола Пример из Word'а Может иметь иконку
Действие Кнопка 'Save' Да
Включение-выключение режима Кнопка-чекбокс 'Bold' Да
Выбор режима Кнопка-радиобокс 'Left Align' Да
Группировка других команд Выпадающая суб-панель с командами 'Borders' Да
Выбор значения Комбобокс 'Language' Нет
Выбор значения со вводом Редактируемый комбобокс 'Font Size' Нет
Плюс ещё несколько особых типов, про которые мы тут не будем. Позже эту простую и ясную схему в некоторых продуктовых линейках сочли излишне сложной для современного юзера и начали её портить путём рандомной кастомизации, но про это мы тоже не будем.

С командой, тип которой это допускает (см. выше), может быть ассоциирована иконка — иконка как изображение.

Вот теперь вопрос: что значит «одной иконки сохранения недостаточно»?

  • Если всё-таки подразумевалась не «иконка», а «команда»: одной команды для сохранения недостаточно? Так их и так, как минимум, две: 'Save' / 'Save As...'. Добавить третью?
  • Одного изображения у одной команды недостаточно? Одна команда должна поддерживать разные иконки? Ну, во-первых, продвинутые UI дают юзеру возможность выбрать/отредактировать иконку самому. Если это реализовано, то менять иконки, не сломав всю схему, не выйдет. А, во-вторых, от этой идеи если кое-где и отказались, то потому, что хотят, чтобы у юзера изображение предельно чётко ассоциировалось с командой и он мог работать на чужом компьютере (где изображения будут гарантировано стандартные).
  • Вместо традиционных типов команд ввести для сохранения новый тип команды, с новым тип контрола? Я выше не упомянул такой тип команды, как «выбор цвета» — там поверх иконки-изображения отображается слой с цветным прямоугольником. Сделать что-то типа этого?

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

ЭФ>Существует ещё такая концепция как "автоматическое сохранение". И хотелось бы знать его статус.


Смешивать концепции «автоматическое сохранение» и «ручное сохранение» — ИМХО, не очень удачная идея. Конкретно, я имею в виду как-бы-нажатие за юзера 'Save'. Да, так делают, но это обламывает как продвинутых юзеров, так и чайников.

  • Если «автоматическое сохранение» неотключаемое — продвинутый юзер обломится от ненужного принудительного сохранения промежуточных (и, следовательно, некорректных) состояний. Плюс, вообще теряется смысл в команде 'Save' — она сводится чисто к «не дожидаемся таймера».
  • Если «автоматическое сохранение» отключаемое, но включено по умолчанию — продвинутый юзер обломится от необходимости лезть в настройки после установки и отключать.
  • Если «автоматическое сохранение» отключаемое, но выключено по умолчанию — чайник обломится искать, где оно включается (или вообще про эту фичу не узнает).

Если всё-таки делать такую какашку, то можно отключать (disable) команду сохранения (о да, команды ещё имеют и разные свойства, такие как «доступность»). Привязываем флаг доступности к наличию несохранённых изменений — а контрол люой команды должен уметь рендериться в disabled-состоянии. Иными словами: юзер видит, что кнопка команды 'Save' посерела — значит, всё сохранено.

Решение такое же какашечное, как вся схема в целом, ибо disabled-состояние команды сохранения искуственно и даёт юзеру дискомфорт.

Поэтому вместо дурацкого автосохранения лучше сделать drafting — автоматически сохранять не документ, а его черновик. Опять же, это классика жанра — можно плодить файлы черновиков рядом с документом (это частично решает проблемы privacy + искать файлы не надо). Можно где-то у себя сохранять. Много как можно.

Или уж делать автосохранение полноценного графа состояний и убирать ручное сохранение. Если сумеете придумать хороший UI для этого — расскажите потом Надо будет придумать хорошее многомерное представление Undo/Redo, решить вопрос приватности и безопасности, не изнашивать SSD, не подвисать на сетевых ресурсах и мноооооого чего ещё. К drafting'у часть этих вопросов тоже применима, не беспокойтесь.

ЭФ>Поэтому можно было бы отображать либо факт, либо количество времени с последнего автоматического сохранения.


Если делать drafting, отображать факт сохранения вообще не надо: надо просто сохранять черновик на каждое значимое изменение вообще. Отображать надо только тип сохранения. Можно добавлять [Draft] в заголовок окна при любом редактировании и убирать при ручном сохранении.

ЭФ>Либо количество изменений, внесённых с момента загрузки до момента последнего автоматического сохранения,

ЭФ>и количество изменений с момента последнего автоматического сохранения до текущего момента времени.

Что юзер должен делать с этой информацией?
Re: Две иконки сохранения
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>Я считаю, что одной иконки сохранения недостаточно.


А что конкретно подразумевается под «иконкой сохранения»? Прямо-таки иконка как изображение, или всё же, как я подозреваю, команда?

Пятиминутка КО. Если говорить о классическом десктопном UI, его интерфейс построен вокруг этих самых команд. Придумал это, насколько я знаю, IBM в мохнатом году, а Microsoft (и Corel) довели до ума — но могу ошибаться, в истории не слишком силён.

Команда представлена контролом в меню / на панели инструментов. Тип этого контрола зависит от типа команды. В простейшем случае команды бывают только одного типа (действие), но офисные приложения эволюционировали в сторону усложнения. Навскидку:

Тип команды Тип контрола Пример из Word'а Может иметь иконку
Действие Кнопка 'Save' Да
Включение-выключение режима Кнопка-чекбокс 'Bold' Да
Выбор режима Кнопка-радиобокс 'Left Align' Да
Группировка других команд Выпадающая суб-панель с командами 'Borders' Да
Выбор значения Комбобокс 'Language' Нет
Выбор значения со вводом Редактируемый комбобокс 'Font Size' Нет
Плюс ещё несколько особых типов, про которые мы тут не будем. Позже эту простую и ясную схему в некоторых продуктовых линейках сочли излишне сложной для современного юзера и начали её портить путём рандомной кастомизации, но про это мы тоже не будем.

С командой, тип которой это допускает (см. выше), может быть ассоциирована иконка — иконка как изображение.

Вот теперь вопрос: что значит «одной иконки сохранения недостаточно»?

  • Если всё-таки подразумевалась не «иконка», а «команда»: одной команды для сохранения недостаточно? Так их и так, как минимум, две: 'Save' / 'Save As...'. Добавить третью?
  • Одного изображения у одной команды недостаточно? Одна команда должна поддерживать разные иконки? Ну, во-первых, продвинутые UI дают юзеру возможность выбрать/отредактировать иконку самому. Если это реализовано, то менять иконки, не сломав всю схему, не выйдет. А, во-вторых, от этой идеи если кое-где и отказались, то потому, что хотят, чтобы у юзера изображение предельно чётко ассоциировалось с командой и он мог работать на чужом компьютере (где изображения будут гарантировано стандартные).
  • Вместо традиционных типов команд ввести для сохранения новый тип команды, с новым тип контрола? Я выше не упомянул такой тип команды, как «выбор цвета» — там поверх иконки-изображения отображается слой с цветным прямоугольником. Сделать что-то типа этого?

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

ЭФ>Существует ещё такая концепция как "автоматическое сохранение". И хотелось бы знать его статус.


Смешивать концепции «автоматическое сохранение» и «ручное сохранение» — ИМХО, не очень удачная идея. Конкретно, я имею в виду как-бы-нажатие за юзера 'Save'. Да, так делают, но это обламывает как продвинутых юзеров, так и чайников.

  • Если «автоматическое сохранение» неотключаемое — продвинутый юзер обломится от ненужного принудительного сохранения промежуточных (и, следовательно, некорректных) состояний. Плюс, вообще теряется смысл в команде 'Save' — она сводится чисто к «не дожидаемся таймера».
  • Если «автоматическое сохранение» отключаемое, но включено по умолчанию — продвинутый юзер обломится от необходимости лезть в настройки после установки и отключать.
  • Если «автоматическое сохранение» отключаемое, но выключено по умолчанию — чайник обломится искать, где оно включается (или вообще про эту фичу не узнает).

Если всё-таки делать такую какашку, то можно отключать (disable) команду сохранения (о да, команды ещё имеют и разные свойства, такие как «доступность»). Привязываем флаг доступности к наличию несохранённых изменений — а контрол люой команды должен уметь рендериться в disabled-состоянии. Иными словами: юзер видит, что кнопка команды 'Save' посерела — значит, всё сохранено.

Решение такое же какашечное, как вся схема в целом, ибо disabled-состояние команды сохранения искуственно и даёт юзеру дискомфорт.

Поэтому вместо дурацкого автосохранения лучше сделать drafting — автоматически сохранять не документ, а его черновик. Опять же, это классика жанра — можно плодить файлы черновиков рядом с документом (это частично решает проблемы privacy + искать файлы не надо). Можно где-то у себя сохранять. Много как можно.

Или уж делать автосохранение полноценного графа состояний и убирать ручное сохранение. Если сумеете придумать хороший UI для этого — расскажите потом Надо будет придумать хорошее многомерное представление Undo/Redo, решить вопрос приватности и безопасности, не изнашивать SSD, не подвисать на сетевых ресурсах и мноооооого чего ещё. К drafting'у часть этих вопросов тоже применима, не беспокойтесь.

ЭФ>Поэтому можно было бы отображать либо факт, либо количество времени с последнего автоматического сохранения.


Если делать drafting, отображать факт сохранения вообще не надо: надо просто сохранять черновик на каждое значимое изменение вообще. Отображать надо только тип сохранения. Можно добавлять [Draft] в заголовок окна при любом редактировании и убирать при ручном сохранении.

ЭФ>Либо количество изменений, внесённых с момента загрузки до момента последнего автоматического сохранения,

ЭФ>и количество изменений с момента последнего автоматического сохранения до текущего момента времени.

Что юзер должен делать с этой информацией?