¿Por qué debería usar un formato de archivo legible por humanos?


¿Por qué debería usar un formato de archivo legible por humanos en lugar de uno binario? ¿Hay alguna vez una situación en la que este no sea el caso?

EDITAR: Tuve esto como una explicación al publicar inicialmente la pregunta, pero no es tan relevante ahora:

Al responder esta pregunta quería referir el asker a un estándar, así que conteste por qué usar un formato de archivo legible por humanos es una buena idea. Entonces busqué uno y no pude encontrar uno. Así que aquí está el pregunta

Author: Community, 2009-02-20

24 answers

Depende

La respuesta correcta es que depende. Si está escribiendo datos de audio / video, por ejemplo, si lo coloca en un formato legible por humanos, ¡no será muy legible! Y los documentos de Word son el ejemplo clásico donde la gente ha deseado que fueran legibles por humanos, por lo que son más flexibles, y al pasar a XML MS van en esa dirección.

Mucho más importante que el binario o el texto es un estándar o no un estándar. Si utiliza un formato estándar, entonces lo más probable es que usted y el siguiente chico no tendrá que escribir un analizador, y eso es una victoria para todos.

Después de esto hay algunas razones obstinadas por las que es posible que desee elegir una sobre la otra, si tiene que escribir su propio formato (y analizador).

¿Por qué usar human readable?

  1. El siguiente tipo. Considere el desarrollador de mantenimiento mirando su código 30 años o seis meses a partir de ahora. Sí, debería tener el código fuente. Sí, debería tener los documentos y los comentarios. Pero es muy probable que y habiendo sido ese tipo, y tenido que rescatar o convertir datos antiguos, extremadamente valiosos, les agradeceré por hacerlo algo que pueda ver y entender.
  2. Déjame leerlo Y escribirlo con mis propias herramientas. Si soy un usuario de emacs puedo usar eso. O Vim, o bloc de notas o ... Incluso si ha creado excelentes herramientas o bibliotecas, es posible que no se ejecuten en mi plataforma, o incluso que ya no se ejecuten. Además, puedo crear nuevos datos con mis herramientas.
  3. El impuesto no es ese big-storage es gratis . Casi siempre hay espacio libre en el disco. Y si no lo es lo sabrás. No se preocupe por algunos corchetes angulares o comas, por lo general no hará mucha diferencia. La optimización prematura es la raíz de todo mal. Y si está realmente preocupado solo use una herramienta de compresión estándar, y luego tiene un pequeño formato legible por humanos: cualquiera puede ejecutar unzip.
  4. El impuesto no es que las grandes computadoras sean rápidas. Podría ser más rápido analizar binario. Hasta que necesita agregar una columna adicional, o tipo de datos, o admitir archivos antiguos y nuevos. (aunque esto se mitiga con Búferes de protocolo)
  5. Existen muchos buenos formatos. Incluso si no te gusta XML. Prueba CSV. O JSON. O .propiedad. O incluso XML. Existen muchas herramientas para analizar estos ya en muchos idiomas. Y solo toma 5 minutos escribirlos de nuevo si misteriosamente todo el código fuente se pierde.
  6. Las diferencias se vuelven fáciles. Cuando comprobar en el control de versiones es mucho más fácil ver lo que ha cambiado. Y verlo en la Web. O tu iPhone. Binario, sabes que algo ha cambiado, pero confías en los comentarios para decirte qué.
  7. Las fusiones se vuelven fáciles. Usted todavía recibe preguntas en la web preguntando cómo añadir un PDF a otro. Esto no sucede con el texto.
  8. Más fácil de reparar si está dañado. Intente reparar un documento de texto corrupto vs. un archivo zip corrupto. Suficientemente manifestó.
  9. Cada idioma (y plataforma) puede leerlo o escribirlo. Por supuesto, binario es el idioma nativo para las computadoras, por lo que todos los idiomas serán compatibles con binario también. Pero muchos de los lenguajes de scripting de herramientas clásicas funcionan mucho mejor con datos de texto. No puedo pensar en un lenguaje que funcione bien con binario y no con texto (ensamblador tal vez), pero no al revés. Y eso significa que sus programas pueden interactuar con otros programas que ni siquiera ha pensado, o que fueron escrito 30 años antes que el tuyo. Hay razones por las que Unix tuvo éxito.

