Archive for October 14th, 2004

比尔盖茨说的好

Thursday, October 14th, 2004

Bill前不久在美国一个大学发表讲话,谈了软件外包、技术移民等问题。印象最深的是这么一段:现在软件编程的水平还很低,几分钟就能将清楚的逻辑实现起来还很费力。

真的是太赞同这句话了。我又要拿eclipse说事儿了。比如我要开发一个plugin,当用户右键单击扩展名为.java的文件时,上下文菜单多出一项,点击改菜单项弹出一个对话框。要实现这样的功能,实际eclipse已经很简化了,即使这样,不仅要写plugin的XML配置文件,还要完成上下文菜单的扩展action合其实现类并激活一个窗口。几十个字的逻辑最后实现起来可能要半天甚至一天(如果不熟的话)。

可想想看,如果软件开发变的非常容易实现,任何人10几分钟就能开发出一个calc或者notepad,谁也不干程序员了。大家都知道VB方便,功能也很强,可偏偏都要去搞J2EE,为啥,因为难、抽象、含金量高。DBA怕的不是数据库难管理,而且太容易管理。谁相信软件广告里坐在椅子上翘着二郎腿的IT白领呢?真到了这一天,怕是哭也哭不出来了。

refactor的粒度

Thursday, October 14th, 2004

我现在正在做一个refactor的项目。其实我自己并不怎么用eclipse的refactor,因为怕被re后的代码自己又要去重新理解。所有人都喜欢自己能够理解的东西,即使这个东西不怎么样。refactor要做的就是把一个被公认不高的代码转换成质量高的代码。我在想的一个问题是:refactor的粒度如何设定?

现在eclipse上的refactor工具基本上还比较简单,如更改类名、变量名、方法抽取等,经它们更改后的代码都比较容易理解,因为没有结构和设计上的改动,refactor做的事仅仅事帮助你自动的完成相关部分的更新(比如更改一个类名后其它代码中引用改类的地方要相应修改)。

目前有人在研究更深层次的问题,就是代码结构和设计的修改,意在把bad code经refactor转换成符合design pattern的新代码。先不说技术上如何实现,想想一个刚出道的程序员,一共写了10了类,50个方法,经这个工具一转成了15个类,70个方法,而且还都符合design pattern。这样的代码让这个程序员怎么理解?如此一来,新手哪里敢用?结构再好、再完善的东西,不能理解也白搭,最终还是要这个初级程序员完成编程工作,而他无法在自己不能理解的代码上工作。

我想,现在refactor的工具还是会侧重于局部代码的修葺,能促使大家都能主动使用这样的功能已经是很了不起了。

ChinaPay网上转帐服务实在太差

Thursday, October 14th, 2004

今天是第四次用ChinaPay的网上银行卡转帐业务,结果又以失败告终。这次的错误号和前两次都不一样,是”090″,说是什么”日期转换”错误。四次转帐三次失败,而且还是最mission critical的银行业务,这样的东西也感拿到网上做服务。上次至少打了4个电话才把被中国银行冻结的钱转走。这次看来又免不了了。既然如此,ChinaPay干脆搞电话服务算了,和Dell一样;或者非实时转帐:在网上提交申请,服务台一个小红灯亮,ChinaPay的工作人员敲dummy terminal进行转帐,什么服务器基础架构、中间件、安全、性能全都免了岂不痛快。现在这个破网站,多少投资都是白瞎。