本书讨论了软件设计的一些规则,这些规则如下:
软件的目的是帮助他人
软件设计的方程公式:
D = (Vn + Vf )/ (Ei + Em)
其中:- D表示变化的何以程度(可行性);
- Vn表示当前价值;
- Vf表示未来价值;
- Ei表示开发成本
- Em描述维护成本
这是软件设计的主要法则。随着时间的推移,这个方程式简化为:
D = Vf / Vm
也就是说,相比较降低开发成本,更重要的是降低维护成本。
开发软件的目的不是为了赚钱,也不是为了炫技,是为了帮助他人。只有这样你才会全心全意的为用户着想,站在用户的角度考虑问题。为了能持续的帮助他人,需要降低软件的开发和维护成本。相比降低开发成本,降低维护成本更重要,维护成本随着时间的推移会逐渐的增加。
变化规律:程序存在的时间越久,他的某个部分需要变化的可能性越大。
缺陷定律:程序出现缺陷的可能性,正比于你对它修改的程度。
简洁定律:软件的任何一部分的维护难度,正比于该本分的简洁程度。
测试定律:你对软件行为的了解程度,等于你真正测试它的程度。
没有经过严格测试的软件
目前公司开发的所有项目,都是开发人员根据项目经理的需求,自己进行开发,有些项目甚至没有原型,开发人员只能根据自己的理解来编写代码。结果可想而知,完成的功能经常不完全是所需要完全的功能,这就造成开发人员频繁的去改动代码,一来公司的大部分的开发人员都是新手,编写的代码千奇百怪,有些甚至是直接从网上复制过来的,要排版没版本,代码写的一团糟。经过多次修改后,代码完全失控了,到处都是无用的代码。更可笑的是,公司研发编写的底层代码,也是一个尿性,代码极其臃肿,模块就有二三十个,每次开启一个新的项目,都是把研发部写的底座拿过去搭建环境,在这个的基础上进行开发,原来的底层都这么烂了,编写的代码还能好到哪里去去呀!!!
而且不管是这些在建的项目,还是研发部的底层代码,都是没有经过严格测试的,没有单元测试。所谓的测试,也只是派人在界面上去点一点,测试的情况完全不理想。经常有些功能,在使用的时候发现,还有很多的问题。关键是这些人不是专业的测试,他们只是实施人员。。。
说起来都是泪啊,最终苦的还是开发,都是开发的锅。。。