¿Por qué no, y usar binario en su lugar?

  1. Es posible que tenga muchos datos - terabytes tal vez. Y entonces un factor de 2 realmente podría importar. Pero la optimización prematura sigue siendo la raíz de todo mal. ¿Qué tal usar uno humano ahora, y convertirlo después? No tomará mucho tiempo.
  2. El almacenamiento puede ser gratuito, pero el ancho de banda no lo es (Jon Skeet en comentarios). Si está lanzando archivos alrededor de la red, entonces el tamaño realmente puede marcar la diferencia. Incluso el ancho de banda hacia y desde el disco puede ser un factor limitante.
  3. Código realmente intensivo de rendimiento. Binario puede ser optimizado seriamente. Hay una razón por la que las bases de datos normalmente no tienen su propio formato de texto sin formato.
  4. Un formato binario podría ser el estándar. Así que usa PNG, MP3 o MPEG. Hace que el próximo trabajo de los chicos sea más fácil (por lo menos los próximos 10 años).
  5. Hay un montón de buenos binarios formatos disponibles . Algunos son estándares globales para ese tipo de datos. O podría ser un estándar para dispositivos de hardware. Algunos son marcos de serialización estándar. Un gran ejemplo es Google Protocol Buffers . Otro ejemplo: Bencode
  6. más Fácil de incrustar binario. Algunos datos ya son binarios y es necesario incrustarlos. Esto funciona naturalmente en formatos de archivo binario, pero se ve feo y es muy ineficiente en los legibles por humanos, y por lo general deja de ser legible por humanos.
  7. Oscuridad deliberada. A veces no quieres que sea obvio lo que están haciendo tus datos. El cifrado es mejor que la seguridad accidental a través de la oscuridad, pero si está cifrando, también podría hacerlo binario y terminar con él.

Discutible

  1. Más fácil de analizar. La gente ha afirmado que tanto el texto como el binario son más fáciles de analizar. Ahora claramente lo más fácil de analizar es cuando su idioma o biblioteca admite el análisis, y esto es cierto para algunos formatos binarios y algunos legibles por humanos, por lo que realmente no es compatible tampoco. Los formatos binarios se pueden elegir claramente para que sean fáciles de analizar, pero también puede ser legible por humanos (piense en CSV o ancho fijo), por lo que creo que este punto es discutible. Algunos formatos binarios pueden ser volcados a la memoria y usados tal cual, por lo que se podría decir que es el más fácil de analizar, especialmente si están involucrados números (no solo cadenas). Sin embargo, creo que la mayoría de la gente argumentaría que el análisis legible humano es más fácil de depurar, ya que es más fácil ver lo que está pasando en el depurador (ligeramente).
  2. Más fácil de controlar. Sí, es más probable que alguien destroce los datos de texto en su editor, o se queje cuando un formato Unicode funciona y otro no. Con datos binarios es menos probable. Sin embargo, las personas y el hardware todavía pueden destrozar los datos binarios. Y puede (y debe) especificar una codificación de texto para datos legibles por humanos, ya sea flexible o fija.

Al final del día, no creo que cualquiera de los dos realmente puede reclamar una ventaja aquí.

Cualquier otra cosa

¿Estás seguro de que realmente quieres un archivo? ¿Has considerado una base de datos? :-)

Créditos

Gran parte de esta respuesta está fusionando cosas que otras personas escribieron en otras respuestas (puedes verlas allí). Y especialmente muchas gracias a Jon Skeet por sus comentarios (tanto aquí como fuera de línea) por sugerir formas de mejorarlo.

 75
Author: Nick Fortescue,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-29 16:41:09

Depende completamente de la situación.

