¿Qué significa "legible para humanos"? ¿Es un nombre inapropiado?

13

Dos ejemplos vienen a la mente:

  • Una de las razones por las que se recomienda a los programadores de .Net que usen archivos .config en lugar del Registro de Windows es que los archivos .config son XML y, por lo tanto, legibles para los humanos.

  • De manera similar, JSON a veces se considera legible para los humanos en comparación con un formato propietario.

¿Los formatos legibles por humanos son realmente legibles por humanos? En el ejemplo de datos de configuración:

  1. El formato no cambia el significado subyacente de la información; en ambos casos, los datos representan lo mismo.
  2. Tanto el archivo de registro como el archivo .config se almacenan internamente como series 0s y 1s. En ese sentido, la representación subyacente es igualmente ilegible para los humanos.
  3. Tanto el archivo de registro como el archivo .config requieren una herramienta para leer, formatear y mostrar esos 0 y 1 y convertirlos a un formato que los humanos puedan leer. En el caso de la configuración almacenada en el Registro de Windows, este es un Editor del Registro. En el caso de XML podría ser un editor de texto o un lector XML. De cualquier manera, la herramienta hace que los datos sean legibles, no el formato de los datos.

Entonces, ¿cuál es la diferencia entre los formatos de datos legibles por humanos y los formatos no legibles por humanos?

    
pregunta Kramii 05.11.2010 - 15:38

11 respuestas

35

Básicamente, legible para el ser humano significa que si el contenido se muestra en un programa que carece de un conocimiento directo y específico del formato de ese archivo, hay al menos una posibilidad razonable de que una persona pueda leer y comprender al menos parte de él.

Su punto básico acerca de la falta de una línea clara de delineación es absolutamente correcto, aunque en un momento conocí a un tipo que podía diagnosticar problemas con programas (en su mayoría escritos en Fortran) a menudo en cinco minutos o menos, solo va de un volcado de núcleo octal, sin mirar el código fuente en absoluto. Para la mayoría de las personas, ese formato difícilmente podría calificarse de "legible para humanos", pero obviamente fue una excepción ...

    
respondido por el Jerry Coffin 05.11.2010 - 16:09
35

Human Legible significa que puedo abrir la cosa en el Bloc de notas si quiero, y cambiar "password = foo" a "password = bar" si así lo deseo. No tengo que usar una herramienta patentada para ver o editar el contenido.

Contraste con un PDF que no puede editar con un editor de texto simple: necesita una herramienta específica que conozca el formato. O un archivo .dat binario que vino con alguna aplicación de hace 25 años que no puede leer, editar o entender.

    
respondido por el Kate Gregory 05.11.2010 - 15:45
10

En respuesta a su pregunta "¿Son los formatos legibles por los humanos los que los humanos pueden leer?", por definición, sí lo son, eso es lo que significa legible por los humanos.

No hay una definición técnica de legible para humanos, es subjetiva y podría haber preguntas sobre qué nivel de conocimiento podría necesitar el humano para calificar (por ejemplo, si necesitan entender los principios básicos de XML, como etiquetas y jerarquías, si entienden el dominio de negocios en el que se encuentran los datos (personalmente diría que sí a ambos), pero su prueba básica debería ser si se la mostré a alguien con habilidades técnicas básicas que entendió los conceptos básicos de lo que significaban los datos para representarlo, pueden leerlo.

En un nivel práctico, esto generalmente significa lo siguiente:

1) Los datos se almacenan como texto ASCII o algún otro formato similar y fácilmente reconocible

2) Que hay una estructura razonable que es evidente a partir de un examen básico. Por ejemplo, no tiene que saber que los primeros X caracteres relacionados con Y, luego los siguientes X se relacionan con Z

3) Que tanto los datos como los metadatos están generalmente en inglés (o cualquiera que sea su idioma local) y requieren un conocimiento limitado del dominio del problema para comprenderlos, por lo que un número de factura estaría en una etiqueta de "número de factura", en lugar de "uDef_Inbr"

4) Para datos no textuales, se han utilizado convenciones previsibles (por ejemplo, TRUE, FALSE, Y, N, 1, 0 en lugar de algo más abierto a la interpretación)

    
respondido por el Jon Hopkins 05.11.2010 - 16:22
5
Los archivos

.config son mucho más fáciles de editar (para la mayoría de las personas) que el Registro. Es más fácil abrir un archivo de configuración dedicado, encontrar los datos relevantes y realizar cambios sin abrir la posibilidad de editar algo que afectará a otros programas.

    
respondido por el Bruce Alderman 05.11.2010 - 15:44
5

