美文网首页
UNIX编程艺术第五章-文本化:好协议产生好实践

UNIX编程艺术第五章-文本化:好协议产生好实践

作者: 呵呵益达哒 | 来源:发表于2016-10-31 18:11 被阅读0次

文本流vs二进制流

管道和套接字既能传送文本流,也能传送二进制流,然而究竟是使用文本流还是二进制流,还有一番争议在里面。
通常来说,二进制流的优点是:

  • 存储密度最大化,可以在有限的存储空间上存储更多的数据,也方便传输
  • 保密性好,二进制数据必须经过专门的解码才能被使用

然而与此同时,二进制流的缺点也很明显,由于存储和读取都必须经过一个编码和解码的过程,读写的性能肯定会由此受到影响,对于保密性不强的业务场景,由于二进制数据的不透明性,调试起来可能会非常麻烦。并且随着存储器价格的不断下降,二进制带来的节省空间的优势也逐渐显得不再重要。

Unix 传统推荐使用文本化的配置文件,典型的包括 vim、bash这些程序都是用文本来配置的,只需编辑主目录下的.rc文件就可以完成配置。

另外摘录一下 Unix 下文本文件格式的约定:

摘自第120页

  • 如果可能,以新行符结束的每一行只保存一个记录。
  • 如果可能,每行不超过80个字符。
  • 使用#引入注释。
  • 支持反斜杠约定。
  • 在每行一条记录的格式中,使用冒号或者任何连续的空白作为字段分隔符。
  • 不要过分区分tab和空格。
  • 优先使用十六进制。
  • 对于复杂的记录,使用“节”格式:一个记录若有多行,就是用%%\n或者%\n作为记录分隔符。
  • 在节格式中,支持连续行。
  • 要么包含一个版本号,要么将格式设计为相互独立的自描述字节块。

关于应用协议

目前最常见的应用协议,包括http协议,以及POP3/SMTP/IMAP等邮件通讯协议,基本都是文本化的通讯协议,在端对端的通信过程中,客户机与主机之间的会话都是简洁的,而且易于人阅读的,也正是由于这一点,这些通讯协议才能一直焕发生机。

相关文章

  • UNIX编程艺术第五章-文本化:好协议产生好实践

    文本流vs二进制流 管道和套接字既能传送文本流,也能传送二进制流,然而究竟是使用文本流还是二进制流,还有一番争议在...

  • cs书籍推荐

    linux Unix/Linux编程实践教程

  • 书单

    Unix 编程艺术Java编程思想数据结构与算法分析unix环境高级编程代码大全Effective javajav...

  • Linux编程学习

    书目 Unix/Linux编程实践教程 读书笔记

  • Unix哲学(Unix编程艺术)

    Doug Mcilroy: 1.让每个程序就做好一件事。如果有新任务,就重新开始,不要往原程序中加入新功能而搞得复...

  • UNIX 编程艺术#模块化原则

    模块化原则,Unix 程序员的传统 模块化 API 设计 模块化代码的首要特质就是封装。封装性好的模块不会过多向外...

  • unix环境高级编程-文件i/o

    最近在读unix环境高级编程,每天都会做做笔记! UNIX标准及实现 UNIX编程环境的标准化已经取得了很大进展。...

  • UNIX 设计哲学:Do one thing and do it

    一次只做一件事,并做到极致。 《UNIX编程艺术》一书,提出的17条编程原则,经过时间和实践的锤炼,发展成为Uni...

  • 《UNIX编程艺术》-笔记

    I-场景 1. 哲学 机制而不是策略,自由放纵注意风格,产生了多样性。比如Unix应用程序提供很多的行为选项,让非...

  • 降龙十八掌-程序员篇

    前言: Long long ago,my boss 推荐 me a book called 《Unix编程艺术》,...

网友评论

      本文标题:UNIX编程艺术第五章-文本化:好协议产生好实践

      本文链接:https://www.haomeiwen.com/subject/xxyputtx.html