梁老虎

人无远虑,必有近忧

导航

[转载]高质量程序设计

"10大"软件质量属性
功能性:Correctness(正确性)
              Robustness(健壮性)
              Reliability(可靠性)
非功能性:Performance(性能)
                 Usability(易用性)
                 Clarity(清晰性)
                 Security(安全性)
                 Extendibility(可扩展性)
                 Compatibility(兼容性)
                 Portability(可移植性)

如果不懂得如何有效地提高软件质量,项目会付出很高的代价,你(开发人员)不仅没有功劳,也没人欣赏你的苦劳,你拥有最多的将只是疲劳。(这应该是大部分初级阶段程序员共有的悲哀吧)

企业开发产品的目的是赚钱,为了使利润最大化,人们希望软件开发工作“做得好、做得快、并且少花钱”。(身为程序员,应该始终记住这个道理,开发编写程序的目的是为了获得利润,用知识换取财富。到了这个阶段,已经不是为兴趣爱好的东西而设计程序,而是为了正确地高质量地完成一项任务。没用人会为了单纯设计软件而开一家软件公司)

过程与产品存在因果关系。即好的过程才能得到好的产品,而差的过程只会得到差的产品。
(领导对员工们下达命令是总强调:"我不管你们如何做,反正时间一到,你们就得交付产品",结果...)

精确地制定项目计划很重要,不在乎计划中的进度看起来有多么快,计划要恰
如其分。(计划,是一件很好的东西,但计划,又是一件非常非常难的事情,不然怎么总说,计划赶不上变化)

CMM(Capability Maturity Model)是用于衡量软件过程能力的事实上的标准,同时也是目前软件过程改进最好的参考标准。CMM将软件过程能力分为5级,最低为1级,最高5级。目前国内只有几家IT企业达到了CMM2级或CMM3级。但实施CMM时遇到的共性问题是“费用高,难度大,见效慢”。
(好东西需要高成本,凡是涉及人的东西往往都变得非常复杂,光是项目开发里面已经有一堆人需要管理了,再加上一堆做质量评估的人,变得是剪不断理还乱,要是做为质量维护的人能力很高可能是很好的促进作用,要是请了个庸人,难免不会站着说话不腰痛。而且都还是人呢,谁不要吃饭呢。)

编程是一门艺术吗?作者的观点:水平高到一定程度后,干啥事都能感受到“艺术”,编程也不例外。编程艺术是人们对高水平程序创作的一种感受,但只可意会不可言传。
(艺术不是向来都是只可意会不可言传的吗,什么时候普通老百姓看明白了的艺术,就不叫做艺术了。我认同编程也是一种艺术,艺术不就是同样爱好一类东西的人都认同的吗,你要认为它是艺术,它就是艺术)

任何事物都应该是尽可能地简洁,爱因斯坦说的
(我也是这么认为的,可惜我不是爱因斯坦^_^)

(看过了高质量软件设计指南的前两章,确实是一本好书,一本启蒙好书,让你看到了许多程序之外的书。我们都是程序员,程序就是生活,但生活有许许多多并不是程序,程序不应该是生活的全部。开发程序是为了完成一件很好的产品,但一件好的产品不仅仅依赖于程序设计。也许就是希望告诉我们,程序开发的基础很重要,但是管理学知识更重要。每个人都会变老,程序员更容易变老,如何在职业生涯中计划好一条转变的路,更重要。)

posted on 2009-09-28 10:14  梁老虎  阅读(375)  评论(0编辑  收藏  举报