Beneficios de un formato legible por humanos:

  • Puedes leerlo en su formato "nativo"
  • Puede escribirlo usted mismo, por ejemplo, para pruebas unitarias, o incluso para contenido real, dependiendo de para qué sirve

Beneficios probables de un formato binario:

  • Más fácil de analizar (en términos de código)
  • Más rápido para analizar
  • Más eficiente en términos de espacio
  • Más fácil de controlar (en cualquier momento que necesite texto allí, puede asegurarse de que está codificado en UTF-8, y longitud prefijada, etc.)
  • Es más fácil incluir datos binarios opacos de manera eficiente (imágenes, etc., con un formato de texto que estaría ingresando en base64)

No olvide que siempre puede implementar un formato binario, pero también producir herramientas para convertir a/desde un formato legible por humanos. Eso es lo que hace el framework Protocol Buffers - en realidad es bastante raro que IME necesite analizar una versión de texto de un búfer de protocolo, pero es muy útil poder escríbelo como texto.

EDITAR: En caso de que esto termine siendo una respuesta aceptada, también debe tener en cuenta el punto hecho por starblue: Las formas legibles por humanos son mucho mejores para diffing. Sospecho que sería factible diseñar un formato binario que sea apropiado para el diffing (y donde se pueda generar un diff legible por humanos), pero el soporte listo para usar de las herramientas de diff existentes será mejor para el texto.

 26
Author: Jon Skeet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:07:20

El control de versiones es más fácil con los formatos de texto, porque los cambios se pueden ver y combinar fácilmente.

Especialmente MS-Word nos está dando pena en este sentido.

 17
Author: starblue,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-20 08:37:31
  • Formato abierto {sin malabares de bits binarios
  • Legibilidad:)
  • Intercambio entre plataformas
  • Ayuda de depuración
  • Fácilmente analizado (y fácilmente convertido a cualquier formato)

Un punto importante: escribes un analizador una vez, pero lees la salida muchas veces. Eso inclina la balanza a favor de HRF.

 7
Author: dirkgently,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-20 13:17:17

Una razón importante es que si alguien necesita leer los datos, digamos, dentro de 30 años, se puede averiguar el formato legible por humanos. Binario es mucho más difícil.

Si tiene grandes conjuntos de datos que son binarios por naturaleza (por ejemplo, imágenes), obviamente no pueden almacenarse en ninguna otra forma que no sea binaria. Pero incluso entonces, los metadatos podrían (¡y deberían!) ser legible por humanos.

 6
Author: Joonas Pulakka,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-20 08:27:07

Hay algo llamado El Arte de la Programación Unix.

No diré que sea bueno o malo, pero es bastante famoso. Tiene un capítulo entero llamado Textuality en el que el autor afirma que el formato de archivo legible por humanos es una parte importante de la forma de programación de Unix.

 6
Author: ChrisW,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-20 08:46:08

Abren la posibilidad de ser creados/editados con herramientas distintas a las originales. Nuevas y mejores herramientas pueden ser desarrolladas por otros, la integración en aplicaciones de terceros se hace posible. Piense en los archivos binariosal, por ejemplo, ¿el formato habría sido un éxito?

Aparte de eso: Los archivos legibles por humanos mejoran la capacidad de depurar o, para el usuario inteligente, al menos encontrar la razón de un error.

 4
Author: Tomalak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-20 08:16:53

Pros para binario:

  • rápido para analizar
  • datos generalmente más pequeños
  • fácil de escribir un analizador para

Pros para la lectura humana:

  • más fácil de entender mientras se lee-no "el campo X se establece en 4 487, lo que significa que el reactor debe apagarse AHORA"
  • si se utiliza algo como XML fácil de escribir una herramienta que analizará cualquier archivo

He tenido que lidiar con ambos tipos. Si estás enviando datos y quieres que sean pequeños binario es bueno. Si esperas que la gente lo lea, entonces la lectura humana es buena.

