一个软件公司的人员是具有流动性的,公司里面的某个程序员离开了以后需要招入新人,让这个新人去理解和领会离开的程序员所实现的模块却没有相关的代码注释是不可想象的,但即便是加上了注释的文字,新人也非常有可能需要花相当多的时间才能理解通,因为看懂代码的一小块并不表示你能看明白整个模块,毕竟里面总还是存在一定的上下文关系的,所以要完全明白离去程序员的工作一定还是会付出许多的时间作为代价,这对项目的进行是有不小的影响的。而且即便是对于该模块一直进行工作的“老人”(特别对于大的项目),当某一个局部久不接触了也是会有一定的遗忘的,这时候就不得不再次去理解它,这也要花好多时间的。甚至如果是项目的系统设计者离开了,那问题就更大了,如果接替的人不能很好很快的理解原先的设计者的设计思路,那项目就有相当大的风险了。这些问题能不能通过某些方法得到缓解呢。。。
坐在破竹椅上,我突然来了个莫名其妙的想法,为什么不能将程序员和系统设计者甚至其他项目有关人员的工作录下来成声音文件或者视频文件呢。比如某个程序员在写完了程序的某个函数之后,就用录音用的话筒录下自己对该函数的一翻口头描述,比如函数名是什么,函数的功能是什么等等常规的文字注释中也有的描述,接着可以录制下自己如何去实现这个函数的,采用的是什么方法(细节上的),为什么这么做,有什么含义啦,还可以录下调用该函数的一些注意事项啦,甚至还可以附上该函数的一些缺陷啦,等等等等,你想录什么录什么。对系统设计者的工作的录制就更有意义了,比如录下他为什么采用xxx设计架构啦,为什么这样分模块啦,结构和类的个成员为什么要这样定义啦,它们各自有什么作用,类以类之间存在什么关系等等许多东西都可以而且是应该录下来,毕竟设计者和实现者他们亲自的口头的表达能够提供的信息量是可以远远大过文字文档的说明的,通过语言的引导要远远比单一的用文字表述强得多(否则还要老师来干嘛,是吧),后面才加入开发的人可以通过这种方式快速的融入团队。同时语音录制是很方便容易的事,先不说别的,说话的速度绝对会比打字或者写字速度快吧(不要告诉我你连说话都懒哟),而且公司可以通过这种办法来锻炼员工的口头表达能力,这对公司员工的沟通和交流,甚至对项目的实施都是相当有好处的。
我的办法是说完了,现在举个例子。比如设计了一个这样的函数
void CGUY::playFootball(WHERE* pHere)
{
.....................
}
你就可以将你对这个函数的口录录制为文件GUY_playFootball.wav,如果你嫌大就录成GUY_playFootball.mp3,你自己决定啦,如果你喜欢可以弄成带声音的视频文件,通过视频你还可以把你的一些操作录下来以便以后更方便的使用,当然这需要你的硬盘越大越好啦:)
如果你看了这篇文章后也试着尝试可能会发现里面有一个很大的问题就是:一个声音文件那么长并不是每个地方我都想听啊,你说得对,对这个问题我也没想好啦,我是在写这篇文章前的5个小时才有的这一整个的想法的啦,我可是本着共享的原则才马上放出来的。我想也许可以将声音文件进行分区,不同的区放某一类录音信息,比如对一个函数可以有一个常规区,放的是平常在程序的文字代码中都经常能看到的文档说明;设置一个设计想法区,放的是有关实现的代码细节的口头描述;设置一个调用注意事项,里面放的是调用函数需要注意的一些问题,等等,要有一个分区信息检索的话那就很棒了。我想我现在的想法一定会有许多的不足和问题,但我现在只想看它有价值的一面:)
要是这个想法对大家有点点用就好了,至少我觉得它会有用的,对我来说要是在编译器里和CVS软件里面能放上这些东西那该多爽啊,对于那些真心的希望OPEN SOURCE的人,它要是提供这些声音信息,我们看代码就不用那么头痛了!!!!!到此了,这篇文章写得很不严谨和整洁,请大家原谅了,如果你有什么想法可以发邮件到我邮箱yuang_157@163.com吧,随你便了,BYE