Was bedeutet "Menschenlesbar"? Ist es eine falsche Bezeichnung?

13

Zwei Beispiele fallen mir ein:

  • Einer der Gründe, warum .Net-Programmierer aufgefordert werden, .config-Dateien anstelle der Windows-Registrierung zu verwenden, ist, dass .config-Dateien XML sind und daher von Menschen gelesen werden können.

  • In ähnlicher Weise wird JSON im Vergleich zu einem proprietären Format manchmal als lesbar angesehen.

Sind für Menschen lesbare Formate tatsächlich lesbar? Im Beispiel der Konfigurationsdaten:

  1. Das Format ändert nicht die zugrunde liegende Bedeutung der Informationen - in beiden Fällen stellen die Daten dasselbe dar.
  2. Sowohl die Registrierung als auch die CONFIG-Datei werden intern als Serien 0s und 1s gespeichert. Insofern ist die zugrunde liegende Darstellung auch für den Menschen nicht lesbar.
  3. Sowohl die Registrierung als auch die CONFIG-Datei erfordern ein Tool zum Lesen, Formatieren und Anzeigen dieser Nullen und Einsen und zum Konvertieren in ein Format, das von Menschen gelesen werden kann. Bei der in der Windows-Registrierung gespeicherten Konfiguration handelt es sich um einen Registrierungseditor. Bei XML kann es sich um einen Texteditor oder einen XML-Reader handeln. In beiden Fällen macht das Tool die Daten lesbar, nicht das Datenformat.

Was ist der Unterschied zwischen für Menschen lesbaren Datenformaten und nicht für Menschen lesbaren Formaten?

Kramii
quelle
3
Kommt darauf an, ob die Definition von "Mensch" auf Programmierer / etc beschränkt ist oder für alle Menschen gilt (wenn letztere, dann scheitern wahrscheinlich fast alle Formate in unterschiedlichem Maße).
Peter Boughton
7
Das einzige für Menschen lesbare Serialisierungsformat ist YAML . XML bringt mich dazu, mir die Augen ausstechen zu wollen.
NullUserException

Antworten:

35

Menschenlesbar bedeutet im Grunde, dass, wenn der Inhalt von einem Programm angezeigt wird, dem das Format dieser Datei direkt und spezifisch nicht bekannt ist, zumindest eine vernünftige Wahrscheinlichkeit besteht, dass eine Person zumindest einen Teil davon lesen und verstehen kann.

Ihre grundsätzliche Bemerkung über das Fehlen einer klaren Abgrenzung ist jedoch absolut richtig - einmal kannte ich einen Mann, der Probleme mit Programmen (meistens in Fortran geschrieben) oft in fünf Minuten oder weniger diagnostizieren konnte - und zwar nur von einem Oktal aus Core-Dump, ohne den Quellcode überhaupt zu betrachten. Für die meisten Leute würde dieses Format kaum als "lesbar für Menschen" gelten, aber offensichtlich war er eine Ausnahme ...

Jerry Sarg
quelle
14
+1: Bei ausreichendem Aufwand ist alles "lesbar". Die De-facto-Bedeutung von "vom Menschen lesbar" in Computern ist: Klartext, unstrukturiert oder eine Struktur, die ausschließlich aus Textzeichen besteht.
Allon Guralnek
35

Menschenlesbar bedeutet, dass ich das Objekt in Notepad öffnen kann, wenn ich möchte, und "password = foo" in "password = bar" ändern kann, wenn ich dies wünsche. Ich muss kein proprietäres Tool verwenden, um den Inhalt anzuzeigen oder zu bearbeiten.

Im Gegensatz zu einer PDF-Datei, die Sie nicht mit einem einfachen Texteditor bearbeiten können, benötigen Sie ein spezielles Tool, das das Format kennt. Oder eine binäre DAT-Datei, die vor 25 Jahren mit einer Anwendung geliefert wurde, die Sie nicht lesen, bearbeiten oder verstehen können.

Kate Gregory
quelle
Würden Sie RTF für lesbar halten?
Peter Boughton
7
RTF ist vom Programmierer lesbar :-). Ich habe es von Hand bearbeitet, aber es war nicht angenehm. XML ist sicherlich weniger lesbar als JSON. Viel hängt davon ab, an was Ihre Menschen gewöhnt sind - viele von mir bevorzugen .csv gegenüber XML, aber ich bin mir sicher, dass dies nicht der Fall ist!
Kate Gregory
3
Möglicherweise können Sie keine lesbaren Dateien bearbeiten. Ich habe viele gesehen, bei denen der Inhalt für Menschen lesbar ist, aber sie haben möglicherweise ein Kontrollfeld mit einem Hex-Parameterwert, der nicht einfach zu berechnen ist und auf dem Dateiinhalt basiert. Dieser Wert wird von der Anwendung zur Dateiüberprüfung verwendet.
uɐɪ
6
Guter Punkt @Ian - da wir die Terminologie diskutieren, sollten wir zwischen lesbar und editierbar unterscheiden. Beides ist meiner Meinung nach gut.
Kate Gregory
Ich unterstütze Ihre Behauptung, dass JSon viel besser von Menschen bearbeitet (und gelesen) werden kann als xml, schon allein deshalb, weil xml-Entities so schmerzhaft sind.
Matthieu M.
10

