软件设计师应该知道的几条法则
伯斯塔尔法则
伯斯塔尔法则,又称健壮性法则,他的主要含义就是"发送时保守,接收时开放"。
既然是法则,那就是实践中应当遵循的准则,也是检验设计是否成功的一个标准。
伯斯塔尔法则在我们平时使用的很多程序中都有体现,最常用的就是大家每天都会用的浏览器了。大家都知道HTML语言的版本变化,从最早的2.0一直到现在的HTML5,每个版本都在原来的基础上有所扩展,HTML5更是革命性的一个改变。浏览器厂商都明白他们必须支持所有的版本,他们不会因为现在大家都用HTML4.1或者HTML5编写网站就不再支持HTML以前的版本。道理很简单,浏览器必须向后兼容,这是用脚趾头也能够想明白的。我们在理解"接收时开放"时,我们应该知道向后兼容是该法则中不言而喻的内容。
其实体现浏览器"接收时开放"的精神的,不仅仅指对一个遵循HTML某个版本标准的网站,浏览器可以完美的解析并呈现,更应该指对一个不遵循HTML标准的,写的天马行空、无拘无束的网站来说,浏览器仍能够尽可能的解析并呈现。也就是网站中出现的一个或多个错误不应该成为浏览器放弃解析的原因,因为浏览器面对的成千上万、各式各样的网站,它必须做到足够的包容,足够的开放,这样才能赢得大多人的喜爱。
"发送时保守"是告诫web开发人员的,你的HTML代码应该写的尽可能符合标准,能够方便别人(浏览器)去解析,这里不是艺术设计领域,特立独行、不按标准行事是会遭人鄙视的。况且你无法知道你的用户会使用哪一款浏览器,事实你也不必知道。为了使你的用户在使用你的网站尽可能少出问题,遵循HTML标准绝对是必要的。
伯斯塔尔法则有点像人类社会中的一个社交原则,"对自己严格,对他人宽容",能够做到这个原则的人,相信人人都愿意和他交朋友,而能够做到伯斯塔尔法则的软件程序也是人人都喜欢用的。
帕累托原理
帕累托原理,即帕累托效应,又名:二八法则、最省力法则。它的核心内容就是"20%的努力可产生80%的产出"。最早是由意大利的经济学家帕累托提出的,它提出的二八比例指的是在经济领域中20%的人掌控着80%的财富。这个原理其实暗合了自然界各个领域的幂律分布,并不仅仅是在经济领域。
在人力资源管理领域,他们认为公司20%的人创造了公司80%的价值,据此规律,人力资源管理的一个重点就是想办法找出这20%的关键员工,建立合理的利益分配机制,留住这些人。
在人生规划方面,人的专长可能很多,但真正发挥作用的很少。所以,要善于掌握自己的优势,寻找那些自己非常喜欢、非常擅长、竞争不太激烈的事情去做,一定会有收获。在安排自己的时间上,有所不为才能有所为。要集中自己的时间精力,抓关键的人、关键的环节、关键的岗位和关键的 项目。
应用在计算机程序设计领域就是"20%的努力可触及80%的用例,剩余20%的用例需要付出80%的努力",所以在具体的项目中,只为80%设计是合理的。在实现方面,20%的代码可实现80%的功能,剩余20%功能却需要80%的代码,这告诉我们应该找出这20%的代码,并尽可能优化他们。
帕累托原理揭示的这个二八比例,可以在生活中的很多其它方面给我们提供指导。抓住20%的关键部分,只需付出20%的努力,就可以获得80%的成功,不愧是最省力法则。
梅特卡夫定律
梅特卡夫定律揭示是网络技术的发展规律:"网络的价值同网络用户的平方成正比"。人人都上facebook 还不是因为人人都上facebook嘛。我们公司的一位同事回忆他当年申请email邮箱时的困惑,这玩意有啥用?就我一个人有,给谁发邮件哇。现在他不必困惑了,因为人人都有Email邮箱了。梅特卡夫定律给计算机程序设计领域,尤其是互联网产品领域的启示,就是提升自身价值的不二法门就是在发展初期想尽办法扩大自己的用户群,你的用户群越大,就越会吸引更多用户。这也可以理解为什么如此多的互联网服务初期对用户都是免费的,甚至永久都是免费的。因为"只要用户足够多,不愁没钱赚"。