CC2 notes[001]

cooky 发表于 2007-11-20 22:05:39

    最近在看《代码大全》(第二版),即 "Code Complete"(2nd edition) 简称CC2。摘抄点内容作为笔记,以备以后复习用。

    关于软件构建。软件构建是软件开发的核心活动,是每个项目中唯一一项必不可少的工作。软件构建的主要活动包括:详细设计、编码、调试、集成、开发者测试(包括单元测试和集成测试)。对”如何进行构建“的理解程度,决定了一名程序员的优秀程度。

    关于前期准备。构建活动的准备工作的根本目标在于降低风险。软件开发过程必须由始至终关注质量。让你的老板和合作者明白在开始编程之前进行充分准备的重要性。许多项目应该是高度迭代式的,某些应该是序列式的。如果没有明确的问题定义,那么你可能会在构建期间解决错误的问题。如果需求变更发生在构建之后的阶段,其代价是在项目早期更改需求的20到100倍。要有良好的架构设计。理解项目的前期准备所采用的方法,并相应的选择构建方法。[核对表:需求] [核对表:架构] [核对表:前期准备]

    关于关键的构建决策。要”深入一种语言去编程“(programming into a language),而不是仅仅”在一种语言上编程“(programming in a language)。在开始编程之前,做好一些约定,使团队的每个人更容易理解其他人的代码。[校对表:主要的构建实践]

    关于软件构建中的设计。理想的设计特征包括:最小的复杂度,易于维护,松散耦合,可扩展性,可重用性,高扇入,低扇出,可移植性,精简性,层次性,采用标准技术。软件的首要技术使命就是管理复杂度,以简单性作为努力目标的设计方案对此最有帮助。简单性可能通过两种方式来获取:一是减少在同一时间所关注的本质性复杂度的量,二是避免生成不必要的偶然的复杂度。设计是一种启发式的过程,固执于一种单一的方法会损害创新能力,从而损害你的程序。信息隐藏是个非常有价值的概念,通过询问“我应该隐藏些什么?”能够解开很困难的设计问题。设计的一般层次:1.软件系统,2.分解为子系统或包,3.分解为类,4.分解成子程序。主要设计中的启发式方法:寻找现实世界的对象,形成一致的抽象,封装实现细节,在可能的情况下继承,信息隐藏,找出容易改变的区域,保持松散耦合,探寻通用的设计模式。其他启发式方法:高内聚性,构造分层结构,严格描述类契约,分配职责,为测试而设计,研究以前出现过的失误以避免失误,有意识的选择绑定时间,创建中央控制点,考虑使用蛮力,画一个图,保持设计模块化,等等。分而治之。自上而下和自下而上的特点。[核对表:软件构造中的设计]


收藏: QQ书签 del.icio.us 订阅: Google 抓虾

最新评论

发表评论

* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 
 

分类小组论坛
杂谈, 娱乐、八卦, 文学、艺术, 体育, 旅游、同城, 象牙塔, 情感, 时尚、生活, 星座, 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定