新概念:Microformat(微格式)
2005-3-31
“计算机系统中最便宜、最快速、最可靠的部分就是不存在的那部分”—— Gordon Bell
这不是一个讽刺,也不是主张偷懒,这是一种做事的哲学。和中国的道家思想有点异曲同工,用《道德经》的话说就是“有之以为利,无之以为用”。Microformat就是这种哲学的一个实际应用。
我们知道,做项目时最讨厌的事情之一就是定义文件格式。现有的文件格式不够用,必须定义新格式。而定义新格式带来的代价包括:
- 分析、设计时间
- 实现时间
- 调试时间
- 计划或设计变更带来的调整或扩充时间
- 版本问题
- 支持工具的制作时间
- 格式使用者的培训时间
- 隐藏的错误造成的数据抢救时间以及由此造成的数据丢失的风险
- 长期维护的代价
- 可能的和其他数据格式转换的问题
简单的说就是做得越多,事情就越麻烦。所谓microformat的核心就是对格式只有很少的新定义,所以叫微格式。减少定义的量的方法就是尽量重用广泛使用的已有格式的定义。比如定义一个新的类似PPT的电子幻灯数据文件的格式:
<ol class='xoxo'>
<li>Subject 1
<ol>
<li>subpoint a</li>
<li>subpoint b</li>
</ol>
</li>
<li>Subject 2
<ol compact="compact">
<li>subpoint c</li>
<li>subpoint d</li>
</ol>
</li>
</ol>
几乎就是XHTML源码,使用现成的标签定义、现成的编辑器、现成的查看器、现成的Parsing代码、现成的培训文档……这就是充分利用已“有”的东西,享受“无”需处理一堆麻烦的好处。
虽然目前的microformat主要围绕着XHTML展开,但它的概念是可以用到很多地方的。传统上很多人用序列化的方式定义文件格式,这确实有一定作用,但在版本兼容和支持工具上比较薄弱。如果要评最成功的文件格式,我会投ini一票,因为它作为一种极为简单的文本格式在众多领域发挥了重要作用。