概述
Unix传统非常充实以下品质:透明性与可显性.
透明性是一种被动品质。
如果用户实际上预测到程序行为的全部或大部分情况,并能建立简单的心理模型,这个程序就是透明的。
可显性是一种主动品质。
如果软件系统所包含的功能是为了帮助人们对软件建立正确的"做什么、怎么做"的心理模型而设计,则这个软件就是可显的。
对程序员来说,良好的变量和函数名有助于提高可显性。
从以上一段作者的描述中,我们看到软件设计中要考虑到的两个原则,我的理解是透明性是软件设计的外向表达,良好的设计让使用者很容易猜测到软件实际上是在干什么,而且软件实际就是这么工作的。因此作者说透明性是一种被动品质,它需要使用者去观察。
可显性这一原则,我理解为是针对软件开发人员的一种原则。对于开发者来说,他不仅要理解软件的行为,还要能将行为与代码的关系映射上,具有良好可显性的软件设计,能让开发者更快捷的理解、开发和调试。
最小立异原则
这个原则的含义与它的名字是一致的,就是说不论是软件行为的设计抑或是软件代码的编写,都尽量不要反常规,反常识。如UI设计中的一个开关表示,绿色表示点亮,灰色表示关闭,多数人对于这样的表示很直觉式的成立;然而设计过程中将这个表示反过来,就违背了最小立异原则。
多数时候,设计与编码人员并不是有意去违背这个原则,而是有时候需要编写一个功能函数的时候,随意的对其返回值进行定义,在当时可能只是一个临时决策,但最后可能会演变成系统中的某一个固定环节,后来的开发人员为了兼容以前的糟糕设计,会将糟糕延续下去。