软件开发时会涉及到很多种文件,包括源代码、文档、引用库等,一般采用如下方式进行组织:
|--docs 项目文档包括设计、说明、需求等文档
|--lib 库文件
|--src 源代码
|--include 包含库的头文件
|--outputs 生成的安装程序包
|--tests 测试用例及数据
|--releasenotes.txt 版本历史纪录的文件
Docs目录存放各种文档,包括软件设计、软件使用说明、需求表、设计图表等等、如果文件的个数超过20个那么需要建立子目录区分各类文档,原则是根据软件开发过程对应的阶段进行划分,即分析(Analysis),设计(design),编码(coding)和测试(test),该目录由项目负责人维护。
Lib目录存放引用的第三方库文件,包括自身项目DLL编译的LIB文件和商用第三方的LIB文件。文件个数比较多的时可以建立子目录区分,原则是该目录下面的LIB文件根据平台的不同进行区分。该目录由项目负责人维护。
Src目录存放源代码,根据项目需要可以把项目工程文件放在这个目录下面,遇到需要区分不同平台可以建立子目录区分开,原则上自身项目所开发的不同的DLL对应特定的目录,框架代码放在当前目录下,如果框架运行在不同平台,建立平台子目录进行区分,另外一个情况是自身项目需要在同一平台需要不同框架代码,建立对应目录。该目录由项目负责人制定,由开发成员共同维护。
Include目录,存放各种头文件,由IDE编译过程中自动复制生成,在vs2005中的设置方式如下图。原则是该目录下的头文件是确实需要被第三方工程引用的头文件,另外,隶属于同一项目(比如DLL)的头文件放到对应的目中。该目录由项目负责人维护。
Tests目录存放当前项目所需要的测试计划,测试用例及相关测试数据。
Outputs目录存放编译生成的二进制文件,由项目负责人维护,到达一个里程碑以后项目负责人编译生成并提交。如果多平台的项目,需要建立对应的平台目录,同时必须保证该目录下面所有的文件或子目录可以被直接打包编译成安装文件。测试人员从该目录获取测试程序。
Releasenotes.txt是项目维护历史纪录,由项目负责人维护,每一次标签、分支等重要动作均在文件内反映出来。