La lectura humana generalmente también se documenta a sí misma. Y con binario es bery fácil de cometer errores-y difícil de detectar.

 4
Author: TofuBeer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-20 08:18:23
  • Editable
  • Legible (duh!)
  • Imprimible
  • Bloc de notas y vi habilitados

Lo más importante, su función se puede deducir del contenido (bien principalmente)

 3
Author: Learning,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-20 08:19:27

Porque usted es un humano, y tarde o temprano usted (o uno de sus clientes) será capaz de leer los datos.

Solo usamos formato binario si la velocidad es un problema. E incluso entonces la depuración es problemática, por lo que agregamos un equivalente legible por humanos.

 3
Author: Toon Krijthe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-20 08:26:59

La interoperabilidad es el argumento estándar, es decir, una forma legible por humanos es más fácil de tratar para los desarrolladores de sistemas dispares, por lo que confiere alguna ventaja.

Personalmente creo que eso no es cierto, y los beneficios de rendimiento de los archivos binarios deberían superar ese argumento, especialmente si publica su protocolo. Sin embargo, la ubicuidad de los marcos basados en XML/HTTP para las interacciones de la máquina significa que es más fácil de adoptar.

XML se utiliza demasiado.

 2
Author: Simon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-20 08:16:29

Solo una ilustración rápida donde el formato de documento legible por humanos puede ser una mejor opción:

Documentos utilizados para desplegar aplicaciones en producción

Solíamos tener nuestras notas de la versión en formato word, pero ese documento de notas de la versión tenía que abrirse en varios entornos (Linux, Solaris) en la plataforma de preproducción y producción.
También tuvo que ser analizado para extraer varios datos.

Al final, cambiamos a una sintaxis basada en wiki, todavía se muestra muy bien en HTML a través de un wiki, pero todavía se utiliza como un archivo de texto simple en otra situación.

 2
Author: VonC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-20 08:23:45

Como complemento a esto, hay diferentes niveles de legibilidad humana, y todos se mejoran mediante el uso de un buen editor o visor con coloreado de código, plegado o navegación.

Por ejemplo,

  • JSON es bastante legible incluso en texto plano
  • XML tiene el impuesto de corchetes pero es utilizable cuando se utiliza un buen editor
  • INI es en su mayoría legible por humanos
  • CSV puede ser legible, pero es mejor cuando se carga en una hoja de cálculo.
 2
Author: garrow,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-20 08:24:36

Nadie dijo, así que lo haré: la legibilidad humana no es realmente una propiedad de un formato de archivo (todos los archivos son binarios después de todo), sino más bien de una combinación de formato de archivo y aplicación de visor.

Los llamados formatos legibles por humanos se basan en la parte superior de la capa de abstracción adicional de una de las codificaciones de texto existentes. Y los programas de visualización (a menudo también sirven como un editor) que son capaces de representar estas codificaciones en una forma legible por los seres humanos son muy comunes.

Los estándares de codificación de texto son generalizada y bastante madura, lo que significa que es poco probable que evolucionen mucho en el futuro previsible.

Por lo general, encima de la capa de codificación de texto del formato encontramos una capa de sintaxis que es razonablemente intuitiva dado el conocimiento del usuario objetivo y el trasfondo cultural.

De ahí los beneficios de los formatos "legibles por humanos":

  • Ubicuidad de los espectadores y editores adecuados.

  • Atemporalidad (dado que las convenciones culturales no cambiarán mucho).

  • Facilidad para aprender, leer y modificar.

La dependencia de la capa de abstracción adicional hace que los archivos de texto codificados:

  • Hambriento de espacio.

  • Más lento de procesar.

Los archivos"binarios" no recurren a la capa de abstracción de codificación de texto como base (o denominador común), pero pueden o no usar algún tipo de abstracción adicional más adecuada para su propósito y, por lo tanto, pueden ser mucho mejores optimizado para una tarea específica en cuestión, lo que significa:

  • Procesamiento más Rápido.

  • Huella más pequeña.

