Co się stało z ujednoliconym modelem plików Alana Coopera?


13

Przez długi czas Alan Cooper (w 3 wersjach swojej książki „About Face”) promował „ujednolicony model plików”, aby między innymi zrezygnować z tego, co nazywa najbardziej idiotycznym oknem wiadomości, jakie kiedykolwiek wymyślono - tym wyskakuje po naciśnięciu przycisku zamykania w aplikacji lub formularzu z komunikatem „Czy chcesz odrzucić zmiany?” Podoba mi się ten pomysł i jego argumenty, ale mam też reakcję na kolana, którą ma większość doświadczonych programistów i użytkowników.

Chociaż książka Coopera wydaje się dość popularna i szanowana, w Internecie jest bardzo mało dyskusji na temat tego konkretnego problemu. Wspomina o tym Petter Hesselberg, autor „Programowania przemysłowej siły systemu Windows”, ale tak się wydaje.

Mam okazję zaimplementować to w projekcie (stacjonarnym), nad którym pracuję, ale napotykam opór klientów i współpracowników, którzy oczywiście znają sposób wykonywania zadań w MS Word i Excel. Jestem w stanie pominąć ich zastrzeżenia, ale nie jestem pewien, czy powinienem.

Moje pytania to:

Czy są jakieś dobre dyskusje na ten temat, których nie udało mi się znaleźć? Czy ktoś to robi w swoich aplikacjach? Czy to dobry pomysł, że niestety nie jest to praktyczne, dopóki, powiedzmy, Microsoft?


2
Dokumenty Google korzystają z „ujednoliconego modelu plików”. Wciąż jest przycisk Zapisz, ale w rzeczywistości jest to placebo: za każdym razem, gdy dokonujesz zmiany, plik jest „zapisywany”. Oczywiście Dokumenty Google mają również bardzo solidny model „historii”, w którym można przywrócić dowolną poprzednią wersję.
Dean Harding,

Dziękuję wszystkim za odpowiedzi. W szczególności ElGringoGrande i Berin Loritsch. Wybrałem Berina tylko dlatego, że wydawało się to trochę bardziej kompletne. Nadal zastanawiam się, jaki kierunek wybrać.
PAUL Mansour,

Odpowiedzi:


5

Właściwość Unified File System naprawdę zależy od aplikacji. Rzeczy takie jak aplikacje internetowe, Microsoft OneNote i aplikacje iOS nadają się do tego modelu. Gdy aplikacja jest sterowana przez bazę danych, nadaje się również do tego modelu. Mogę jednak również pomyśleć o obszarach, w których nie jest to najlepsza opcja. W szczególności, gdy aplikacja może zużywać dane, które nie pochodzą z tej aplikacji, do zlokalizowania informacji potrzebna jest koncepcja systemu plików.

Jeśli chodzi o synchronizację pamięci i dysku, chcę tego, ale nie dla mojego edytora tekstu. Jeśli poświęciłem czas na zapisanie mojego pliku, mogę się upewnić, że nie tracę żadnych informacji. Ta potrzeba została zaspokojona przez funkcję automatycznego zapisywania, którą mamy od kilku lat. Jeśli ktoś potknie się o przewód zasilający, mogę przynajmniej trochę odzyskać. Jednak tworzę wiele wyrzucanych dokumentów, których nie chcę zaśmiecać mój system plików. Znak, który będzie używany tylko przez jeden dzień podczas zabawy z próbkami czcionek itp.

Odpowiedź brzmi „to zależy”. UFS Coopera jest użyteczny w niektórych przypadkach, a mniej w innych. Techniczna wiedza użytkowników może również wpłynąć na twoją decyzję. Większość z nas dorastała dzięki status quo, a czasem korzyści wynikające ze zmian nie przeważają nad kosztem zmiany. Oceniłbym odpowiedniość tego podejścia w Twojej aplikacji.


7

Microsoft robi to w OneNote.

Nie zastąpiłbym pragnień użytkownika. Myśleliśmy o wdrożeniu tego, ale przekonaliśmy się, że wielu użytkowników robi rzeczy bez zastanowienia i używa przycisku zamykania formularza (lub ctrl-alt-del, jeśli go nie ma), aby zapobiec zapisywaniu swoich błędów.

Jeśli możesz zaimplementować go w sposób, który pozwoli im wrócić do poprzedniej sesji (duże cofnięcie), może to być do zaakceptowania. Ale ludzie są tak zaprojektowani, aby wykorzystywać otaczające ich środowisko. Zmień otoczenie, a ryzykujesz zniszczeniem przewagi, którą odkryli.


1
Dostarczenie cofania przekraczającego linie sesji spowodowałoby własne problemy. Ile osób zaczyna listy od mówienia, co myślą, a potem kończy dyplomatycznie? Potrzebujesz oddzielnej funkcji eksportu.
David Thornley,

