(下) % WXl*
3O1Lv2)_
记得那年刚来加州,最大的感概就是那蓝天白云,阳光灿烂.对比而言,新州的冬天,是令人苦不堪言的. 9HiyN>(
ZNk[Jn
[.
这次我是在加州的一个大公司工作,光程序员就上百人.有不少高手,而一般的高手在这儿并不出众.我在一个有约20名程序员的编程部门里工作.有一位高手是我过去的同事的中国同事,能力系数约为25.是我知道的最善于图形编程的. x
_d
CR2.kuM0~
在大公司里工作的好处是,有很多可用的宏.就我所知,多数宏写得平平,经过多人改写,代码支离破碎,且少有定期维护.除非非用不可,我以少用为妙.依我看来, 宏是应是由一人编写,以后也要由编写者本人维护,除非编写者力所不逮才可换人. ADB)-!$xoi
M8 \/[R\
很快,有一个不可不用的宏引起了我的注意.这个宏专用于把一个文件转为另一类文件,我称之为宏R.宏R可称为QC程序员的眼镜.用了它,成百上千页的文件可由电脑程序自行对比检查完成.不过这个宏也常出问题,另有几种擅自的修改版本,也还不顶用.我开始问别人了,答复是,即使用法正确,问题仍会发生,不怪宏编得不好,而是所要处理的文件太复杂多变了. ycki0&n3
2@pEiq3
宏R的原作者是程序员M.我研究过宏R的代码,编得确有许多闪光之处,能够正确组织代码应付如此复杂的数据处理问题,的确是大手笔.又上网查相关方面的论文,能搜到的不多,倒是有一篇论文读了很切题.再看作者,正是M.查本公司网站,见到M相片,并知道还在同一栋楼工作.--若有机会见到他,我估计我会说:我拜读过你的论文,受益匪浅. 8'bZR]
P$N5j~*
据后来我知道的,M是本公司昔日编程头号高手,大概来自欧洲,颇有编程天才.后荣升为经理.他的宏编程能力绝佳,他的能力系数定为:80.是我知道的人中能力最高的. U 0~BcFpD
iC^G^ ~V+H
为工作需要,我盟生了擅自改一改的念头.再加以研究后,发现了其代码上的得与失.有数据处理流程细节上的把握失当,也有算法上的低效问题.而注解中见得着后来的修改者(为何不由原作者来维护?),但从根本上来说,修改又于事无补. F9r/
M"5
Qt_KUtD
我干脆吸取宏R的长处,重写了一个宏(姑且称为R1)为我所用.R1的运行极快,为R的10倍.且运行得更平稳.不久,部门组织2人测试来R1并要求将R1的功能加码,宏R1完成后也成为公司的正式版本.因有多项附加的功能,成为宏R的替代品.宏R1的难度系数:90. %6^nb'l'C
jq8TfJ|
不久,本部门又来一个程序员Y,工作经验近10年.编程上见解独到,代码分析细致入微.高手,能力系数:20. Tz.okCo]z
hNkv lk'Ui
一天,经理交给我一项任务,编一个宏(姑且称为G),为每个程序员所使用.要求它自行测出当前程序文件名和路径,找到最近的输入/输出数据存放处….总之,就是在每个程序的开头都使用这个宏,让它去做它所能做的一切.我是宏G的编程者,Y为宏G的两名测试者之一.没想到,在我刚开始编时,Y就给我两个好建议,进度加快了.开始测试后,他又有好的改进意见.就这样,编程,测试,讨论,直至顺利完成.宏G的难度系数:70 #f_'&m
;;XY&