从本月开始,开始阅读《代码大全2》这本书,在本书的前言中作者非常简要的说明了在现在编程中所存在的问题:近年来,关于软件开发的研究,进展是非常迅速的,但是开发实践却并非如此。许多程序仍然是错误百出,充斥着过时的技术,从而无法满足用户需要。在这种背景下,作者写下了这本书。
第一章主要围绕软件构建进行展开,讲解了什么事软件构建还有软件构建为什么如此重要。本章的主题是熟悉软件开发流程,区分哪些是”构建活动“需要做的事情,哪些是”非构建活动“需要做的事情。
软件构建可以分为三个阶段,每个阶段中包括不同的内容。第一阶段为准备阶段,包括定义问题,需求分析和软件构架。第二阶段是构建阶段,包括详细设计,规划构建,编码与调试,单元测试和集成测试。第三阶段为测试与维护阶段,包括集成,系统测试和保障维护。
在上面这些过程中,可以分为两种活动。一种是构建活动,另一种是非构建活动。其中构建活动就是软件编写过程中动手的部分,构建活动主要是编码与调试。但也涉及详细设计、规划构建、单元测试、集成、集成测试等其他活动。构建需要可观的创造力和判断力。在全书中,我也常常用“编程”代替“构建”。非构建活动包括管理、需求分析、软件架构设计、用户界面设计、系统测试,以及维护。以上每一项活动都像构建活动一样最终影响着项目的成败——至少能影响任何有不止一两个人参与、超过几周时间才能完成的项目的成败。
构建活动是软件开发的主要组成部分,也是软件开发中的核心活动。构建活动的产物——源代码——往往是对软件的唯—精确描述。在一些项目中,程序员唯一能够得到的就是源代码本身,因此源代码必须要有尽可能高的性能。
在第一章的最后,作者介绍了应当如何阅读这本书,从我自身来看,我认为我目前最想学习的是特定的编程技巧,因此我将从第六章"可以工作的类"开始进行阅读。
构建高质量的类,作者介绍了ADT抽象数据类型,能够隐藏实现细节和内部数据,降低耦合,增加可读性,方便维护。在一个高质量的类中,应当有如下的部分。1.良好的类接口,类的接口应该展现一致的抽象层次,根据类就大概能知道类的作用。在类中可以把不相关的部分转移到其他的类中。2.良好的封装,尽可能地限制类和成员的可访问性
避免公开成员数据,少用protected降低派生类和基类间的耦合,在不是很坚定的情况下,尽量选择更严格的访问级别。
在创建类之前,我们也应当知道创建类的原因,有可能是为了事物的抽象模型,降低复杂度。
也可能是为了隐藏全局数据,限制数据的影响范围,还有可能是为了传递参数,让代码更加流畅美观。
之后讲解了高质量的子程序,在子程序层的实际上我们应当注意子程序中各种操作联系的紧密程度,如果子程序之间的联系不够紧密,代码出错的可能性将会大大提升。同时子程序应当有一个好的名字,可以更加直观的看到子程序的功能,让你更加清晰流畅的调用各种子程序。