选择框架时需要注意的问题

最近一直有件不爽的事情困扰着我,由于工作的安排,接手了一个别人做了半截的、需求乱七八糟的项目。

 

这个项目代码现有大约4,5万行的样子,使用了ExtJS+DWR+JPA(toplink10.1.3.1.0)的组合。框架组合倒也没什么问题,但是接手后,由于大量生产数据陆续录入系统,系统时不时会出现内存溢出的问题。

 

震惊之一:数据查询不分页。
什么原因的?通过阅读代码得到结果:数据查询时没有做分页处理,我靠,我有点震惊了!!!!数据查询不分页,想干什么?没办法,遇到问题了就得解决问题,虽然之前对JPA,尤其是Toplink没什么了解。通过查API,查文档,得知JPA提供标准的分页接口:
query.setFirstResult(int);
query.setMaxRows(int);

 

最气人的是,有人还时不时的冷嘲热讽,谁谁谁做这样的功能快得很,言外之意不言自明了,气得我真想骂他娘。他认为在目前的状况下,我虽然不熟悉目前项目的框架,但也要做,而且还要又快又好,整个一SB。

 

通过查看阅读toplink相关的文档,发现toplink中文资料很是缺少,不得不到官方网站上找资料。在资料比较缺乏的情况下,采用这样一个框架,依据是什么,它的优势在哪里?


软件项目的最初架构怎么能这样选择呢,框架资料缺少,开发人员怎样快速上手,边干边学不是不行,但怎样保证项目进度和项目质量,很大程度上是在糊弄事吗?

 

震惊之二:不是很了解框架的情况下,就选择使用。
后来和最初开发者交流中得知,他不确定Toplink-10.1.3.1.0中是否提供了对JPA标准分页接口的实现。虽然最新的版本toplink11g(Eclipselink)中已经提供了JPA标准分页接口的实现。但从toplink的文档中了解到,从Toplink-10.1.3.1.0升级到Eclipselink时,配置文件要做较大的改变,就目前项目的实际情况来看,想花时间升级是不可能的。


综上所述:项目核心人员选择项目框架时,最好慎重一些。


1.尽量选择为大多数开发人员熟悉的技术。
为大家认可的,较流行的技术框架一般相关资料较丰富,遇到问题,比较方便解决。否则,费尽九牛二虎之力也无法保证项目质量和进度。


2.项目核心人员对选择框架或者技术要比较了解,最好是较深入了解。
你选择了一项较新的技术,大家都是新手,遇到难点时,都想从你这里获得点信息,结果你也不清楚,这项目怎么进行,大家停下来搞研究啊,我倒是愿意,但老板愿意给这个时间吗?


3.把自己的烂摊子转给别人,你也好意思的?
自己的设计和代码自己心里最清楚,设计的好,还能让自己长点面子。一个烂摊子,你就自己留着弄完吧,否则留下一个半截的烂摊子给别人,你自己爽了,也不替别人想想,这叫什么事阿?


下面是oracle原生SQL分页查询:
SELECT x.* from (SELECT z.*,rownum numbers from (select * from table order by id desc) z where rownum<10) x where x.numbers>0

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值