软件项目管理(2)
目录
1. 代码规范
不同的编程语言以及不同的人使用都会有自己的一套风格,没有严格意义上的好坏之分,每一种风格的编码方式都有自己的群体,每个人的坚持成为一种编程的乐趣和调侃。就想每种语言都有人在使用,在各自的领域里也都有自己的一技之长,甚至多计之长。
这些在每个项目里都不成问题,但是一旦同一个项目出现了几种不同的风格,那这种不一致性将可能对项目代码的阅读和维护和贡献造成巨大的难以估量的损失。因此,我们有必要在项目开始时就对编码规范达成一致。
编辑代码时,花点时间看看项目中的其他代码并确定其风格,如果其他代码 if 语句中使用
空格,那么你也要使用。如果其中的注释用星号()围成一个盒子状,你也这样做:
/*********************************
Some comments are here.
There may be many lines.
**********************************/
编程风格指南的使用要点在于提供一个公共的编码规范,所有人可以把精力集中在实现内容
而不是表现形式上。我们给出了全局的风格规范,但局部的风格也很重要,如果你在一个文
件中新加的代码和原有代码风格相去甚远的话,这就破坏了文件本身的整体美观也影响阅
读,所以要尽量避免。
本文讨论的规范主要来自Google C++ 编程规范,仅是个人使用中努力坚持的一种规范,不代表其他人的观点。
2. CheckList
类型 | 列表 |
---|---|
头文件 | # define的保护、头文件的依赖、内联函数、-inl.h 文件、函数参数顺序、包含文件的名称及次序 |
作用域 | 命名空间、嵌套类、非成员函数、静态成员函数、全局成员函数、局部变量、全局变量 |
类 | 构造函数、默认构造函数、明确的构造函数、拷贝构造函数、结构体和类、继承、多重继承、接口、操作符重载、存取控制、声明次序、编写短小函数 |
Google特有的风情 | 智能指针 |
其他C++特性 | 引用参数、函数重载、缺省参数、变长数组和alloca、友元、异常、运行时类型异常、类型转换、流、前置自增和自减、const的使用、整数、64位下的可移植性、预处理宏、0和NULL、sizeof、Boost |
命名空间 | 通用命名规则、文件命名、类型命名、变量命名、常量命名、函数命名、命名空间、枚举命名、宏命名、命名规则例外 |
注释 | 注释风格、文件注释、类注释、函数注释、变量注释、实现注释、标点、拼写、语法、TODO注释 |
格式 | 行长度、非ASCII字符、空格还是制表位、函数声明与定义、函数调用、条件语句、循环和开关选择语句、指针和引用表达式、布尔表达式、函数返回值、变量及数组初始化、预处理指令、类格式、初始化列表、命名空间格式化、水平留白、垂直留白 |
规则之例外 | 现有不统一代码、Windows代码 |
3. 过程控制
3.1 燃尽图
燃尽图(burn down chart)是在项目完成之前,对需要完成的工作的一种可视化表示。燃尽图有一个Y轴(工作)和X轴(时间)。理想情况下,该图表是一个向下的曲线,随着剩余工作的完成,“烧尽”至零。燃尽图向项目组成员和企业主提供工作进展的一个公共视图。这个词常常用于敏捷编程。
3.2 甘特图
甘特图(Gantt chart)又称为横道图、条状图(Bar chart)。以提出者亨利·L·甘特先生的名字命名。
甘特图内在思想简单,即以图示的方式通过活动列表和时间刻度形象地表示出任何特定项目的活动顺序与持续时间。基本是一条线条图,横轴表示时间,纵轴表示活动(项目),线条表示在整个期间上计划和实际的活动完成情况。它直观地表明任务计划在什么时候进行,及实际进展与计划要求的对比。管理者由此可便利地弄清一项任务(项目)还剩下哪些工作要做,并可评估工作进度。
3.3 鱼骨图
鱼骨图,又名因果图,是一种发现问题“根本原因”的分析方法,现代工商管理教育将其划分为问题型、原因型及对策型鱼骨图等几类。