离开Etp到公司来一个多月时间了,一直忙于公司本身的培训,把Etp那边的项目放到一边一耽搁就是老半天了。一直想找个时间把在ETP学到的东西做个整理,这活就趁现在有劲的时候来干了。
程序按照企业的要求规范来写,确实和我们以前写的程序有很大的不同,这里的10条tip,贴在这里当给自己做一个小结了。
1:日本企业中要求COBOL程序的制作日期按照“年/月/日”的格式来写(PS:这点我没有做考证,只是从式样书上参考过来的),并且每一个Item都是写两个位置,不再是以前很随意的那种写法或者欧美格式的“月/日/年”。
2:File Section和Dara Section里面定义的所有常量、变量都要求PIC字段中的括号对齐。这样写出来,一本程序可以Coding得很漂亮,让人一看起来就感觉你很专业。这样也对应了Mr Yang的一句经典:程序写到人家一看就知道哪里错了,那就说明你的程序写得很标准了。
3:由于我们的程序都是IBM以前做过的对日项目,式样书里面全部是日文内容。
F8用于切换平假名和片假名;F9切换半角和圆角;F10切换为英文字符
补充这个是因为程序要求日子字段对应过来的英文字段必须得非常准确,例如:
Conversion对应的日语翻译为KONNBA-JON,不能够按照自己的理解来翻译。所以,新人进公司常常被告知写程序最好常用Copy、Paste,道理也就在这个地方。
4:这条肯定是对每个Programmer来说都很重要的一个规则,程序中绝对不需要多余的变量,尤其是全局变量。以前写程序的时候都没在意这个问题,还总以为多定义一两个变量可以方便以后程序的拓展,其实这样做很容易留下一个隐患就是为系统留下漏洞。
因为,程序在编译的时候是按顺序讲COBOL源码翻译为中间程序,然后内存中分配寻址空间的,这样一来,定义了多余的变量,就会在内存中空出来多余的寻址空间,有留下漏洞的隐患。
5:程序的主逻辑绝对要按照程序给的标准(构造图)写,专业和规范!上次在公司培训V+的时候,TL跟我们讲到了Sequential Match,然后就以银行中同一个Account No下多个Card No做求和操作时谈到两个文件做顺序比较的问题,结果说的一句就是按照明确的逻辑规范来写,不会出错而且这种逻辑是前人曾经走过的,效率方面也是最好。
6:Occurs和Value的位置任意,但是一般做到与Pic对齐。
7:对程序的每个功能块加上“Box”,标识每个块的功能作用,不管是对大的程序还是小的程序,这都很必要。一本程序做出来并不是写给你一个人看,以后的维护操作说不定会经过很多Programmer的手,做到勤加注释,方便了别人也同时方便了自己。
8:Swith-area部分程序的开关要求按规范来写。
9:听了老师讲解之后,现在理解了为什么要把一个大的系统拆分成若干个小的程序来做了。
第一是这样写程序简单明了;二是易于维护;最重要的一点则是在很大程度上保障了系统的安全,因为即使系统遭到破坏、入侵,恶意者也只是获取到整个系统程序的一部分,不会对整个系统构成威胁。
10:5位的COMP-3型数据在系统中只占3个byte。Comp、Comp1、Comp2、Comp3这4种不同类型的数据非常有必要重点理解。
12:一句印象很深的话:
在公司里面,一个失败的Team里面没有一个成功的个人;一个成功的Team里面才会出现一个成功的个人。
13:在ISPF里面“点”与“分号”的区别是:点号是用在同一个程序下进入;分号是用在不同的程序下进入
14:Mainframe操作系统和Windows操作系统一样,也存存在文件分区表的概念,所不同的是Windows的文件分区表是安装系统的时候自动创建好了;而MainFrame上面则是由VTOC程序实现文件分区表的创建。
15:Jenson讲到花旗银行亚洲某国家每天都把银行当天的业务数据用GDG文件进行备份,然后转存到磁带上面,永久保存。
16:COBOL中的Copy是把外部文件直接拷贝进来,与COBOL程序一起进行编译;
CALL则是把外部文件引用进来,外部文件需要单独编译。
17:建行Mainframe系统使用API来维护程序,即使你在建行有多年的开发经验,也只是熟悉API程序运用或者接口,跳槽也得重新开始。呵呵,这个是听公司老大说的,正不正确我就不清楚了,只做一家之言。
18:工商银行数据中心在上海外高桥,存储在北京;大型机的并行处理能力很强,并且硬盘有加密功能。
大型机可以分多个区,每个分区安装独立的系统,5、6个系统可以同时共存。
19:深刻理解COBOL中Next sentence和Continue的区别,Next sentence是将程序控制跳到下一条Sentence,而Continue是将程序控制传递给本Sentence的下一个statement,它本身只是一个空操作。
20:Open output方式打开的文件一定只能是新建的,也就是说文件在write之前没有任何记录。
21:DFsort做排序比COBOL中的SORT效率高,因此对文件记录做排序的时候优先在JCL中进行。
22:Filler字段在COBOL程序中初始化为“Low-value:。
目前仅仅更新这么多,以后的Cics、Map、Cursor等等陆续会出来,学完了再做总结。