Che cosa significa "leggibile dall'uomo"? È un termine improprio?

13

Mi vengono in mente due esempi:

  • Una delle ragioni per cui i programmatori .Net sono incoraggiati ad usare i file .config invece del registro di Windows è che i file .config sono XML e quindi leggibili dall'uomo.

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

I formati leggibili dall'uomo sono 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 memorizzati internamente come serie 0 e 1. In tal senso, la rappresentazione sottostante è ugualmente illeggibile dagli esseri umani.
  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 leggibile dagli umani. Nel caso della configurazione memorizzata nel registro di Windows, questo è 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?

    
posta Kramii 05.11.2010 - 15:38
fonte

11 risposte

35

L'umano leggibile significa fondamentalmente che se il contenuto viene visualizzato da un programma che manca della consapevolezza diretta e specifica del formato di quel file, c'è almeno una ragionevole possibilità che una persona possa leggerne e comprenderne almeno parte.

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

    
risposta data 05.11.2010 - 16:09
fonte
35

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

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

    
risposta data 05.11.2010 - 15:45
fonte
10

In risposta alla tua domanda "I formati leggibili dall'uomo sono effettivamente leggibili dagli umani", per definizione si, lo sono, questo è ciò che significa "umano leggibile".

Non esiste una definizione tecnica di leggibilità umana, è soggettiva e potrebbero esserci domande su quale livello di conoscenza l'umano potrebbe aver bisogno di qualificare (ad esempio, hanno bisogno di capire i principi basilari di XML come tag e gerarchie, dovrebbero capire il dominio aziendale in cui i dati esistono - personalmente direi di sì ad entrambi) ma il test di base dovrebbe essere se lo mostrassi a qualcuno con competenze tecniche di base che capiscono le basi di ciò che i dati erano destinati per rappresentarlo, possono leggerlo.

A livello pratico questo generalmente significa quanto segue:

1) I dati vengono memorizzati come testo ASCII o in qualche altro formato simile comune e facilmente riconoscibile

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

3) Che sia i dati che i metadati generalmente sono in inglese (o qualunque sia la tua lingua locale) e richiedono solo una conoscenza limitata del dominio problematico per capire - quindi un numero di fattura sarebbe in un tag "invoiceNumber", piuttosto che "uDef_Inbr"

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

    
risposta data 05.11.2010 - 16:22
fonte
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.

    
risposta data 05.11.2010 - 15:44
fonte
5

È tutta una questione di facilità di comprensione (e probabilmente di cambiamenti). Quindi "X è leggibile?" non si dovrebbe rispondere con un "sì" o un "no". Piuttosto, la risposta dovrebbe essere in una sorta di scala mobile.

Esempi potenziali:

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

Al di fuori di un contesto che spiega cosa significa "leggibile" in realtà, la frase non aiuta molto. (Qualche essere umano da qualche parte può probabilmente leggere qualsiasi formato, se non si conta di cercare di guardare la polarità magnetica dei bit hardware stessi ...)

    
risposta data 05.11.2010 - 16:31
fonte
4

Una grande differenza tra formati leggibili dall'uomo e formati non leggibili dall'uomo è la robustezza. In un sistema Linux, tutti i tipi di informazioni saranno sparsi in vari file di testo. Hai bisogno di sapere dove sono, ma puoi sempre trovare le informazioni e leggere e modificarle con un editor di testo. Se un file scompare, puoi generalmente sostituirlo. Se un file viene danneggiato, puoi spesso capire che cosa dovrebbe essere e correggerlo.

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 (proprio come alcuni file di configurazione nei sistemi Linux) e in generale con un editor di registro. Finché tutto va bene, va bene. Se si rompe, non c'è nulla che possa essere fatto senza conoscenze specialistiche.

    
risposta data 05.11.2010 - 18:44
fonte
3

I controlli più facili a cui posso pensare che siano "leggibili" sono:

  • in una posizione / file facilmente accessibili da editor esterni (ciò renderebbe il registro non "leggibile")
  • non utilizza caratteri non visualizzabili nella struttura dati. Se creo un documento Office 2000 Word con il testo "test" all'interno, potrei essere in grado di aprirlo nel blocco note e trovare il "test" di 4 caratteri da qualche parte all'interno, ma ci saranno un sacco di altre cose intorno ad esso. / li>
  • Anche se non richiesto, 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 sapere quali sono i campi (almeno in generale) nel 2 °.
risposta data 05.11.2010 - 15:53
fonte
2

Penso che potresti chiederti se "leggibile" come talvolta viene applicato in modo errato, e senza dubbio lo è. Nell'esempio di voci di registro vs file .config, penso che sia utile organizzare l'XML in modi diversi a seconda dei dati, dei commenti interspesi e così via.

Le raccolte nei file .config vengono generalmente gestite come più elementi, 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 eri precedentemente guardando. Con i file .config, puoi vedere l'intero file in una sola volta, anche se quel file può contenere dati gerarchici.

    
risposta data 05.11.2010 - 15:46
fonte
2

Contrasto "leggibile dall'uomo" con binario. Ad esempio, in genere non è possibile aprire un file eseguibile o un indice di database in un editor di testo in chiaro e capire quale sia il contenuto. I byte al di sotto dei decimali 32 non hanno nemmeno rappresentazioni standard globali come caratteri visibili.

    
risposta data 05.11.2010 - 17:43
fonte
1

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

    
risposta data 05.11.2010 - 17:58
fonte
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ù facile.

    
risposta data 05.10.2011 - 02:28
fonte

Leggi altre domande sui tag