Por otro lado:

  • Los visores y editores son específicos para un formato binario en particular y dificultan la interoperabilidad.

  • Los espectadores de cualquier formato dado están menos difundidos, porque son más especializados.

  • Los formatos pueden evolucionar significativamente o dejar de usarse con el tiempo: el principal beneficio es ser muy adecuado para una tarea en particular y a medida que la tarea o los requisitos de la tarea evolucionan, también lo hace el formato.

 2
Author: Vlad Gudim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-04-03 14:18:04

Tómese un momento y piense en otras aplicaciones que no sean el desarrollo web.

La suposición de que: A) Tiene un significado que es "obvio" en formato de texto es falso. Cosas como los sistemas de control para una fábrica de acero, o planta de fabricación no suelen tener ninguna ventaja en ser legible por humanos. El software para esos tipos de entornos normalmente tendrá rutinas para mostrar los datos de una manera gráficamente significativa.

B) La salida en texto es más fácil. Innecesario las conversiones que realmente requieren más código hacen que un sistema sea MENOS robusto. El hecho del asunto si no está utilizando un lenguaje que trata todas las variables como cadenas, entonces el texto legible por humanos es una conversión adicional. Es decir, Código adicional significa más código para ser verificado, probado y más oportunidades para introducir errores en la aplicación.

C) Tienes que analizarlo de todos modos. Es muchos casos para los sistemas DSP he trabajado en (Es decir, NO hay interfaz legible por humanos para empezar.) Los datos se transmiten de la sistema en paquetes de tamaño uniforme. Registrar los datos para su análisis y posterior procesamiento es simplemente una cuestión de señalar el comienzo de un búfer y escribir un múltiplo del tamaño del bloque en el sistema de registro de datos. Esto me permite analizar los datos "intactos" ya que el sistema del cliente los vería donde, una vez más, convertirlos a un formato diferente resultaría en posiblemente introducir errores. No solo eso, si solo guarda los "datos convertidos", puede perder información en el traducción que puede ayudarle a diagnosticar un problema.

D) El texto es un formato natural para los datos. Ningún hardware que haya visto utiliza una interfaz de "TEXTO". (Mi primer trabajo fuera de la universidad fue escribir un controlador de dispositivo para una cámara de escaneo de línea de cámara.) La construcción del sistema en la parte superior de lo hace PODRÍA, pero para cada "PC".

Para las páginas web donde la información tiene un significado "natural" en formato de texto, así que seguro que te gusta. Para procesar código fuente es una obviedad, por supuesto. Pero el entornos informáticos generalizados donde incluso el refrigerador y el cepillo de DIENTES van a tener un procesador incorporado, no tanto. Simplemente sobrecargar este tipo de sistemas con la sobrecarga de agregar la capacidad de procesar texto introduce complejidad innecesaria. Usted no va a vincular "printf" en el software para un micro de 8 bits que controla un ratón. (Y sí, alguien tiene que escribir ese software también.)

El mundo no es un lugar blanco y negro donde las únicas formas de computación que deben tenerse en cuenta las PC y los servidores web.

Incluso en un PC, si puedo cargar directamente los datos directamente en una estructura de datos usando una sola llamada de lectura del sistema operativo y terminar con ella sin escribir rutinas de serialización y deserialización, eso es fantástico, comprobar un trabajo de CRC de bloques done hecho en el siguiente problema.

 2
Author: NoMoreZealots,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-23 18:25:04

Uhm because ¿porque los formatos de archivo legibles por humanos pueden ser leídos por humanos? Me parece una buena razón.

(Bueno, para los archivos de configuración es inevitable que se lean (y editen!) por humanos. Los archivos para almacenamiento persistente de algún tipo u otro realmente no necesitan ser leídos o editados por humanos.)

 1
Author: Bombe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-20 08:14:39

¿Por qué debería usar un archivo legible por humanos formatear en preferencia a uno binario? ¿Hay alguna vez una situación en la que este no es el caso?

