也许在很多人眼中,程序文档并没有那么重要,只要程序代码能够写出来就OK了,尤其是在一些小公司,一个人做很多事,程序员很不愿意写文档,甚至代码的风格、规范也不是很顾忌。在刚来公司的时候,就接手了一些小模块,由于没有文档,程序中也鲜有注释,对其功能、原理、结构都不是很清楚,尽管量不是很大,还是看了好久才能够熟练的维护和优化这些代码。我虽然也不是计算机科班出生,但是对文档的重要性还是比较清楚的,它们不仅对自己很重要,对整个开发团队成员之间的合作也很重要。
就我个人而言,也不是开发文档的忠实拥护者,但是我还是认为适当的文档会给程序的开发、理解、维护带来很多好处,尤其是在团队合作时。
首先,我认为注释即文档,作为一线程序员,往往对自己现在写的代码很熟悉,一看就知道什么意思,但根据我自身的体验,过了几个月再来看,对于其中的关键部分或比较特别的代码段,关于其原理和作用,已经模糊了。这时候,代码当中的注释就很有用了,例如在一个函数中,每隔几行或重要部位,写上几句注释,不管什么时候来看,都知道当时为什么这样写,也便于后期的维护和优化。我就经常遇到这样的事,过来很久来看以前的代码和注释,发现有另外一种很好的办法来解决问题。同时,代码注释也能够让后来者能够很好的理解代码,开始工作。
另外,当自己开发比较大的项目或模块时,如果辅以相关文档,更能便于自己对项目或模块的理解以及子模块的组织和编写。在实践的过程中,我一般不会像写项目需求文档那样写很详细的文档,只会记载自己对项目或模块的理解和解决思路,是一个很概要的东西,这个文档可以让自己加深理解,也可以给后来人关于这个项目的一个指导思想,而不是只有密密麻麻的代码。
文档还有一个重要的作用就是团队成员之间的交互和合作。我个人而言,在给同事提供一个C++头文件时,一定会附上一个详细的接口说明文档,包括接口的作用、参数的意义、返回的结果等。在这里,我是服务提供者,同事就是消费者,为我的同事提供一个详细的说明文档,能够节省后续开发过程中很多不必要的解释和争论。有的时候我作为消费者和同事合作时,仅仅得到一个头文件和一个动态库,没有任何说明,然后我在每次要调用一个函数或使用一个类接口时,都要去问一下这个怎么用,参数怎么传递等,浪费了很多时间,也再不断消耗同事的耐心,因为我不可能根据这个函数原型就能了解他的使用,并写出可靠的代码来。
作为一个有几年经验的程序员,我从始至终都很关注我的代码风格、编程规范、注释、文档,我觉得这不仅没有浪费多少时间,还给我提供了很多帮助,节省了很多时间。