光之远征亡灵世界攻略:自文档化程序

来源:百度文库 编辑:偶看新闻 时间:2024/05/02 02:42:27

自文档化程序在《人月神话》中对流程图做了较为强烈的批判,以下是其中的某些观点,我认为是很有道理的,在此摘出来跟大家分享一下:1、流程图是被吹捧得最过分的一种程序文档。详细逐一记录的流程图是一件令人生厌的事情,而且高级语言的出现使它显得陈旧过时。2、如果需要流程图,很少有程序需要一页纸以上的流程图。[在这一点上,MILSPEC军用标准实在错得很厉害。]3、即使的确需要一张程序结构图,也并不需要遵照ANSI的流程图标准。4、为了使文档易于维护,将它们合并至源程序是至关重要的,而不是作为独立文档进行保存。5、最小化文档负担的3个关键思路:     a)        借助那些必须存在的语句,如名称和声明等,来附加尽可能多的“文档”信息。    b)        使用空格和格式来表现从属和嵌套关系,提高程序的可读性。    c)        以段落注释,特别是模块标题的形式,向程序中插入必要的记叙性文字。6、在线系统的高级语言(应该使用的工具)中,自文档化技术发现了它的绝佳应用和强大功能。 为自己的代码画流程图确实是件“令人生厌”的事,对于熟练的程序员是很少有去画流程图的。结构性较好的程序,一个函数一般不会超过100行,对于代码量较少的函数要看懂也是较容易的。对于复杂算法,就是流程图有时也让人看了摸不着头脑,如果流程图在一页纸中不能全部表现出来,那就更难看懂了。 其实,在画流程图之前已经有了许多设计文档了,如模块设计文档,象那些文档如果能够做得好也是能够让人理解设计过程的。流程图属于详细设计阶段的文档,但是在这个阶段又是修改最为频繁的,要维护文档内容与程序的同步是很难的,经常会留下许多过时的文档,文档缺乏更新有时会比没有文档更糟,如果能够把文档内容跟代码合并起来,那么要做到同步更新是很容易的。 在《人月神话》中举了几个自文档化的例子,说明了把流程图合并到代码中是可能的,有兴趣的可以去看一下。现在已经出现了在高级语言中自动生成文档的技术了,如JAVA语言,只要按规范在代码中写入注释,则可以自动生成有关这个代码的文档。编写自文档化的代码,可以把程序员从书写文档的工作中解放出来,在工作效率上应该是有大大提高的。