3. 开发文档
在项目进度安排中我们已经把写文档的时间也规划进去了,这里虽然是写文档,其实是设计程序,整理一下思路与架构,磨刀不误砍柴工,这样在实际写代码时会流畅很多,节省时间,因此可以说真正有思想性的东西都在写文档这段时间内完成了。当然我们这里的文档格式不象ISO那样规定了条条框框,我们的文档格式相对自由,基本上能随意发挥,但对于几个主要点一般来说是需要说明的。要求写的文档能让他人比较容易地看明白,能把问题讲清楚,能反映你的设计思想。文档的数量也不多,开发文档有两类,一类是function Spec,另一类是Design Document。
function Spec中需要写明的是本模块完成的任务,解决什么问题,有什么作用,为什么要这些功能,此外我们还会添加进适用范围,有什么不足,注意点是什么,还有哪些地方在以后可以进行改进。在这个function Spec中不涉及到任何非常详细的算法。此文档不光给开发人员看,还让QA及其他成员以及后来的新人能根据此文档来了解此模块的大致功能,同时也会给文档编写者看,他们会根据这些function Spec整理出一份用户手册,告诉用户此版本中新增了哪些功能,各功能模块有什么作用,如何使用等信息。因此在我们的开发过程中function Spec是很重要的文档,此文档完成后会抽出一段时间同相关人员及QA一起review这个文档,让QA了解设计者的意图,同时熟悉新的功能模块,为接下来的测试作准备。如果其中有误解或不明之处,大家会提出来探讨并由开发者修正。
Design Document中主要描述实现此模块所涉及到的主要算法、数据结构、类的层次结构及调用关系。这个文档的阅读者主要是开发人员,包括任何想了解详细实现代码的人,帮助人们理解代码。在某些功能模块比较简单的程序中,此文档所描述的信息会比较少。此文档不象function Spec要在开始写代码前就编写完成,它可以随着代码编写的进行而增加,但基本上遵循文档先行原则,也就是要增加新的代码或修改代码前若有涉及到文档部分的应先修改文档,然后再修改代码。
4. 编写代码
由于我们用JAVA语言进行开发,因此我们借助了Jbuilder IDE工具。关于代码风格,我们基本上套用Jbuilder中自动的代码格式编排,但其中需要改变的是缩进是4个字符,类与类之间间隔2行,方法与方法之间间隔2行,import类时用完整的类名。写代码时要对类及函数提供详细的注释及说明,基本做到看它们的说明就能知道这个类或函数的功能以及主要算法的实现原理。在开发过程中对主要的模块要编写UnitTest,同时要UnitTest先行,也就是遵循XP规则中的测试驱动原则,当所有的单元测试代码通过时,此功能也就基本上完成了。
5. 代码管理
我们采用VSS+SourceOffsite进行版本控制,其中存放了此产品的所有源代码、库文件、文档及release时的安装程序,各个部分存放在不同的目录中。每天早上要求开发人员从VSS中get latest version的源代码,然后进行编译并开始一天的工作。在下班之前理论上要求员工check in所有当天修改的代码,在check in之前要保证编译是能通过的。若有谁check in的代码导致daily build失败则会被要求某些惩罚措施或警告,象微软公司要负责照看当日的每日构建。有时我们