全部博文(287)
分类: 系统运维
2011-11-29 11:04:09
再议COPYBOOK
copybook是程序编译时一次性装载,即无论这个程序是否用得着,把copybook的定义都编译装载。当然,这样做法会造成一个程序代码存在冗余,但是这个代价是值得的--能够保证项目的规范、能够制约程序开发人员的编程规范。
随着项目的代码叠加,一定会出现一个copybook的内容有变化,即已经使用这个copybook的程序在编译装载后,期copybook的定义相对固定,直到copybook修改后,让程序再次编译装载。一方面,项目的叠加看上去copybook有点乱,比如一个copybook多次发生定义变化,copybook的定义由于多个程序编译加载,造成copybook的扭曲。这种情况发生是项目叠加造成程序的沉淀,即有些程序已经不再使用,这些必须有项目文档支撑、程序源代码支撑、有程序代码规划支撑和项目代码维护等等措施。一个有规范的项目,肯定会把copybook的冗余降低到最低限度。另一方面,好在IBM在程序代码中引入编译导向,即/if definde、/if not definde、/else、/endif等。这样程序员在使用copybook时,编译器可以自动筛选copybook的定义内容,把上面提到的copybook“扭曲”校正过来,把copybook使用朝着项目方向发展。