当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:15:00  来源:本站整理

八个改良Java遗留系统的本领[Java编程]

赞助商链接



  本文“八个改良Java遗留系统的本领[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

你没看错,就是这个标题:即便是Java系统也会变成“遗留”系统.每当我们想起遗留系统时,我们就会想起那些存储着大量文件数据并只能用COBOL拜候的嘎吱嘎吱作响的大型主机.但事实是,Java已经是一门具有15年历史的开辟语言,用Java写就的不计其数的系统已经成功运行了十年乃至更久.

因此,考虑到很多读者城市工作在某个遗留的Java系统上,我按照自己的经验特地攒了这八个本领,来帮忙团队更新和激活他们的遗留Java利用.

本领1:利用解析器

解析器供应了任何其他工具无法供应的功效,从而可以深化查抄你的利用.假如你的利用已经有一年多时间没有被解析过了,那么它必定会有大块大块的低效代码,暗藏在某个乌黑的角落.市面上有很多差别的或免费或商业的解析器.关于CPU解析,我最喜好的是JProfiler,因为它充足强盛能解析出大大都问题,同时易于设置,特别当你利用它内建的设置向导的时刻.而诊断内存问题时,我最亲睐的工具是Eclipse Memory Analyzer,因为它利用的是记录在磁盘上的索引,而不是把整个堆的快照放到内存中.

普通来说,躲藏着的易耗尽CPU的代码包含低效的hashCode()大概equals()办法(在卷动JTable时以及利用Java collection类时,它们会被调用上百万次),以及一些出其不意的出自Sun之手的低效类,比方SimpleDateFormat.

解析器大概会明显地让你的利用变得很慢,所以你一定要在测试环境中利用它.

本领2:监控数据库利用情况

解析器除了可以显示你的利用过度占用CPU时钟的细节,它们也可以对你的利用在哪些地方长时间做了数据库的操作给出提醒.但更好的用来监控数据利用的工具,是像Proactive DBA大概HP Diagnostics,大概任何其他来自于你的数据库产品厂商的工具.这些工具可以奉告你,哪些代码做了长时间的SQL调用,以及哪些代码在短时间内对同一行做了多次调用.来自数据库厂商的工具还可以帮忙发现那些阻塞了其他调用的查询;固然在我的经验里,这样的阻塞问题基本不过是些简单的、低效的SQL用法.

我写了一个新的工具叫做jdbcGrabber,它可以让你以可视化的情势描写出哪些代码正在拜候哪些数据表.通过这种可视化显现,你可以很简单发现那些多次拜候数据库中差别部份信息的代码,从而将其调整为一次归并的恳求.

本领3:构建和布置自动化

很多遗留系统贫乏一种完好自动化的方法,来构建它们的代码,更不用说自动布置了.自动化构建和布置关于提高遗留系统开辟者的效率来说,是一种简单直接而又低风险的方法,并且普通不需求改正代码.

没有自动化的构建和布置历程,新的开辟者不得不重新创造轮子,跟那些前辈们早就斗争过的一样问题重新来斗,并且每次反复的布置问题发生,开辟者城市创造出差别的办理筹划.

固然Maven是一款出色的并且利用遍及的构建工具,但它对你的源码树构造以及库依靠有着刚强的要求,所以把它用在遗留利用中会有点艰难.但充足优异的Ant应当更易于利用,因为它处理起遗留代码构造越发机动,也更简单部份采取,而不是全盘采取.

本领4:自动化你的操作并利用JMX

别的一种提高遗留利用的效率但不会带来改正代码的风险的方法是,改进它的运维.很多内部开辟的企业系统,普通都需求大量出其不意的手把手指导和保护,即便这样是不该该的.

既有的Java功效可以通过利用JMX很简单地表露给负责运营的人们,而不会带来负面影响.很多开辟者对JMX对比熟习是因为,他们用JMX来跟JBoss和WebLogic这样的利用服务器举行交互,但他们不清楚把JMX用在他们自己的利用中是多么便利.任何Java class都可以通过JMX表暴露来,几近没什么负面效果,也没有什么风险.

比方,假如你的利用有一个本地的静态HashMap作为cache,你便可以通过JMX来表露功效,从而很简单地排除那个cache.

一旦利用通过JMX表露,运维团队大概开辟者便可以以杰出的方法来操作利用,无需直接拜候运行着利用的机械.

本领5:成立单元测试

一旦你对遗留系统的改正破坏了某个功效,你所面对的最大障碍之一就来到了.一些工具声称能对代码举行反向工程,并为其成立单元测试,但我对这些工具没有太多的信心.要想有充足的信心,你的单元测试的确覆盖了你盼望它们覆盖的代码,你就不得不亲身成立它们.

很幸运,为遗留代码成立单元测试并没有一开始感受上的那样艰难.我利用了Michale Feathers在Working Effectively with Legacy Code一书中讲授的“遗留代码改正算法”:

确认改正点

找出测试点

冲破依靠

编写测试

改正并重构

有效利用这个算法的诀窍在于第3点:冲破依靠.有很多技术可以用来干这个,但此中大大都都是关于移除静态引用以及在接口和facade下躲藏外部引用和复杂代码.一旦你具有这样冲破依靠的感受了,接触遗留代码就不会是一件让你提心吊胆的事情了.


  以上是“八个改良Java遗留系统的本领[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 八个改良Java遗留系统的本领
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .