File 为什么我应该使用人类可读的文件格式?
为什么我应该使用人类可读的文件格式而不是二进制文件格式?有没有一种情况不是这样的 编辑: 在最初发布问题时,我确实对此进行了解释,但现在已经不那么相关了: 在回答时,我想让提问者参考一个标准,所以请回答为什么使用人类可读的文件格式是一个好主意。然后我找了一个,却找不到。这就是问题所在File 为什么我应该使用人类可读的文件格式?,file,encoding,formatting,binary,abstraction,File,Encoding,Formatting,Binary,Abstraction,为什么我应该使用人类可读的文件格式而不是二进制文件格式?有没有一种情况不是这样的 编辑: 在最初发布问题时,我确实对此进行了解释,但现在已经不那么相关了: 在回答时,我想让提问者参考一个标准,所以请回答为什么使用人类可读的文件格式是一个好主意。然后我找了一个,却找不到。这就是问题所在 开放格式--无二进制位杂耍 可读性:) 跨站台换乘 调试辅助工具 易于解析(并易于转换为任何格式) 重要的一点是:只需编写一次解析器,但要多次读取输出。这种情况有利于HRF的平衡。因为你是一个人,迟早你(或你的客
重要的一点是:只需编写一次解析器,但要多次读取输出。这种情况有利于HRF的平衡。因为你是一个人,迟早你(或你的客户之一)将能够读取数据
如果速度有问题,我们只使用二进制格式。即使这样调试也很麻烦,所以我们添加了一个人类可读的等价物。嗯……因为人类可读的文件格式可以被人类读取?对我来说似乎是个很好的理由
(好吧,对于配置文件,它们不可避免地会被人读取(和编辑!)。用于某种类型的持久存储的文件实际上不需要被人读取或编辑。)互操作性是标准参数,也就是说,对于不同系统的开发人员来说,人类可读的表单更容易处理,因此具有一些优势 就我个人而言,我认为这是不正确的,二进制文件的性能优势应该战胜这一论点,特别是如果您发布了您的协议。然而,基于XML/HTTP的机器交互框架的普遍性意味着它更容易采用
XML被过度使用。它们提供了使用原始工具以外的工具创建/编辑的可能性。其他人可以开发新的更好的工具,集成到第三方应用程序中成为可能。例如,想想二进制iCal文件——这种格式会成功吗 除此之外:人类可读的文件提高了调试的能力,或者,对于精明的用户来说,至少可以找到错误的原因 为什么要使用人类可读的文件 格式优先于二进制格式? 有过这样的情况吗 不是吗
是的,如果压缩卷(zip、jpeg、mp3等)是人类可读的,那么它们就不是最理想的。这完全取决于具体情况 可读格式的好处:
- 您可以阅读它的“本机”格式
- 您可以自己编写,例如用于单元测试,或者甚至用于实际内容,这取决于它的用途
- 更容易解析(就代码而言)
- 更快地解析
- 空间效率更高
- 更易于控制(任何时候需要文本时,都可以确保它是UTF-8编码的,并带有长度前缀等)
- 更容易有效地包含不透明的二进制数据(图像等,使用base64中的文本格式)
编辑:为了防止这最终成为一个公认的答案,您还应该记住:人类可读的表单更适合于扩散。我怀疑设计一种适合于差分的二进制格式是可行的(并且可以生成人类可读的差分),但现有差分工具的开箱即用支持将更好地用于文本。一个主要原因是,如果有人需要读取数据,比如说,30年后,人类可读的格式可以计算出来。二进制要困难得多 如果您的大型数据集本质上是二进制的(例如图像),那么它们显然只能以二进制形式存储。但即便如此,元数据也可以(而且应该!)为人类可读。二进制的优点:
- 快速解析
- 通常较小的数据
- 易于编写的语法分析器
- 阅读时更容易理解-否“字段X设置为4 487,这意味着反应堆现在应该关闭”
- 如果使用XML之类的东西,很容易编写一个工具来解析任何文件
- 可编辑
- 可读性(duh!)
- 可打印
- 已启用记事本和vi
最重要的是,它们的功能可以从内容中删除(大多数情况下)通常,文件会成为您的人机界面的一部分,因此它们应该是人性化的(不仅仅是程序员)我想在大多数情况下可能不太好。我认为这些格式(如JSON和XML)的主要原因是由于web开发,以及在web上的普遍使用,在web上,您需要能够在用户端处理数据,而不必读取二进制文件。使用人类可读格式的一个好例子是任何非文本的东西,如图像、视频、音频。我注意到在web开发中使用的非二进制格式毫无意义,我感到内疚 这只是一个简单的例子,人类可读的文档格式可能是更好的选择: 用于在生产中部署应用程序的文档 我们曾经有过释放n的机会