作者:朱金灿
来源:blog.csdn.net/clever101
代码具有功能价值和非功能价值
功能价值指代码完成其设计功能的价值:
结果
效率
容错
非功能价值指代码在维护和复用方面的价值:
沟通
简洁
灵活
好的程序执行后能得到正确的符合精度要求的结果,运行效率令用户可接受或者满意,对错误的外界输入能够做出恰当的响应。
好的程序其代码容易阅读和理解,易于复用,不包含多余的内容和额外的复杂性,并且提供了进一步扩展的可能性。
代码虽然是用来在计算机上执行的,但是它也经常需要由人来理解
软件开发中的大部分资金和人力花费在已有代码的阅读和维护上面
在编写代码的时候考虑到其他有可能会读这些代码的人——请可怜可怜他们吧
A program should read like a book. It should have plot, rhythm, and delightful little turns of phrase.
简单清晰的代码通常是易于理解和修改的
有些代码的复杂性体现了所要解决问题的复杂性,但是有些复杂性对于问题而言是多余的
简洁的代码通常会迫使人员进行创新,新的框架、新的模式、新的语言、新的架构……虽然创新的产物本身可能会更加复杂和精巧,但是在其之上的代码将会异常的简洁和优雅,ASM、C、C++、Java、C#、Python、Erlang(这里解释一下:起初使用ASM开发比较复杂,然后C对此简化了一下,然后适应面向对象的潮流C++比C又复杂了,而针对C++的复杂性Java又做了简化)
灵活
情景:为了确定一个程序运行时需要的常量,程序首先查找特定名字的环境变量——该环境变量包含一个文件名。根据文件名,程序打开并解析这个文件,最终得到需要常量
使用模式通常会提高程序的灵活性
灵活性的提高常常会增加程序的复杂性,开发人员需要权衡
我们允许自己被子弹击中一次——但是只允许一次!(就是如果第一次设计做不到灵活性,在进行第二次设计开发就要进行这方面考虑)