2 liu372267001 liu372267001 于 2016.01.27 17:05 提问

关于java遗留系统重构的问题,请教讨论方案。

目前公司的项目已经有十多年的历史了,现在想进行重构,不知道该如何下手。
目前的实现是:所有的产品代码都在一个项目里面,分了有十几个产品,用包名进行区分,
产品代码之间相互调用有点乱,主要有三个基础产品。

现在是想把各个产品之间的代码拆分,只依赖三个基础产品。如果这样处理的话,jsp,js,css等文件该如何处理?
另外还有一些系统公用的接口重构问题:例如用户选择,目前所有产品的用户选择都用同一个,各个产品的参数过滤条件都不一样,所以写了很多判断,不好维护,有什么好的解决方法吗?

写的比较乱,可以讨论一下方案。

2个回答

qq_26946497
qq_26946497   2016.01.27 21:58
已采纳

1.代码依赖方面,选取maven这样的工具,完成产品间的依赖关系布局(树状)
2.接口+工厂,用面向对象的思想解决多产品依赖公共接口的问题.
其中参数考虑整理为通用参数和变化参数.
通用参数比如:当前操作人,加密公共头等.变化参数用可变参数列表做,返回具体实现时,由工厂完成多参数到固定参数的代理.
3.使用dubbo等工具建立产品间的调用关系布局(并行)

要改就得大刀阔斧的改,改一半留一半太淡腾

caozhy
caozhy   Ds   Rxr 2016.01.27 18:00

建议你看《京东技术解密》,这本书中完整介绍了一个真实的公司从小到大发展过程中,如何将整个公司的架构从.net平台迁移到java平台,并且保证业务持续进行的方方面面。甚至包括了很多技术外的事情。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
最头疼的遗留系统该如何改造?
随着RESTful、云计算、DevOps、持续交付等概念的深入人心,微服务(Microservices)逐渐成为系统架构的一个代名词。那么微服务是否是业界期待已久的企业架构解决方案?在对遗留系统进行微服务的改造过程中存在怎样的困难和挑战,应该注意些什么?在该分享中,王磊将通过实际的案例,跟大家探讨使用微服务改造遗留系统的实践之路。 什么是微服务微服务的诞生背景遗留系统的微服务改造策略微服务改
一切软件系统都是遗留系统
作者:戴夫·安德森(DaveAnderson) 即使系统十分前沿,采用了最新的技术开发而成,但对接手它的下一个人而言,它也会是遗留系统。必须应对这种情况!在今天,软件很快便会过时,这己经成为软件的天然属性。如果系统能够作为产品存活下来,哪怕只是数月时间,都必须承认一点:负责维护工作的开发人员肯定要对软件进行缺陷修复,这是不可避免的,这引出如下几个问题。 清晰性(clarity):各个组
面向服务体系和遗留系统
企业系统已经从单片孤岛(monolithic silos)快速发展为使用机制灵活、面向服务的分布式应用系统。为了跟上这一趋势,IT组织必须近乎实时地调整他们的遗留系统,以面对商业变化的挑战,这一机会稍纵即逝。面向服务的体系(SOAs)已经演进成可灵活进行操作,并能连接业务进程和底层系统。Nicolas Serrano、Josune Hernantes和Gorka Gallardo提供了当前SOA技
讨论学术问题的英文邮件模板
学术问题的英文邮件模板,根据此可以向老外要文章等资源
系统业务进化重构之数据迁移--落地思考
系统都是进化出来的,不要过度设计. 一开始设计支付表. 有代金券id,代金券抵扣金额. 业务进化后后面有多种优惠,业务水平拆分为两种业务. 支付业务.优惠维护业务. 一个订单:   表1:乘客支付金额和乘客抵扣金额表.                    表2: 订单id, 优惠类型,优惠金额,优惠id. 落地方案1: 代码需要兼容老版本: 查询代金券id,需要先查新表,后查原表
这是一个挺有意思的Java讨论话题
爱Java 2016-10-19 23:02 为什么Java中1000==1000为false而100==100为true? 这是一个挺有意思的讨论话题。 如果你运行下面的代码 Integer a = 1000, b = 1000; System.out.println(a == b);//1 Integer c = 100, d = 100; System.out.pri
周扬:关于马克思主义的几个理论问题的探讨
2010-01-03 17:31 周扬:关于马克思主义的几个理论问题的探讨 关于马克思主义的几个理论问题的探讨 周扬 一、马克思主义是发展的学说   ... 二、要重视认识论问题   ... 三、马克思主义与文化批判   ... 四、马克思主义与人道主义的关系   人道主义和与此相关系的人性论,是关系到哲学、伦理学、社会学、文艺学等的重大理论问题。马克思主
Java项目重构总结
重构步骤: 一、先建立可靠的测试环境:测试的目的是用于确保重构出来的代码能稳定运行,否则一旦对外发布就会容易出现问题。 总结:单元模块小重构,单元模块测试 二、分解并重组 1、什么情况下需要进行分解 (1)冗长的代码 (2)重复的代码 2、方法 (1)局部变量和参数 (2)变量易名:提高代码的清晰度。 (3)去除临时变量 (4)使用多态取代多分支条件逻
产品架构重构与优化
大规模软件系统的产品周期 随着产品的不断发展,复杂度不断增加,生产率(Features数量)下降,质量(Bugs)不受控制,稳定性(Fluctuation)变差,架构变得腐化。 原则、模式、最佳实践和工具集 架构优化原则 1.单一职责 2.领域内聚 3.抽象接口隔离 4.重用 5.管理架构资产 模块解耦模式 1.模块重新划分 表现: 一个模块在领域中内聚性不强,
Java应用架构设计的七次重构详解
在开发系统时,虽然一个很小的系统,开始时它也是粗粒度和重量级的模块;当特定的需要出现时,我们将会把较大的模块儿拆分为较细粒度和轻量级的模块,他们会处理特定的功能性和非功能性需求。而七次重构就是从一个系统出发,根据软件使用中不断出现的新需求教你如何实现一个灵活的应用架构。