Che cosa significa "Human Readable"? È un termine improprio?


13

Mi vengono in mente due esempi:

  • Uno dei motivi per cui i programmatori .Net sono incoraggiati a utilizzare i file .config invece del registro di Windows è che i file .config sono XML e quindi leggibili dall'uomo.

  • Allo stesso modo, JSON è talvolta considerato leggibile dall'uomo rispetto a un formato proprietario.

I formati leggibili dall'uomo sono effettivamente leggibili dagli umani? Nell'esempio dei dati di configurazione:

  1. Il formato non cambia il significato sottostante delle informazioni - in entrambi i casi, i dati rappresentano la stessa cosa.
  2. Sia il registro che il file .config sono archiviati internamente come serie 0 e 1. In tale misura, la rappresentazione sottostante è ugualmente illeggibile per l'uomo.
  3. Sia il registro che il file .config richiedono uno strumento per leggere, formattare e visualizzare quegli 0 e 1 e convertirli in un formato che gli umani possano leggere. Nel caso della configurazione memorizzata nel registro di Windows, si tratta di un editor del registro. Nel caso di XML potrebbe essere un editor di testo o un lettore XML. In entrambi i casi, lo strumento rende i dati leggibili, non il formato dei dati.

Quindi, qual è la differenza tra formati di dati leggibili dall'uomo e formati non leggibili dall'uomo?


3
Dipende se la definizione di "umano" è limitata ai programmatori / ecc. O si applica a tutti gli umani (se quest'ultimo, quindi, quasi tutti i formati probabilmente non riescono a vari livelli).
Peter Boughton,

7
L'unico formato di serializzazione leggibile dall'uomo è YAML . XML mi fa venire voglia di distogliere lo sguardo.
NullUserException,

Risposte:


35

La lettura umana significa fondamentalmente che se il contenuto viene visualizzato da un programma privo di consapevolezza diretta e specifica del formato di quel file, c'è almeno una ragionevole possibilità che una persona possa leggerne e comprenderne almeno parte.

Il tuo punto di base sulla mancanza di una chiara linea di delimitazione è assolutamente corretto però - una volta ho conosciuto un ragazzo che poteva diagnosticare problemi con programmi (per lo più scritti in Fortran) spesso in cinque minuti o meno - passando solo da un ottale core dump, senza guardare affatto il codice sorgente. Per la maggior parte delle persone, quel formato difficilmente si qualificherebbe come "leggibile dall'uomo", ma ovviamente era un'eccezione ...


14
+1: Tutto è "leggibile dall'uomo" dato uno sforzo sufficiente. Il significato de facto di "leggibile dall'uomo" nei computer è: testo semplice, non strutturato o una struttura composta esclusivamente da caratteri testuali.
Allon Guralnek,

35

Human Readable significa che posso aprire la cosa nel Blocco note se voglio, e cambiare "password = pippo" in "password = barra" se lo desidero. Non devo usare uno strumento proprietario per guardare o modificare il contenuto.

Contrariamente a un PDF che non è possibile modificare con un semplice editor di testo, è necessario uno strumento specifico che conosca il formato. O un file binario .dat fornito con un'applicazione di 25 anni fa che non puoi leggere, modificare o comprendere.


Considereresti RTF leggibile dall'uomo?
Peter Boughton,

7
RTF è leggibile dal programmatore :-). L'ho modificato a mano ma non è stato piacevole. XML è sicuramente meno leggibile dall'uomo di JSON. Molto dipende da cosa sono abituati i tuoi umani - molti dei miei preferiscono .csv a XML, ma di sicuro no!
Kate Gregory,

3
Potrebbe non essere possibile modificare un file leggibile dall'uomo. Ho visto molti in cui i contenuti sono leggibili dall'uomo ma potrebbero avere un campo di spunta con, ad esempio, un valore di parametro esadecimale che non è facilmente calcolabile e basato sul contenuto del file. Questo valore viene utilizzato dall'applicazione per la convalida dei file.
uɐɪ

6
Buon punto @Ian - dal momento che stiamo discutendo la terminologia dovremmo distinguere tra leggibile e modificabile. Entrambe sono cose buone da essere, secondo me.
Kate Gregory,

Sostengo la tua affermazione che JSon è molto più modificabile (e leggibile) rispetto all'xml, se non altro perché le entità xml sono solo un tale dolore.
Matthieu M.,

10

In risposta alla tua domanda "I formati leggibili dall'uomo sono effettivamente leggibili dagli umani", per definizione sì, lo sono, questo è ciò che significa la lettura umana.

Non esiste una definizione tecnica di lettura umana, è soggettiva e potrebbero esserci domande su quale livello di conoscenza potrebbe essere necessario per qualificare l'essere umano (ad esempio, devono comprendere i principi basilari di XML come tag e gerarchie , dovrebbero comprendere il dominio commerciale in cui esistono i dati - personalmente direi di sì ad entrambi) ma il test di base dovrebbe essere se lo mostrassi a qualcuno con competenze tecniche di base che comprendesse le basi di ciò che i dati intendevano rappresentare , possono leggerlo.

A livello pratico ciò significa generalmente quanto segue:

1) I dati sono memorizzati come testo ASCII o in un altro formato simile e facilmente riconoscibile

2) Che esiste una struttura ragionevole che è evidente da un esame di base. Ad esempio, non devi sapere che i primi X caratteri si riferiscono a Y, quindi la X successiva si riferisce a Z

3) Che sia i dati che i metadati siano generalmente in inglese (o qualunque sia la tua lingua locale) e richiedano solo una conoscenza limitata del dominio problematico da comprendere - quindi un numero di fattura si troverebbe in un tag "fatturaNumero", piuttosto che " uDef_Inbr"

