我这个人其实很少抱怨什么的,主要是抱怨往往也没有什么用处。但其实主要的原因是,我的工作还令我比较满意。但今天比较郁闷,需要抱怨一下。
今天改一个哥们写的框架,他采用了spring+sql方式实现了一个RESTful的web框架。今天改他的一个bug。不知道是不是我对框架理解的有问题,我觉得框架总是会自动做点什么事情吧?spring的rest web我就不去评价了,spring的schedule我也不去评价了。排除sping提供的令人眼花缭乱的功能以外,看看这个所谓的框架还剩下什么?我不同意什么框架反应什么思想的言论,程序有个狗屁思想,能完成任务就最好。
java中普遍存在过度设计的问题,这在采用了spring之后显得尤为明显(屁大个东西居然也用spring了),当然,这不是spring的错,spring也是试图在让java变得更好用一些而努力。他的sql封装这部分,设计的很简单,可以说是一个ORM的实现,但是这个ORM目前不是自动的,而是完全手动,在我看来这完全是折磨人。这里想说说,为什么要去实现一个ORM,其根本原因就是java对象模型与关系模型的不匹配。其实现的方式其实也很简单,就是把jdbc的结果集封装到对应的po中去。这其实是很愚蠢的,我对po是非常反感的,为什么java中的数据,要搞成对象?为了好看么?我觉得,放到一个map里面也挺直观的,当然,java由于类型的问题,使用map其实是不行的,无法形成有效的结构。这里不得不抱怨一下,java对数据结构的处理实在是弱的可以,根本无法实现有效的结构。比如说树。这个非常多见的结构模型。在java中,必须通过compsite模式实现,而且由于类型的问题,这个实现还比较僵死。
po其实是很糟糕的,不知道为什么大家这么爱用,估计是简单。active record,比po强得多了,为什么不实现这个呢?这个其实也比orm强。我这个哥们的框架的orm是这样实现的,首先是一个主要的sql,这是一个常量。有个接口,主要做转换,把ResultSet转换成对象,这个是纯手动的,这个比较苦,同时比较酸,而且还比较长。然后他有个run的执行查询方法,能增加一些诸如翻页,排序之类的sql。当然,他也实现了一部分的sql封装,和criteria比较像。
看到这个框架,我这个烦呀。servlet+sql多好。现在一些人用框架成瘾,还特别爱搞一些自己的所谓设计,自己的所谓思想,牛的不行。真希望java世界没有这些框架,认认真真仔仔细细的写点程序,多好。