In Beantwortung Ihrer Frage "Sind von Menschen lesbare Formate tatsächlich von Menschen lesbar?" Bedeutet dies laut Definition "von Menschen lesbar".

Es gibt keine technische Definition von lesbar für Menschen, sie ist subjektiv und es kann Fragen darüber geben, welchen Wissensstand der Mensch benötigen muss, um sich zu qualifizieren (zum Beispiel, um die Grundprinzipien von XML wie Tags und Hierarchien zu verstehen Sollten sie den Geschäftsbereich verstehen, in dem sich die Daten befinden - persönlich würde ich beidem zustimmen), aber Ihr grundlegender Test sollte sein, wenn ich ihn jemandem mit grundlegenden technischen Kenntnissen zeigte, der die Grundlagen dafür verstand, wie die Daten sie darstellen sollten können sie es lesen.

In der Praxis bedeutet dies im Allgemeinen Folgendes:

1) Die Daten werden als ASCII-Text oder in einem anderen, ähnlich gebräuchlichen und leicht erkennbaren Format gespeichert

2) Dass es eine vernünftige Struktur gibt, die sich aus einer Grundprüfung ergibt. Zum Beispiel müssen Sie nicht wissen, dass sich die ersten X-Zeichen auf Y und die nächsten X-Zeichen auf Z beziehen

3) Sowohl die Daten als auch die Metadaten sind in der Regel in englischer Sprache (oder in einer beliebigen Landessprache) und erfordern nur begrenzte Kenntnisse der Problemdomäne, um verstanden zu werden. uDef_Inbr "

4) Für Nicht-Textdaten wurden sinnvolle, vorhersehbare Konventionen verwendet (zum Beispiel WAHR, FALSCH, J, N, 1, 0 und nicht etwas, das für die Interpretation offener ist).

Jon Hopkins
quelle
5

CONFIG-Dateien lassen sich (für die meisten Benutzer) viel einfacher bearbeiten als die Registrierung. Es ist einfacher, eine dedizierte Konfigurationsdatei zu öffnen, die relevanten Daten zu finden und Änderungen vorzunehmen, ohne die Möglichkeit zu haben, etwas zu bearbeiten, das sich auf andere Programme auswirkt.

Bruce Alderman
quelle
5

Es geht nur um das Verständnis (und wahrscheinlich um Veränderungen). Also "Ist X für Menschen lesbar?" sollte nicht mit "Ja" oder "Nein" beantwortet werden. Vielmehr sollte die Antwort auf einer Art Skala liegen.

Mögliche Beispiele:

  • 90% der Programmierer konnten die Datei mit jedem gängigen Texteditor lesen und ändern.
  • 60% der englischsprachigen Benutzer konnten die Datei mit jedem gängigen Texteditor lesen.
  • 80% der XYZ-Entwickler konnten die Datei lesen und ändern, jedoch nur mit dem Tool ZYX.
  • 10% der YZX-Entwickler konnten diese Datei mit einem gängigen Texteditor lesen und ändern.

Abgesehen von einem Kontext, der erklärt, was "menschlich lesbar" wirklich bedeutet, hilft der Satz nicht viel. (Einige Menschen können wahrscheinlich irgendwo eines der Formate lesen, wenn Sie nicht damit rechnen, die magnetische Polarität der Hardware-Bits selbst zu prüfen ...)

John Fisher
quelle
4

Ein großer Unterschied zwischen für Menschen lesbaren Formaten und nicht für Menschen lesbaren Formaten ist die Robustheit. In einem Linux-System werden alle Arten von Informationen in verschiedenen Textdateien verteilt. Sie müssen zwar wissen, wo sie sich befinden, können die Informationen jedoch jederzeit finden und mit einem Texteditor lesen und ändern. Wenn eine Datei verschwindet, können Sie sie im Allgemeinen ersetzen. Wenn eine Datei beschädigt wird, können Sie häufig herausfinden, wie sie aussehen soll, und sie reparieren.