4) Per dati sensibili non testuali sono state utilizzate convenzioni prevedibili (ad esempio TRUE, FALSE, Y, N, 1, 0 anziché qualcosa di più aperto all'interpretazione)


5

I file .config sono molto più facili da modificare (per la maggior parte delle persone) rispetto al Registro. È più facile aprire un file di configurazione dedicato, trovare i dati rilevanti e apportare modifiche senza aprire la possibilità di modificare qualcosa che influirà su altri programmi.


5

Si tratta di facilità di comprensione (e probabilmente di cambiamento). Quindi "X è leggibile dall'uomo?" non si dovrebbe rispondere con un "sì" o un "no". Piuttosto, la risposta dovrebbe essere lungo una sorta di scala mobile.

Potenziali esempi:

  • Il 90% dei programmatori potrebbe leggere e modificare il file con qualsiasi editor di testo comune.
  • Il 60% dei madrelingua inglesi potrebbe leggere il file con qualsiasi editor di testo comune.
  • L'80% degli sviluppatori XYZ ha potuto leggere e modificare il file, ma utilizzando solo lo strumento ZYX.
  • Il 10% degli sviluppatori YZX potrebbe leggere e modificare questo file con un comune editor di testo.

Al di fuori di un contesto che spiega cosa significhi veramente "lettura umana", la frase non aiuta molto. (Qualcuno umano da qualche parte può probabilmente leggere uno qualsiasi dei formati, se non contate provando a guardare la polarità magnetica dei bit hardware stessi ...)


4

Una grande differenza tra formati leggibili dall'uomo e formati non leggibili dall'uomo è la robustezza. In un sistema Linux, ogni tipo di informazione sarà sparsa in vari file di testo. Devi imparare dove sono, ma puoi sempre trovare le informazioni, leggere e modificarle con un editor di testo. Se un file scompare, puoi generalmente sostituirlo. Se un file si corrompe, puoi spesso capire cosa dovrebbe essere e risolverlo.

In un sistema MS Windows, la maggior parte di questo sarà nel registro, che è, dal punto di vista degli utenti, un grande sistema opaco, accessibile in parte attraverso vari strumenti (molto simile ad alcuni file di configurazione nei sistemi Linux), e nel complesso con un editor di registro. Finché tutto va bene, va bene. Se si rompe, non c'è nulla che possa essere fatto senza conoscenze specialistiche.


1
Linux: "Devi imparare dove sono" vs Windows: "nulla che si possa fare senza conoscenze specialistiche". Direi (come utente di molti sistemi operativi distinti) che tutti richiedono conoscenze specialistiche. Sapere dove modificare il registro per risolvere un problema non è più (o meno) complesso che sapere quale file può essere modificato con vi su un sistema Linux o Solaris.
Bevan,

3

I controlli più semplici che riesco a pensare che si qualifichino come "leggibili dall'uomo" sono:

  • in un percorso / file facilmente accessibile da editor esterni (ciò renderebbe il registro non "leggibile dall'uomo")
  • non utilizza caratteri non visualizzabili nella struttura dei dati. Se creo un documento di Office 2000 Word con il testo "test" all'interno, potrei essere in grado di aprirlo nel blocco note e trovare i 4 caratteri "test" da qualche parte all'interno, ma ci saranno un sacco di altre cose intorno ad esso.
  • Sebbene non richiesti, i formati che contengono metadati descrittivi sono un vantaggio. Un file che contiene JohnSmith|34|T|Fè meno amichevole di <User><Name>JohnSmith</Name><id>34</id><isActive>T</isActive><isAdmin>F</isAdmin></User>, come sanno quali sono i campi (almeno in generale) nel 2 °.

2

Penso che potresti chiederti se "leggibile dall'uomo" come termine viene talvolta applicato in modo errato, e senza dubbio lo è. Nell'esempio delle voci di registro rispetto ai file .config, penso che ti aiuti a disporre l'XML in diversi modi a seconda dei dati, dei commenti intervallati e così via.

Le raccolte nei file .config sono generalmente gestite come elementi multipli, mentre è più difficile nel registro, spesso come MULTI_SZ.

Puoi anche vedere più dati di configurazione per un'applicazione contemporaneamente - con regedit, per vedere qualcosa che si trova in una chiave diversa devi navigare verso quella chiave, il che significa che non puoi più vedere le voci che stavi guardando in precedenza. Con i file .config, puoi vedere l'intero file contemporaneamente, anche se quel file può contenere dati gerarchici.


Il registro è entrambi. Ce ne sono alcuni che sono molto leggibili, altri che sono assolutamente incomprensibili per chiunque senza una conoscenza abbastanza specialistica.
Jon Hopkins,

È vero, e potresti dire che alcuni file .config sembrano incomprensibili. Nota che non stavo nemmeno pensando alle informazioni del registro COM, stavo pensando alle impostazioni dell'applicazione che sarebbero andate nel registro - un peer alle impostazioni che ottieni nei file .config. Non penso che nessuno intenda che le informazioni COM vengano lette dagli esseri umani.
Giovanni

2

Contrasto "leggibile dall'uomo" con binario. Ad esempio, in genere non è possibile aprire un eseguibile o un indice del database in un editor di testo vanilla e capire qual è il contenuto. I byte sotto i 32 decimali non hanno nemmeno rappresentazioni standard a livello globale come caratteri visibili.


1

Risposta breve: significa che le informazioni sono inserite come testo, piuttosto che binario o esadecimale, ecc. Qualcosa che equivale a un "linguaggio" leggibile piuttosto che a un "linguaggio macchina" del computer. Oltre a ciò, la definizione diventa oscura.


1

Si applica anche al codice: strutturi il tuo programma in modo logico e ponderato in modo tale che il lavoro di chiunque lo guardi per la prima volta sia reso un po 'più semplice.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.