一,避免不必要的复杂性。
例如,之前,若创建一个html页,开头我们必须写成像
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
或 <!DOCTYPE html PUBLIC "-//W3C/DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">的样子。
对html 5,<!DOCTYPE html>这样的格式就行了。
原因是,Doctype是写给验证器看的。也就是说,之所以要在文档一开头写那行XHTML 1.0的doctype,是为了告诉验证器,让验证器按照该doctype来验证我的文档。但按照HTML 5的另一个设计原理,它必须向前向后兼容,兼容未来的HTML版本——不管是HTML6、HTML7,还是其他什么——都要与当前的HTML版本,HTML 5,兼容。因此,把一个版本号放在doctype里面没有多大的意义,即使对验器证也一样。
还有像<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />在html 5里可以写成<meta charset="utf-8">
二, 支持已有的内容
例如在html5里属性值可以不加引号, 但加引号也对。下面这几种写法都是正确的
三, 解决现实的问题
HTML 5的另一个设计原理是解决现实的问题。显而易见的是,解决各种问题的格式和规范已经比比皆是了,因此在我看来,这个原理其实是要解决理论问题,而非解决现实的问题。这条设计原理是要从理论上承认人们普遍存在的问题,消除敏感问题。
例如:页面中已经有了一块内容,我想给整块内容加个链接。这块内容包括一个标题,一个段落
过去的做法:
现在:
四,求真务实
求真务实对于HTML的含义是:在解决那些令人头痛的问题之前,先看看人们为应对这些问题都想出了哪些办法。集中精力去理解这些“民间的”解决方案才是当务之急。
HTML 5中新的语义元素就是遵循求真务实原理的反映。新增的元素不算多,谈不上无限的扩展性,但却不失为一件好事。尽管数量屈指可数,但意义却非同一般。这些新 元素涉及头部(header)、脚部(footer)、分区(section)、文章(article)……,相信大家都不会觉得陌生。
例如:以前的文档:
现在可以改成:
五,平稳退化
有关HTML 5遵循这条原理的例子,就是使用type属性增强表单。下面列出了可以为type属性指定的新值,有number、search、range,等等。
最关键的问题在于浏览器在看到这些新type值时会如何处理。现有的浏览器,不是将来的浏览器,现有的浏览器是无法理解这些新type值的。但在它们看到自己不理解的type值时,会将type的值解释为text。
六,最终用户优先
这个设计原理本质上是一种解决冲突的机制。
一旦遇到冲突,最终用户优先,其次是作者,其次是实现者,其次标准制定者,最后才是理论上的完满
七,只为80%设计
这是一条常见的设计原理,也是一种通用模式,即帕累托原理
帕累托是意大利经济学家,他提出这个比例,80/20, 说的是世界上20%的人口拥有80%的财富。这个比例又暗合了自然界各个领域的幂律分布现象。总之,无论你是编写软件,还是制造什么东西,都是一样的,即 20%的努力可以触及80%的用例。最后20%的用例则需要付出80%甚至更多的努力。因此,有时候据此确定只为80%设计是很合理的,因为我们知道为此 只要付出20%的努力即可。
八,首先为人类设计,其次为机器设计。
希望这些原理对大家的软件设计有所启发。