时间过得真快,不经意间,进入XXX广州开发团队已然有三个多月了。这是一段紧张而又充实的时光,此间收获与体会良多,现简述如下:
一、 技术层面
1、Cognos报表
初入团队,可以说对Cognos知之甚少,在我的概念之中她如同一张白纸,不清楚她是什么和能做什么。几个月以来,不但对Cognos BI的整个体系结构有了进一步的了解,而且经由不断的Report studio的报表开发实践,使用Cognos开发报表的技能也得以熟练和提高。多数据源的设置;鼠标拖放Layout布局;Master-Detail的风行一时;Section的后来居上;Group Title的对齐招数;No record found显示控制的困扰;Bustring时的莫名错误;……我们的开发过程也正如小平同志所说的“摸着石头过河”,在经历了一系列挫折和失败后,技术更加熟练,Report Studio使用起来也更加得心应手。也正是在这个时候,才开始尝到些许成功的喜悦。
2、SQL语句
虽说Oracle及SQL也使用多年,但在这阶段经由SQL获取得报表数据的过程中,也有了许多新的收获。通过外连接、子查询等实现复杂的逻辑;Case When语句的条件取值;Random Select;以及实现特殊目的的以前较少使用的一些函数……从而对SQL也有了新的认识,原来很多功能可以如此实现,原来它的很多东西我们过去未曾或很少用过。也才明白,其实很多常见的事物中也蕴涵着我们不曾了解的东东。
3、Performance的调优
当初选择以原始SQL为基础开发Cognos报表时,Performance也正是考虑的因素之一。从开始时将字符串连接操作移入SQL内部处理到Section方式的大规模替代Master-Detail方式;从外连接与子查询的选择到索引的正确使用……Performance的调优是永无止境的。首先要能跑,其次要能跑得对,再之后便是要求跑得快。这方面还有很多值得学习与研究的地方。印象最深的是,我的PD816的最初版本时运行要大半天,最后的优化版却只需要不多的时间便完成了。
二、 团队协作层面
1、融洽和睦,互帮互助
是谁说过“中国人,一个人是一条龙,三个人是一条虫;日本人,一个人是一条虫,三个人是一条龙”,这句话也正好可说明团队协作能力的重要性。好的团队绝对是1+1>2的。在XXX广州开发团队,一个人有问题,另一个人总能倾其所能予以帮助解决。我也曾有过被一个问题困扰多时,而由Leader或同事几句点化便豁然开朗的体验。
2、互通有无,取长补短
人无完人,谁都有无知的地方或不懂的地方。在XXX广州开发团队,每个人都有各自的特点与优点,我也从他们身上学到了很多很多。通常一个问题谁先解决,一个新技术谁先掌握,都会推而广之,做到经验共享。一个木桶能装多少水,常常取决于最短的那根木块。通过以彼之所长补己之所短,以有余补不足,团队整体能力便可得到较大提高。
三、 几点体会
1、要讲究条理,分清事情的轻重缓急。
我们要做的工作有时非常繁多,很多时候新的任务还没完成,一批需要修正的工作又要
做。在团队里,要明白什么是优先级最高的,什么是可以缓一缓的。否则,总是眉毛胡子一把抓,就很容易弄得手忙脚乱。
2、可维护性始终是我们要注意的地方。
例如SQL语句的按标准编写,合理缩进与适当注释等,对以后的修改工作非常有利。
否则,很可能过了一段时间,自己都要费老半天才能看得懂。
3、重用性是我们追求的目标之一。
工作中及时总结,做成一些通用的模式或解决方案,这非常有用。例如我完成了PD816
以后,PD818就比较
好办;完成了对分年龄段进行分类统计的报表后,再遇到类似问题就有了现成的解决方法。在同事们完成的作业中,也有很多值得我们借鉴的颇具普遍性的解决方案。
4、错误并不可怕,可怕的是不知错误的原因和一而再,再而三地犯同样的错误。
人非圣贤,孰能无过。有了错误并不可怕的,但如果找不到出错的原因,或者屡次犯同
样的错误,那才是最可怕的。有很多时候,我们找到出错原因所用的时间远远大于我们修正错误时所用的时间。
(2007-06-20)