Monthly Archives: February 2006

我的2005年回顾

我的2005年回顾   客观的说,这篇总结写的晚了点,毕竟2006年都过去一个多月了。虽然在2005年的12月就有写的心情,但由于种种原因,没能动手做这件事情。拖到了春节放假,也该静下心来了吧!   总的来说,2005年还是学了点东西,不过感觉太杂了,没有什么方向,这也是我一直没有能够解决的问题。由于大多数学习内容是和工作息息相关的,所以很多东西都了解的不够深入,基本上能够解决实际问题就可以了。没有办法啊,毕竟我的本职工作不是专门做技术研究的。   SAP开发: 1、 ITS的了解和应用。 在SAP 4。7里面ITS已经整合到了AS中,现在ITS已经有些落伍了。不过从应用ITS的初衷来讲,我觉得选择ITS是个不错的选择。通过ITS,我们有了SAP R/3的WEB访问界面,而且可以更好的控制用户的权限。付出的代价就是操作方便性的降低,这也是不可避免的,C/S架构的软件总体上说是比B/S架构的软件操作起来方便一些,尤其对SAP这样操作界面比较复杂的软件。   2、 MODULE POOL和SCRIPT FORM的开发 这两项内容比以前的了解深入了一些,而且也做了一些实际的程序,应付一些简单的案例应该没有问题。 MODULE POOL的程序大多数是做的TABLE CONTROL的开发,实用性较强。因为需求的缘故,像SAP里面自带的N个屏幕的程序还没有做过。我感觉难度并不大,和以前用DELPHI写WINDOWS应用程序实质上没什么区别,甚至还要好控制些,毕竟多数情况下用的还是全局变量。 SCRIPT FORM方面接受了一次部门的内部培训,从概念上有了比较清晰的认识。总体感觉SCRIPT FORM比较乏味,不过是报表的另外一种显示方式而已。因为可以控制显示的字体大小和输出位置,在一些特殊场合还是有用的,等有机会再实践吧!   3、 ABAP开发复杂程序的实践 写了一个生产排产的小系统,和SAP的关系不大,但数据关联较多,所以直接用ABAP写了。虽然现在这个小的系统也能使用,但是我很不满意,排产计算时经常有意外情况,日常的维护工作量太大了。对我来讲,下面几点应该是一些教训。 需求分析: 坦白的说这次开发工作根本没有做需求分析,因为需求太笼统了,刚开始除了一个总的排产原则,谁都讲不清楚要具体的排产逻辑。大部分的开发过程是边写代码边细化逻辑,开发效率极低。对于这种情况,我甚至怀疑软件工程的方法,是不是能够在写具体的代码前把需求真正搞清楚? 程序测试: 在程序开发的过程中,测试的重要性是不言而喻的,尤其是复杂的应用。可惜的是最开始对这一点认识并不深刻,草草测试后就放到生产系统中去使用,结果漏洞百出,根本无法使用。对用户而言,他们并不喜欢繁琐的测试,总是希望你的程序做完后到生产系统直接使用。大部分情况下,开发初期我们降低了自己的要求,放纵了用户的随意性,使得后期的测试工作寸步难行。因为在项目后期,时间的因素使得我们都不愿意去花时间重新搭建完整的测试环境,而是被迫不停的在修改程序和发现问题中轮回。可怜啊,我开发的排产程序,到现在还没有一个完整的测试环境! 程序模块化:由于生产排产功能和SAP相对独立,很多代码都需要自己从头写,这时候程序的模块化和重用就显的特别重要。由于事前低估了整个开发难度,造成所有的代码集中在一个文件中。现在这一个程序已经快5000行了,看一遍都十分困难,更不要说修改了。如果现在换一个开发人员,理解这些代码的含义非常困难。另外一点就是在程序中使用大量使用FORM时必须避免的两个问题:第一个问题是在FORM中使用全局变量,大多数情况下我们无法抵挡全局变量方便性的诱惑,在小的程序中这个弊端还不明显,可是在大型程序中,修改全局变量稍不注意,整个程序就不知道错到哪里了;第二个问题ABAP的弱类型造成的,定义FORM是可以不指定参数的数据类型,在一些强类型语言中编译期间可以发现的问题在ABAP中只有DEBUG是才能发现。总的来说我们需要在方便性和严谨性之间做一个平衡。 压力承受能力:在这次开发过程中我承受了前说未有的压力,好几次甚至想到了放弃,如果是自己学习的话99%是放弃了。上面说的几方面问题搅在一起,领导又认识不到开发的难度,加上没有人进行交流和倾诉,整个人过多的处于警戒状态。虽然通过自己的不懈努力,现在排产系统能够将就使用了,但说实话,我不知道下一步该如何处理,就这样将就下去,还是花时间重写代码?   数据库: 主要是对ORACLE的学习,包括安装和INSTANCE,DATABASE,TABLESPACE,TABLE,USER等各方面的管理,重点是理解ORACLE的原理和机制,应该说现在对ORACLE有了比较深刻的认识。PL/SQL方面简单看了一些资料,没有做复杂的开发。遗憾的是《Expert one on one Oracle》这本书后面几章没有看完,可能最开始学习ORACLE的那股劲头松下来了;另外一方面是英文的问题,我看的是这本书的原版,理解起来比较吃力。中文版的就不用提了,翻译的不知所云,还不如我看英文的去慢慢理解。   BI: 说是BI可能有些夸大其词了,实际上我们还只是用来做报表开发。从程序开发的角度而言并没有什么长进,只是了解具体的报表工具和ETL工具。   VBA: 学习VBA开发完全是意料之外的事情,起因是BI工具用的不熟练,但根据实际需要又要求一个比较可视化的报表界面,于是想到了EXCEL和VBA。其核心就是VBA中的Dactionary对象的使用,其它就是普通的对EXCEL数据表的操作。   Java: Java的学习比较特殊,一方面是公司拓展开发平台的需求,另一方面是自己的兴趣。Java的语法并没有刻意去学习,由于以前使用C++和Delphi的缘故,OO的概念早已烂熟,不过在Java中得到了更好的总结和深化。由于目标是WEB开发,主要学习了JSP,WebWork,Hibernate这三个框架,开发环境主要用了Eclipse,另外Servlet,XML方面也做了一些研究。随着学习的深入,觉得Java的面太广了,和刚开始学习windows开发的感觉差不多。管它呢,先把面铺开,多了解一些技术,真正的深入研究要等到做项目再说。   Python: "10倍于Java生产力"的口号让我认识了Python。确实,动态语言的灵活性给了我深刻的印象,但是现实一点,在公司什么地方用Python比较合适呢?   javascript: [...]