Bei der Arbeit bin ich dafür verantwortlich, die Organisation einer Vielzahl unterschiedlicher Daten in einem Standard-Dateisystem aufrechtzuerhalten. Ein Teil davon ist eine sinnvolle Klassifizierung (nach Ähnlichkeit, Bedarf, Lese- / Schreibzugriff usw.), aber der größere Teil dokumentiert sie tatsächlich: Welche Dokumente / Dateien / Medien sollten wohin gehen, was sollte nicht in diesem Verzeichnis sein? "für etwas etwas anderes siehe ../../other-dir" usw.
Im Moment habe ich dies mit einer Klartextdatei readme
in jedem Verzeichnis dokumentiert, das ich dokumentieren möchte. Wenn jemand nicht sicher ist, was sich in einem Verzeichnis befinden soll, liest er diese Datei.
Dies funktioniert in Ordnung, aber es scheint seltsam, dass ich diese primitive benutzerdefinierte Lösung für ein Problem habe, das jeder Betreuer einer nicht trivialen Verzeichnisstruktur haben muss. Jedes Unternehmen, von dem ich weiß, verfügt beispielsweise über ein gemeinsames Dateisystem, in dem eine vereinbarte Terminologie für die Kategorisierung wichtig ist. Nach meiner Erfahrung müssen die Leute nur durch Ausprobieren und Experimentieren lernen, was was ist.
Erlauben Sie mir also, eine bessere Lösung vorzuschlagen, und hoffentlich können Sie mir sagen, ob es eine gibt. Jedes Verzeichnis in einem beliebigen Dateisystem kann eine versteckte Klartextdatei mit dem Namen haben .readme
. Sein Inhalt ist beschreibende menschliche Sprache. Es werden Markups wie Markdown verwendet, mit kaum mehr als fetten, kursiven und (relativen) Hyperlinks zu anderen Verzeichnissen. Jetzt sucht ein entsprechend aktivierter Dateibrowser nach einer Datei mit dem Namen, .readme
wenn ein Verzeichnis angezeigt wird . Wenn es vorhanden ist, wird sein Inhalt analysiert und in einem unauffälligen Bereich in der Nähe des Verzeichnispfad-Widgets angezeigt. Alle darin enthaltenen Links können angeklickt werden, und der Benutzer wird in das Zielverzeichnis dieses Links weitergeleitet.
Ich denke, dass sich der Aufwand für die Implementierung eines solchen Standards um ein Vielfaches in Bezug auf die Benutzerfreundlichkeit auszahlen würde. Wir hätten beispielsweise Plugins für Nautilus, Konqueror usw. Es könnte verwendet werden, um Verzeichnisinformationen in den Standard-Dateilisten anzuzeigen, die von Webservern bereitgestellt werden. Und so weiter.
Frage: Gibt es so etwas? Wenn nicht, warum nicht? Denken die Leute, dass es eine lohnende Idee ist?
quelle
Antworten:
Soweit ich weiß, gibt es keinen Standard. Hier sind einige Ideen aus meiner Erfahrung.
Richten Sie es ein, ändern Sie es nie
Hier scheitern die meisten Unternehmen. Nichts ist schlimmer als eine sich ständig ändernde Dateisystemstruktur. Wenn es nicht möglich ist, es konstant zu halten, ist ein reines Dateisystem genau der falsche Container, um Ihre Informationen zu organisieren. Verwenden Sie eine Datenbank oder ein Content Management System.
Verwenden Sie beschreibende und konsistente Verzeichnisnamen
Niemand hat die Zeit, eine
.filing
Datei oder etwas anderes zu lesen . Wenn Ihre Verzeichnisnamen nicht selbsterklärend sind, sind Sie wahrscheinlich trotzdem verloren.Schreiben Sie eine Dokumentation für Ihre Verzeichnisstruktur
Schreiben Sie ein Dokument, in dem Sie die Rolle jedes Verzeichnisses erläutern. Nennen Sie viele Beispiele. Stellen Sie es jedem zur Verfügung, der mit Ihrer Struktur arbeiten muss, aber glauben Sie nicht, dass jemand es lesen wird. Es sollte für Sie eher wie eine Bibel sein. Es ist nicht einfach, ein Beispiel für ein solches Dokument zu finden, da Unternehmen sie offensichtlich nicht veröffentlichen. Ein Beispiel für Open Source-Software ist der Filesystem Hierarchy Standard .
Wenn dies etwas negativ klingt, ist es. Ich habe noch nie ein nicht triviales Repository gesehen, das auf einem Dateisystem basiert und in dem in der Praxis auf lange Sicht mehr als fünf Benutzer arbeiten. Das Problem ist, dass die Kategorien, unabhängig davon, welche Kategorien Sie einrichten, völlig unterschiedliche Vorstellungen haben. Um Ihre Fragen endlich zu beantworten:
Gibt es so etwas?
Nein, das glaube ich nicht.
Wenn nicht, warum nicht?
Meiner Meinung nach: Für eine kleine statische Hierarchie mit wenigen Benutzern ist es übertrieben. Bei einer sich stark ändernden Hierarchie mit vielen Benutzern funktioniert dies nicht, da die Idee von Kategorien (= Verzeichnisse, Ordner) nicht skaliert werden kann.
Denken die Leute, dass es eine lohnende Idee ist?
Hm, das ist eine interessante Idee. Um zu sehen, ob die Leute es benutzen, muss es jemand implementieren. Anstelle einer
.filing
Datei können Sie diese Informationen auch in einem alternativen Datenstrom speichern (ja, Ordner können auch ADS enthalten). Sie können erweiterte Attribute unter Linux und OSX verwenden. Das größte Problem wäre wahrscheinlich, die Dateibrowser zu patchen.quelle
.filing
Datei können Sie diese Informationen in einem alternativen Datenstrom speichern (ja, Ordner können auch ADS enthalten). Sie können erweiterte Attribute unter Linux und OSX verwenden." Möglich, stelle ich mir vor, verringert aber die Portabilität und Transparenz, die ich für so wichtig halte. Was ist, wenn ich alles in ein Git-Repo legen möchte? Klartextdateien werden für die verzeichnisspezifische Konfiguration verwendet (z. B. htaccess). Warum also nicht auch die Dokumentation?Wasabi ist einen Versuch wert. In Ihrem Projektstamm dient die Nur-Text-Quelle als solide Projektübersicht, und Sie können dasselbe Dokument in einen Browser werfen, um bessere Ergebnisse zu erzielen.
Zugegeben, es ist keine Dateisystem-basierte Lösung, aber bis alle Dateisysteme etwas Gemeinsames unterstützen, könnte Wasabi (oder Ihre eigene Implementierung) die beste Option sein.
quelle
Ihre Idee hat einige Vorzüge, aber ich befürchte, wenn Sie so etwas brauchen, bedeutet das wirklich, dass Sie etwas strukturierteres brauchen. Dh ein CMS, vielleicht nur ein leichtes, aber definitiv etwas mehr als nur eine Textdatei.
Insbesondere, wenn Sie das Schreiben (oder sogar den Zugriff) bestimmter Dokumente (und damit der darin enthaltenen Ordner) auf eine Teilmenge Ihrer Benutzerbasis beschränken möchten.
Sie geben Ihr Betriebssystem nicht an, aber es gibt ausgezeichnete (und kostenlose) Produkte wie Alfresco , die Ihnen möglicherweise besser dienen könnten als Ihr aktuelles Setup.
quelle
Hier ist eine Idee. Schreiben Sie ein Skript, das dem Benutzer verschiedene Fragen zur Datei stellt und / oder den Dateiinhalt selbst abgleichen und dann den Speicherort für die Datei empfiehlt oder sie selbst dort ablegt. Das Skript kann so einfach oder so komplex sein, wie Sie es möchten.
Das Skript fungiert als Dateiverwaltungssystem, Entscheidungsunterstützungssystem und als lebendige Dokumentation der Dateisystemhierarchie. Der Linux Filesystem Hierarchy Standard ist ein Mythos, wenn man darüber nachdenkt, da es sehr große Unterschiede zwischen den Distributionen gibt. Die meisten Linux / Unix-Benutzer müssen sich jedoch nicht selbst mit der Dateisystemhierarchie vertraut machen, da verschiedene im System installierte Software vorhanden ist, die die Hierarchie auf standardisierte Weise verwaltet (Paketmanager, Konfigurationstool usw.). Verschiedene Anwendungsframeworks erstellen auch Skripts zum Verwalten ihrer Verzeichnisse, z. B. verfügt django über Verwaltungsbefehle zum Erstellen eines neuen Projekts oder eines neuen App-Moduls oder von Squash-Migrationsdateien usw.
Dies hat den zusätzlichen Vorteil, dass das Skript verschiedene Symlinks erstellen kann, wenn die Datei auf mehrere Arten gesucht werden muss, z. B. einen Index, der auf dem Autor der Datei oder dem Erstellungsdatum oder einer beliebigen Geschäftsregel basiert. Sie können das Taggen mit Symlinks simulieren. Ein Tag ist einfach ein Symlink aus einem
tags
Verzeichnis,tags/mytag/myfile
kann also ein Symlink zu seinactual/myfile
.Darüber hinaus ist es auch möglich, die Hierarchiestruktur des Dateisystems zu ändern, ohne die Benutzeroberfläche zu ändern.
Ein Dateisystem ist eine Datenbank. Keine relationale Datenbank, sondern eine hierarchische Datenbank. Stellen Sie sich das wie das Verwalten einer Datenbank vor. Sie möchten nicht, dass die Benutzer die relationale Struktur lernen müssen, sondern dass die Anwendung dem Benutzer verschiedene Aufgaben aufzeigt, die er ausführen muss (z. B. erledigen Sie eine monatliche Aufgabe) XYZ-Bericht, großartig, legen Sie ihn dann in diesem Ordner ab und erstellen Sie diesen Symlink. Anschließend müssen Sie eine andere Datei ändern, um aufzuzeichnen, dass Sie den Bericht für diesen Monat erstellt haben usw.).
quelle