Что случилось с унифицированной файловой моделью Алана Купера?

13

В течение долгого времени Алан Купер (в 3 версиях своей книги «О лице») продвигал «унифицированную файловую модель», чтобы, помимо прочего, обойтись без того, что он называет самым идиотским окном сообщений, когда-либо изобретенным - тем, которое выскакивает, когда нажимаете кнопку закрытия в приложении или форме, говоря "Вы хотите отменить свои изменения?" Мне нравится идея и его аргументы, но я также испытываю коленную реакцию на нее, которую имеют большинство опытных программистов и пользователей.

В то время как книга Купера кажется довольно популярной и уважаемой, в Интернете есть очень мало дискуссий по этому конкретному вопросу, которые я могу найти. Петер Хессельберг, автор книги «Программирование Windows для промышленного применения», упоминает об этом, но это кажется.

У меня есть возможность реализовать это в (настольном) проекте, над которым я работаю, но сталкиваюсь с сопротивлением со стороны клиентов и коллег, которые, конечно, знакомы с методами работы MS Word и Excel. Я могу перевесить их возражения, но не уверен, что должен.

Мои вопросы:

Есть ли хорошие обсуждения этого, которые мне не удалось найти? Кто-нибудь делает это в своих приложениях? Это хорошая идея, что это, к сожалению, не практично, пока, скажем, Microsoft не сделает это?

Пол Мансур
источник
2
В Документах Google используется «унифицированная файловая модель». Там еще есть кнопка сохранения, но на самом деле это плацебо: каждый раз, когда вы вносите изменения, файл «сохраняется». Конечно, Google Docs также имеет очень надежную модель «истории», в которой вы можете вернуться к любой предыдущей ревизии, которая вам нравится.
Дин Хардинг
Спасибо всем за ответы. Особенно ЭльГрингоГранде и Берин Лорич. Я выбрал Берин только потому, что он казался немного более полным. Я все еще обдумываю направление.
Пол Мансур

Ответы:

5

Пригодность Единой Файловой Системы действительно зависит от приложения под рукой. Такие вещи, как веб-приложения, приложения Microsoft OneNote и iOS, подходят для этой модели. Когда приложение управляется базой данных, оно также поддается этой модели. Тем не менее, я могу также подумать о тех областях, где это не лучший вариант. В частности, когда приложение может использовать данные, которые не пришли из этого приложения, вам нужна концепция файловой системы, чтобы найти информацию.

Что касается синхронизации памяти и диска, я хочу этого, но не для своего текстового процессора. Если бы я потратил время на сохранение своего файла, я бы хотел убедиться, что не теряю никакой информации. Об этой потребности позаботилась функция автосохранения, которая была у нас уже несколько лет. Если кто-то спотыкается о шнур питания, я могу, по крайней мере, вернуть его обратно. Тем не менее, я создаю несколько одноразовых документов, которые не хочу засорять мою файловую систему. Знак, который будет использоваться только в течение одного дня, играть с образцами шрифтов и т. Д.

Ответ "это зависит". UFS Купера полезен в некоторых случаях, а в других - меньше. Технический опыт ваших пользователей также может повлиять на ваше решение. Большинство из нас выросли со статус-кво, и иногда выгоды от изменений не перевешивают стоимость изменений. Я бы оценил уместность такого подхода в вашем приложении.

Берин Лорич
источник
7

Microsoft делает это в OneNote.

Я бы не стал игнорировать желания пользователя. Мы думали о реализации этого, но пришли к выводу, что многие пользователи делают вещи без раздумий и используют кнопку закрытия формы (или ctrl-alt-del, если ее нет), чтобы предотвратить сохранение своих ошибок.

Если бы вы могли реализовать это так, чтобы они могли вернуться к предыдущему сеансу (что-то вроде большой отмены), тогда это может быть приемлемым. Но люди призваны использовать окружающую среду вокруг себя. Измените окружающую среду, и вы рискуете уничтожить обнаруженное ими преимущество.

