新概念: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一票,因为它作为一种极为简单的文本格式在众多领域发挥了重要作用。