+1, szczególnie dla ostatniego akapitu. Nie zastępuj poprzedniej zawartości podczas zapisywania, ale dodaj nową „wersję”, zachowując starsze wersje bez zmian. Aby zaoszczędzić miejsce, możesz mieć wiele wersji współdzielących (niezmienne) dane.
Joey Adams,

1
@David: to dobry przykład naprawdę potrzeby polecenia „opublikuj” zamiast polecenia „zapisz nową wersję w strumieniu wersji”.
Alex Feinman,

1
@Alex: Dokładnie - z tym wyjątkiem, że większość ludzi nie będzie szukała polecenia „publikuj” lub „eksportuj”. W końcu nie ma widocznej różnicy, a oni są przyzwyczajeni do wysyłania ostatecznej wersji pliku.
David Thornley,

Zgadzam się, że musisz mieć opcję „przywróć poprzednią wersję”, jeśli zamierzasz korzystać ze zunifikowanego modelu - to podstawa. W rzeczywistości w moim przypadku wszystkie dane (są to elementy specyficzne dla aplikacji, a nie pliki, ale są takie same) znajdują się w DBMS, który nie pozwala na destrukcyjne aktualizacje, więc każdą wersję zapisałem. Jest to jeden z powodów, dla których rozważam nawet model zunifikowany, ponieważ przywoływanie starych wersji przedmiotu jest bezpłatne.
PAUL Mansour,

6

Zunifikowany system plików już wygrał!

Wszystkie aplikacje na iOS * działają w ten sposób. Nie ma „plików”, nie ma systemu plików, nie ma zapisywania, tylko aplikacje zawierające dane, do których zawsze możesz wrócić, chyba że je usuniesz. Biorąc pod uwagę, że MacOS może kiedyś spaść na iOS, powiedziałbym, że model zdecydowanie się przyjął.

Strony internetowe również działają w ten sposób - rzadko zapisujesz dokument, rzadko przeglądasz zestaw dokumentów, a bardzo rzadko udostępniasz dokumenty między stronami. Dokumenty są osadzone w serwisie, sposób, w jaki pytania i odpowiedzi są osadzone w StackExchange.

Historycznie było kilka niezręcznych prób włamania się do systemu Windows i komputerów Mac, co zniechęciło ludzi do tego pomysłu. Ale zmiana na nową platformę, na której nikt nie oczekuje przeglądarki plików, pozwoliła firmom na pełne przejście.

(* Nie znam systemu Android ani innych systemów operacyjnych telefonu; może też tam.)


2
Istnieją jednak systemy plików (w dużej części) do oddzielania danych i interfejsów od programów i aplikacji. Po obu stronach są argumenty.
Kolejka Jé

2
@Alex, z wyjątkiem tego, że nie można udostępniać informacji między aplikacjami. Zapisanego pliku gry nie można otworzyć w edytorze tekstu w systemie iOS, ponieważ ta inna aplikacja nie ma dostępu do piaskownicy.
Stephen Furlani,

@ Stephen, to prawda i niezbędny aspekt eliminacji modelu mentalnego opartego na plikach. Jeśli chcesz przenosić dane między aplikacjami, musisz skorzystać z albo bezpośredniego udostępniania między aplikacjami („udostępnij to na Facebooku!”), Albo pośrednik może mówić (jak w schowku). Jestem zdezorientowany twoim „wyjątkiem”.
Alex Feinman

Możesz współdzielić informacje między aplikacjami - iOS obsługuje procedury obsługi plików, a także przekazuje informacje za pośrednictwem procedur obsługi adresów URL. Odbywa się to tylko na poziomie, w którym użytkownicy łączą dane między aplikacjami, nie będąc pośrednikiem w procesie przesyłania.
Kendall Helmstetter Gelner

1
@Alex, czekaj, więc używanie schowka (tymczasowego) pośrednika jest dopuszczalne, ale używanie wspólnego systemu plików (stałego) nie jest?
Stephen Furlani

1

Czy zamierzasz przechowywać ich dane w plikach lub w jakiejś bazie danych?

Jeśli oczekujesz, że będą mieli fizyczny dostęp do plików, będziesz musiał ich nauczyć, że twoje pliki są „specjalne”. W obecnym modelu mentalnym mogą kopiować, wklejać, zmieniać nazwy i usuwać. Jestem pewien, że niektórzy z nich już używają zmiany nazwy jako sposobu „wersji” swoich danych (np. Resume2010.doc, SalesDataFromBob2.xls).

Jeśli jest to baza danych, jestem pewien, że w pewnym momencie będą chcieli eksportować / importować pliki.


0

Czy posiadanie widocznej dla użytkownika opcji „zawsze zapisz” jest trudne do wdrożenia?


1
Nie, wcale nie jest trudno go wdrożyć. Ale czy to naprawdę dobry pomysł, aby utworzyć opcję i obsługiwać tutaj dwa modele? Nie wydaje mi się Myślę, że lepiej wybrać jeden i trzymać się go.
PAUL Mansour,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.