Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Architecture 用于增强遗留项目的项目体系结构_Architecture_Legacy Code - Fatal编程技术网

Architecture 用于增强遗留项目的项目体系结构

Architecture 用于增强遗留项目的项目体系结构,architecture,legacy-code,Architecture,Legacy Code,我正在从事遗留项目。现在的情况要求对项目进行划分 分成几部分。我应该采取什么策略来完成这项任务 说明: 遗留项目(A)是一个功能齐全的web应用程序,具有几乎良好的性能 定义的层。但现在我需要将项目扩展到一个进一步的增强。 此项目使用maven作为构建工具。但它只用于依赖关系 仅限管理层。(项目在eclipse中导出为war表单) 新的增强需要我添加新的数据表、新的UI(jsp、css、js和 图像) 我应该采取什么样的策略来提高应用程序的性能 我提议的设计 我计划创建两个新项目 项目B:本项目

我正在从事遗留项目。现在的情况要求对项目进行划分 分成几部分。我应该采取什么策略来完成这项任务

说明:

遗留项目(A)是一个功能齐全的web应用程序,具有几乎良好的性能 定义的层。但现在我需要将项目扩展到一个进一步的增强。 此项目使用maven作为构建工具。但它只用于依赖关系 仅限管理层。(项目在eclipse中导出为war表单)

新的增强需要我添加新的数据表、新的UI(jsp、css、js和 图像)

我应该采取什么样的策略来提高应用程序的性能

我提议的设计

我计划创建两个新项目

项目B:本项目将进行主要的加固工程。我将拥有一切 像服务层、dao层和UI层这样的层本身。这将是一个网络 应用程序本身

项目C:从项目A中提取一些通用模型和服务代码并创建 这个项目。此项目将作为依赖项添加到两个项目中

如果我的话,这个方法还可以!那么我想这里面会有问题的 部署。这两个项目需要单独部署(目前为tomcat) (已使用)。但我必须将这两个项目部署为一场战争。所以,我需要有一个 计划将web.xml条目更改为具有两个项目的配置。 这将带来一些更复杂的项目


我的项目设计应该是什么?我的计划听起来不错。

您概述的一般方法非常明智(隔离公共服务层—项目C—并在其上构建a和B)。我认为这是相当常规的


我对项目A和B之间的具体关系感到困惑。更确切地说,为什么项目A和B必须分开部署,但必须是同一个项目的一部分。war…?

哪个需求要求您将项目拆分

如果遗留系统结构良好,您可以将新代码添加到遗留项目中


如果确实需要拆分,可以构建一个“反腐败层”,新系统将使用该层与旧系统中的功能进行对话。这将允许您避免在遗留系统中进行任何更改。

我会将您的开发作为同一个“项目”和部署单元的一部分,否则在没有实际需求或体系结构需要时,您将分离

然而,您描述了影响现有代码库的增强的更改的困难。对于这个问题,我建议在源代码管理工具中创建一个分支,并在该分支上执行增强开发。这允许您在不影响实时代码库(仍然可以应用错误修复等)的情况下完全开发和测试


完成全面测试后,您可以将分支合并回主代码库,并在发布到live之前执行完整应用程序工作的最终回归测试。

多亏了Tomislav,我有了一个新的解决方案。这两个项目(A和B)必须部署在同一个域上。我无法理解的是,我如何构建我的项目以获得一场战争?对于项目A和项目B,单个war文件ab.war.OK…但我仍然不清楚:如果它只是一个域,用户如何被引导到一个或另一个应用程序?我知道这一点;这就是为什么我在想,是否有任何方法可以在单独的代码分支开发这个项目,但可以作为一个单独的项目部署。我想为新的需求创建新的项目(web应用程序)。并将此项目与旧的遗留项目一起部署。您可以将其视为项目的代码级分离。创建一个反腐败层将很好地发挥作用,但我的团队的特定团队不支持这些大破坏性的变化。