HTML设计原理 一文阅读体会

HTML设计原理 一文阅读体会(dlmu2001) 

[email protected]

    阅读了Jeremy keith大神的HTML设计原理一文(http://www.cn-cuckoo.com/2010/10/21/the-design-of-html5-2151.html),我收益非浅。

    文章一开始就深刻吸引了我,一直以来,我都认为xml是一个好东西,它很严谨,对客户端开发人员来说,xml的解析简单,理解容易,同时又给人定义元素和属性的自由,非常容易同业务层结合起来,可以比较容易地定出一个技术规范来,所以它是CS模型里面server端设计经常采用的一种方式(另外一种是jason)。我甚至一度认为,http+xml可能是手机上最好的体验,cs模型可能是手机未来的主流。爱屋及乌,我喜欢上了xhtml。直到去年,我利用业余时间想在公司的eink阅读器上做一个类似stanza的应用,在线下载epub电子书,本地阅读。大部分stanza的免费电子书下载网站采用了是一个叫OPDS的尚未成为规范的草案,而epub,其实差不多就是xhtml1.1+目录+zip,原理上看非常简单。我自认为擅长xml,xhtml的解析和排版,擅长http协议,用户体验方面也有些想法想实现,我觉得这个程序可以让我发挥出自己的特长,同时解决我看电子书经常要通过pc下载的烦人问题。开始的一切都非常顺利,我很快完成了下书的小程序,实现了断点续传和后台下载,并准备着手开始做epub的解析和排版,这个时候,我在吃自己的狗粮的时候,突然发现,有些站点的目录根本无法打开,出现的问题是解析失败,不少站点的xml/xhtml,根本没有遵守规范,而按照xml的精神,解析失败就是要停止解析了,这样的问题通过吃狗粮发现越来越多,后来在android上找了几个epub reader的程序,发现也存在这样的问题。因此,我改变了我的看法,xml这种指导精神也许有点脱离现实了,而离开这个指导精神,xml又有什么存在的价值呢?而文中提到的“发送时要保守,接收时要开放的法则”,我之前接触及实现了几个协议里面,都强调了这个法则,可以说,这一点,跟做人是一样了,严于待己,宽于待人。以前经常有人问我,你觉得做协议实现最大的挑战是什么,我都毫不犹豫地说,是“兼容性”,就是为了做到这条法则。所以,对jeremy讲的xhtml和html,我深有感触,一般找到共鸣以后,你就会对文章后面的内容的兴趣翻番。

     这篇文章也让我知道了whatwg的由来,在看webkit的代码的时候,我一直很疑惑,为什么很多地方的文档索引都是引用whatwg而不是w3c的内容,才知道,原来是斗争的产物,哈哈。一份html的设计思想居然能让两个冤家般的工作组同心同德,很不简单。理解规范就不是一件容易的差事,何况制定规范呢,关键是这个规范又会影响到那么多的人,有太多的艰难选择。

      关于避免不必要的复杂性,我也有过体验,碰巧,也就是在这个doc type上,在早期的wap浏览器,经常把这个doctype当作一个关卡,也就是说,满足了它支持的doc type,它才继续往下处理,不满足,则不管三七二十一,就说自己不支持了,当时我曾经负责同这样一个wap浏览器的第三方厂家打交道,碰到我们的测试希望写一些case,可是它对xhtml还不熟悉,结果拷贝了个html的doc type来,问题就来了,虽然所有的tag都是xhtml mp的,但是浏览器就是弹出不支持的类型来了,当时觉得这个设计真的很傻,虽然这个跟html的规范似乎关系不大,但是为什么要定义一个这样的doc type呢,用来指导什么,现在好了,只用来指导验证器,这个改变很好。当然,更好的是这个指导原则,“避免不必要的复杂性”。

    “解决现实问题”这个原则中引用了一个例子,讲a标签从以前的inline级别升级到了block级别,这很好,a确实需要扩展,但是看到后面的“平稳退化原则”,呵呵,很明显,在这个例子上,这两个原则冲突了,“平稳退化”原则让步了“解决现实问题”。规范还是希望向前发展,平稳退化只是它尽量满足的一个原则,这个原则,在很多时候,代价太大了。

      “求真务实”原则,里面的nav和footer的例子,让我看到了工作组对web页面设计的一些共性的吸收,这个改革应该会对以后的页面排版产生比较大的影响。

     最后得感谢李松峰,翻译得非常好,

   

   

    

你可能感兴趣的:(HTML设计原理 一文阅读体会)