Sí, los volúmenes comprimidos (zip, jpeg, mp3, etc.) serían subóptimos si fueran legibles por humanos.

 1
Author: Zach Scrivena,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-20 08:17:53

Supongo que no es bueno en la mayoría de las situaciones, probablemente. Creo que la razón principal de estos formatos como JSON y XML es debido al desarrollo web, y el uso general en la web donde necesita ser capaz de procesar datos en el lado del usuario y no necesariamente puede leer binario. Un buen ejemplo de un mal caso para usar un formato legible por humanos sería cualquier cosa no textual como imágenes, video, audio. He notado el uso de formatos no binarios que se utilizan en el desarrollo web donde no hace sentido, me siento culpable!

 1
Author: teh_noob,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-20 08:22:08

A menudo los archivos se convierten en parte de su interfaz humana, por lo que deben ser amigables con los humanos (no solo con el programador)

 0
Author: robi-y,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-20 08:19:58

La única vez que uso un flujo binario para archivos que no son archivos es cuando quiero ocultar cosas del observador casual. Por ejemplo, si estoy creando archivos temporales que solo mi aplicación debería editar, usaré binario.

No es un intento de ofuscar, sino que solo desalienta al usuario de editar el archivo a mano (lo que podría romper la aplicación).

Una instancia donde esto sería una buena idea es almacenar / guardar datos en ejecución sobre vaya juego.. es decir, para guardar su juego y continuar más tarde. Otros escenarios describirían archivos intermedios, pero estos son típicamente compilados binarios / bytes de todos modos.

 0
Author: Tim Post,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-20 08:44:18

¿Por qué debería usar un archivo legible por humanos formatear en preferencia a uno binario?

Depende del contenido y el contexto, es decir, de dónde vienen y van los datos. Si los datos son típicamente escritos directamente por un humano, almacenarlos en un formato que pueda ser manipulado a través de un editor de texto es una buena idea. Por ejemplo, el código fuente del programa normalmente se almacenará como legible por humanos con una buena razón. Sin embargo, si lo estamos archivando, o compartiéndolo usando una versión sistema de control, nuestra estrategia de almacenamiento cambiará.

 0
Author: Shane MacLaughlin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-20 08:44:45

El formato humano es más simple para analizar y depurar si tiene un problema con un campo (ejemplo: un campo contiene un número donde la especificación dice que este campo debe ser una cadena), también el formato humano es closier al dominio del problema.

Prefiero el formato binario con muchos datos Y estoy seguro de que tengo el software para analizarlo:)

 0
Author: alepuzio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-20 08:55:35

Al leer la disertación de Fielding sobre el DESCANSO, me gustó mucho el concepto de " Propiedades Arquitectónicas"; uno que se pegó fue "Visibilidad". De eso es de lo que estamos hablando aquí: poder " ver " los datos. Enormes beneficios al depurar el sistema.

Un aspecto que me falta en las otras respuestas: aplicar la semántica.

Desde el momento en que se va para ser legible por humanos, se permite que el usuario tonto bloc de notas para crear datos para ser alimentados en el sistema. Ninguna forma de garantizar estos datos tiene sentido. No hay forma de garantizar que el sistema responda de manera sensata.

Por lo tanto, en el caso de que no necesite inspeccionar sus datos con el bloc de notas, y desee hacer cumplir los datos válidos (por ejemplo, mediante el uso de una API) en lugar de validarlos primero, es mejor evitar los datos legibles por humanos. Si la capacidad de depuración es un problema (la mayoría de las veces lo es), la inspección de los datos también se puede realizar mediante la API.

 0
Author: xtofl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-20 12:30:44

Human readable no es igual a más fácil de analizar por código máquina.

Tomemos como ejemplo el lenguaje natural humano. :) El análisis automático del lenguaje humano sigue siendo un problema pendiente por resolver.

Así que estoy de acuerdo con https://stackoverflow.com/a/714111/2727173 que tiene una visión mucho más profunda sobre esta cuestión.

 0
Author: lihlii,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:01:52