In einem MS Windows-System befindet sich der größte Teil davon in der Registrierung. Dies ist aus Sicht der Benutzer ein einziges großes undurchsichtiges System, auf das teilweise über verschiedene Tools (ähnlich wie bei einigen Konfigurationsdateien in Linux-Systemen) und insgesamt zugegriffen werden kann mit einem Registrierungseditor. Solange alles gut geht, ist das okay. Wenn es kaputt geht, geht nichts ohne Fachwissen.

David Thornley
quelle
1
Linux: "Sie müssen lernen, wo sie sind" im Vergleich zu Windows: "Ohne Fachkenntnisse geht nichts". Ich würde behaupten (als Benutzer vieler unterschiedlicher Betriebssysteme), dass sie alle Fachkenntnisse benötigen. Zu wissen, wo die Registrierung zur Behebung eines Problems angepasst werden muss, ist nicht komplizierter (oder weniger) als zu wissen, welche Datei mit vi auf einem Linux- oder Solaris-System bearbeitet werden kann.
Bevan
3

Die einfachsten Überprüfungen, die ich als "lesbar" bezeichnen kann, sind:

  • an einem Ort / in einer Datei, auf die externe Redakteure problemlos zugreifen können (dies würde die Registrierung nicht "lesbar" machen)
  • verwendet keine nicht anzeigbaren Zeichen in der Datenstruktur. Wenn ich ein Office 2000-Word-Dokument mit dem Text "test" öffne, kann ich das möglicherweise im Editor öffnen und die 4 Zeichen "test" irgendwo darin finden, aber es wird eine ganze Menge anderer Dinge drum herum geben.
  • Formate, die beschreibende Metadaten enthalten, sind zwar nicht erforderlich, aber von Vorteil. Eine Datei, die enthält, JohnSmith|34|T|Fist weniger freundlich als <User><Name>JohnSmith</Name><id>34</id><isActive>T</isActive><isAdmin>F</isAdmin></User>, wie die Felder (zumindest allgemein) im 2. sind.
Jason Viers
quelle
2

Ich denke, Sie fragen sich vielleicht, ob der Begriff "lesbar" manchmal falsch angewendet wird, und das ist es zweifellos. Im Beispiel von Registrierungseinträgen im Vergleich zu .config-Dateien ist es meines Erachtens hilfreich, dass Sie das XML je nach Daten, eingestreuten Kommentaren usw. auf unterschiedliche Weise anordnen können.

Sammlungen in .config-Dateien werden im Allgemeinen als mehrere Elemente behandelt, während es in der Registrierung schwieriger ist, häufig als MULTI_SZ.

Sie können auch mehr Konfigurationsdaten für eine Anwendung auf einmal anzeigen. Mit regedit müssen Sie zu diesem Schlüssel navigieren, um etwas zu sehen, das sich in einem anderen Schlüssel befindet. Das bedeutet, dass Sie die zuvor betrachteten Einträge nicht mehr sehen können. Mit .config-Dateien können Sie die gesamte Datei auf einmal sehen, obwohl diese Datei möglicherweise hierarchische Daten enthält.

JohnL
quelle
Die Registrierung ist beides. Es gibt Teile davon, die sehr gut lesbar sind, andere, die für niemanden ohne besondere Fachkenntnisse völlig verwirrend sind.
Jon Hopkins
Stimmt, und man könnte sagen, dass einige .config-Dateien wie Kauderwelsch aussehen. Beachten Sie, dass ich nicht einmal an COM-Registrierungsinformationen gedacht habe, sondern an Anwendungseinstellungen, die in die Registrierung aufgenommen werden - ein Vergleich zu den Einstellungen, die Sie in .config-Dateien erhalten. Ich glaube nicht, dass jemand beabsichtigt, dass COM-Informationen von Menschen gelesen werden.
JohnL
2

Kontrast "lesbar" mit binär. Beispielsweise können Sie eine ausführbare Datei oder einen Datenbankindex im Allgemeinen nicht in einem Vanille-Texteditor öffnen und den Inhalt verstehen. Die Bytes unter Dezimal 32 haben nicht einmal globale Standarddarstellungen als sichtbare Zeichen.

Charles E. Grant
quelle
1

Kurze Antwort: Dies bedeutet, dass die Informationen als Text und nicht als Binär- oder Hexadezimalzahl usw. eingegeben werden. Dies entspricht eher einer lesbaren "Sprache" als einer Computer- "Maschinensprache". Darüber hinaus wird die Definition trübe.

Skatterbrainz
quelle
1

Dies gilt auch für Code: Sie strukturieren Ihr Programm logisch und durchdacht, sodass die Arbeit derjenigen, die es zum ersten Mal betrachten, etwas erleichtert wird.

dodgy_coder
quelle