Se trata de la facilidad de comprensión (y probablemente de cambio). Así que "es X legible para humanos?" No debe responderse con un "sí" o un "no". Más bien, la respuesta debería estar a lo largo de algún tipo de escala móvil.

Ejemplos de potencial:

  • El 90% de los programadores podrían leer y cambiar el archivo con cualquier editor de texto común.
  • El 60% de los hablantes de inglés podrían leer el archivo con cualquier editor de texto común.
  • El 80% de los desarrolladores de XYZ podrían leer y cambiar el archivo, pero solo con la herramienta ZYX.
  • el 10% de los desarrolladores de YZX podrían leer y cambiar este archivo con un editor de texto común.

Fuera de un contexto que explica lo que realmente significa "legible para humanos", la frase no ayuda mucho. (Es probable que algún humano en algún lugar pueda leer cualquiera de los formatos, si no cuenta tratando de ver la polaridad magnética de los bits de hardware en sí ...)

    
respondido por el John Fisher 05.11.2010 - 16:31
4

Una gran diferencia entre los formatos legibles por humanos y los formatos no legibles por humanos es la robustez. En un sistema Linux, todo tipo de información se dispersará en varios archivos de texto. Es necesario que aprendas dónde están, pero siempre puedes encontrar la información y leerla y cambiarla con un editor de texto. Si un archivo desaparece, generalmente puede reemplazarlo. Si un archivo se corrompe, a menudo puede averiguar qué debería ser y repararlo.

En un sistema MS Windows, la mayor parte de esto estará en el Registro, que es, desde el punto de vista de los usuarios, un gran sistema opaco, accesible en parte a través de varias herramientas (como algunos archivos de configuración en sistemas Linux) , y en general con un editor de registro. Mientras todo salga bien, esto está bien. Si se rompe, no hay nada que se pueda hacer sin el conocimiento especializado.

    
respondido por el David Thornley 05.11.2010 - 18:44
3

Los controles más fáciles que se me ocurren que califican como "legibles para humanos" son:

  • en una ubicación / archivo al que puedan acceder fácilmente editores externos (esto haría que el registro no sea "legible para los humanos")
  • no usa caracteres que no se pueden mostrar en la estructura de datos. Si hago un documento de Office 2000 Word con el texto "test" dentro, podría abrirlo en el bloc de notas y encontrar el "test" de 4 caracteres en algún lugar del interior, pero habrá muchas otras cosas a su alrededor.
  • Si bien no es obligatorio, los formatos que contienen metadatos descriptivos son una ventaja. Un archivo que contiene JohnSmith|34|T|F es menos amigable que <User><Name>JohnSmith</Name><id>34</id><isActive>T</isActive><isAdmin>F</isAdmin></User> , ya que sabe cuáles son los campos (al menos en general) en el segundo.
respondido por el Jason Viers 05.11.2010 - 15:53
2

Creo que es posible que se esté preguntando si el término "legible para humanos" como un término a veces se aplica incorrectamente, y sin duda lo es. En el ejemplo de las entradas de registro frente a los archivos .config, creo que es útil que pueda organizar el XML de diferentes formas según los datos, los comentarios entremezclados, etc.

Las colecciones en archivos .config generalmente se manejan como múltiples elementos, mientras que es más difícil en el registro, a menudo como un MULTI_SZ.

También puede ver más datos de configuración de una aplicación a la vez: con regedit, para ver algo que se encuentra en una clave diferente, necesita navegar hacia esa clave, lo que significa que ya no puede ver las entradas que estaba anteriormente. mirando a. Con los archivos .config, puede ver todo el archivo a la vez, aunque ese archivo pueda contener datos jerárquicos.

    
respondido por el JohnL 05.11.2010 - 15:46
2

Contraste "legible por humanos" con binario. Por ejemplo, generalmente no puede abrir un archivo ejecutable o un índice de base de datos en un editor de texto de vainilla y entender qué es el contenido. Los bytes debajo del decimal 32 ni siquiera tienen representaciones estándar globales como caracteres visibles.

    
respondido por el Charles E. Grant 05.11.2010 - 17:43
1

Respuesta corta: significa que la información se ingresa como texto, en lugar de binario o hexadecimal, etc. Algo que equivale a un "lenguaje" legible en lugar de un "lenguaje de máquina" de computadora. Más allá de eso, la definición se vuelve turbia.

    
respondido por el Skatterbrainz 05.11.2010 - 17:58
1

También se aplica al código: usted estructura su programa de una manera lógica y cuidadosa, de modo que el trabajo de quien lo mira por primera vez se hace un poco más fácil.

    
respondido por el dodgy_coder 05.10.2011 - 02:28

Lea otras preguntas en las etiquetas