内容提要:
软件质量与代码质量密切相关,无论是敏捷开发流派还是传统开发流派。
生命周期模型有瀑布型,喷泉型,迭代型,螺旋型等。
一般比较复杂,对安全要求高的大型项目,应采取传统的瀑布型开发。
对于中小型,需要快速投产的项目,应用灵活的生命周期,采用敏捷型开发。
传统开发流派:
1.刻板而严格控制。
2.很多活动和工件,官僚主义气息浓重。
3.文档繁多。
4.长期而详细的计划。
5.过程高于本质核心的工作。
6.面向过程而不是面向人,把人看成机械方法中的插件。
7.预见而不是适应。
敏捷开发流派:
1.个体和交互胜过过程和工具。
以人为本,注重编程中人的自我特长发挥。
2.可以工作的软件胜过面面具到的文档。
强调软件开发的产品是软件,而不是文档。文档是为软件开发服务的,而不是开发的主体。
3.客户合作胜过合同谈判。
客户与开发者的关系是协作,不是合约。
开发者不是客户业务的“专家”,也不是为了开发软件,把开发人员变成客户业务的专家。
要适应客户的需求,就要通过客户合作来阐述实际的需求细节。
4.响应变化胜过遵循计划。
设计周密是为了最终软件的质量,但不表明设计比实现更重要。
要适应客户需求的不断变化,设计也要不断跟进,所以设计不能是“闭门造车”、“自我良好”。
要不断根据环境的变化,修改自己的设计,指导开发的方向。
学习如何在命名,函数,注释,代码格式,对象,数据结构,错误处理,边界问题,单元测试,类,系统,并发编程等方面做到整洁。
1.2 糟糕的代码会毁掉公司
糟糕的代码称为wading(沼泽),代码应该及时清理,而不是稍后。
LeBlanc法则:稍后等于永不。
1.3 糟糕的代码会使进度的延缓程度变得严重,对代码的每次修改都可能会影响到其他两三处代码,使团队生产力持续下降,趋向于零。
当生产力下降,管理层只会增加更多的人手到项目中,期望提高生产力,但是新人并不熟悉也看不懂这糟糕的代码,所以压力越来越大,最终生产力不断下降趋向于零。
花时间保持代码整洁不但有关效率,还有关生存。
程序员如果遵从不了解混乱风险的经理的意愿,也是不专业的做法,就好像病人要求医生手术前别洗手,说那样会浪费时间。