ElGringoGrande
источник
1
И предоставление отмен, пересекающих сессионные строки, вызовет свои проблемы. Сколько людей начинают письма, в которых говорится, что они думают, а затем заканчивают, делая это дипломатичным? Вам нужна отдельная функция экспорта.
Дэвид Торнли
+1, особенно за последний абзац. Не перезаписывайте предыдущее содержимое при сохранении, а добавляйте новую «версию», сохраняя старые версии без изменений. Чтобы сэкономить место, вы можете иметь несколько версий совместно используемых (неизменяемых) данных.
Джои Адамс
1
@ Дэвид: это хороший пример того, что вам действительно нужна команда «опубликовать», а не команда «сохранить новую версию в этом потоке версий».
Алекс Фейнман
1
@Alex: Точно - за исключением того, что большинство людей не будут искать команду «опубликовать» или «экспортировать». В конце концов, нет видимой разницы, и они привыкли просто посылать окончательную версию файла.
Дэвид Торнли
Я согласен, что у вас должна быть опция «вернуться к предыдущей версии», если вы собираетесь использовать унифицированную модель - это фундаментально для нее. На самом деле, в моем случае, все данные (это элементы, относящиеся к конкретному приложению, а не файлы, но они все одинаковые) находятся в СУБД, которая не допускает деструктивных обновлений, поэтому я сохранил все версии. Это одна из причин, по которой я даже рассматриваю унифицированную модель, так как можно вспомнить старые версии элемента.
Пол Мансур
6

Единая файловая система уже победила!

Все приложения для iOS * работают таким образом. Нет «файлов», нет файловой системы, нет сохранения, только приложения, которые содержат данные, к которым вы всегда можете вернуться, если не удалите их. Учитывая, что MacOS может когда-нибудь упасть на iOS, я бы сказал, что модель определенно завоевала популярность.

Веб-сайты тоже работают таким образом - редко вы «сохраняете» документ, редко перемещаетесь по набору документов и очень редко вы делитесь документами между сайтами. Документы встроены в сайт, как эти вопросы и ответы встроены в StackExchange.

Исторически было несколько неловких попыток внедрить это в Windows и Mac, и это отвлекло людей от идеи. Но переход на новую платформу, на которой никто не ожидает наличия файлового браузера, полностью освободил компании от перехода.

(* Я не знаю ни с Android, ни с других операционных систем телефона; может, и там тоже.)

Алекс Фейнман
источник
2
Однако существуют файловые системы (в значительной степени) для отделения данных и интерфейсов от программ и приложений. Есть аргументы с обеих сторон.
Jé Queue
2
@ Алекс, за исключением того, что вы не можете делиться информацией между приложениями. Файл сохраненной игры не может быть открыт текстовым редактором на iOS, потому что это другое приложение не имеет доступа к песочнице.
Стивен Фурлани
@ Стефен, это правда, и важный аспект устранения ментальной модели на основе файлов. Если вы хотите перемещать данные между приложениями, вы должны либо использовать прямой обмен данными между приложениями («поделиться этим на Facebook!»), Либо посредник может говорить (например, буфер обмена). Я смущен вашим "кроме".
Алекс Фейнман
Вы можете обмениваться информацией между приложениями - iOS поддерживает обработчики файлов, а также передачу информации через обработчики URL. Это просто делается на уровне, когда пользователи связывают данные между приложениями, а не являются посредниками в процессе передачи.
Кендалл Хельмштеттер Гелнер
1
@ Алекс, подожди, так что использование буфера обмена (временного) является допустимым, но использование общей файловой системы (постоянной) - нет?
Стивен Фурлани
1

Собираетесь ли вы хранить их данные в файлах или в какой-то базе данных?

Если вы ожидаете, что у них будет физический доступ к файлам, вам придется учить их, что ваши файлы «особенные». В своей нынешней ментальной модели они могут копировать, вставлять, переименовывать и удалять. Я уверен, что некоторые из них уже используют переименование как способ «версии» своих данных (например, резюме2010.doc, SalesDataFromBob2.xls).

Если это база данных, я уверен, что они захотят экспортировать / импортировать файлы в какой-то момент.

rperetti
источник
0

Сложно ли реализовать на видном месте опцию «всегда сохранять» для пользователя?

JeffO
источник
1
Нет, это совсем не сложно реализовать. Но действительно ли это хорошая идея, чтобы создать опцию и поддержать две модели здесь? Я так не думаю. Я думаю, что лучше выбрать один и придерживаться его.
Пол Мансур