软件的复杂度发展到今天的程度,每个参与软件生产的人对自己产品的质量可能多少都会有些担心。至今还没有理论能够系统的预估和保证软件产品的质量(可能永远不会发展出这样的理论,因为软件作为人类思想的固定形式,对其质量的系统化保证可能已经超出了人类认识的“极限”)。
不过,多多少少会在软件的历史中沉淀一些有用的东西。下面的四条可能对于生产稳定的软件有极大的帮助:
简洁的设计;
足够的维护;
主动的重构;
时间的沉淀。
简洁的设计
用最直白的形式作你要做的事情。看看Unix和C在这方面留下的经典思想:如果不确定,就用蛮力(brutal force)。抛弃premature optimization。完美不是在你觉得不能往上增加东西的时候达到的,完美是在你觉得无法再减少东西的时候得到的。
足够的维护
查找软件的缺陷,尤其是缺陷的原因,是一种碰运气的活。不要指望一个工作了十年的人发现某个特定缺陷的效率“一定”比一个工作了两年的人高。普遍来说前者的概率要高于后者,但是不可能每次都是。所以保持你的软件维护者的数量,概率才能在大样本空间中起作用。当足够多的“眼球”盯着你的软件,所有的缺陷都会像放在太阳下一样。
主动的重构
保证你的软件是活的。不要仅仅依靠bug-driven,一个软件应该自己吐故纳新。
时间的沉淀
一切都需要时间。