Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.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
建议。。。JavaServerFaces(JSF)、Struts、model2和其他_Java_Jsf_Frameworks_Struts - Fatal编程技术网

建议。。。JavaServerFaces(JSF)、Struts、model2和其他

建议。。。JavaServerFaces(JSF)、Struts、model2和其他,java,jsf,frameworks,struts,Java,Jsf,Frameworks,Struts,我们正在考虑重新设计一个已经使用了4年多的java业务管理web服务。软件的内部架构都是定制的,表现层和业务逻辑的分离很差。另外,整个模型层已经证明它不能有效地跟上不断变化的业务逻辑,需要重构。在我计划这项任务时,我一直在寻找可用的框架,我可以利用这些框架使应用程序对雇佣的新开发人员和不断变化的业务逻辑更加友好。我以前从未使用过struts或JSF,但我用了一种略显简短的概述方法来阅读它们,乍一看,我对它们都没有太大的印象,不过我觉得JSF更有趣 首先,两个框架似乎都关注MVC模式的控制器和视图

我们正在考虑重新设计一个已经使用了4年多的java业务管理web服务。软件的内部架构都是定制的,表现层和业务逻辑的分离很差。另外,整个模型层已经证明它不能有效地跟上不断变化的业务逻辑,需要重构。在我计划这项任务时,我一直在寻找可用的框架,我可以利用这些框架使应用程序对雇佣的新开发人员和不断变化的业务逻辑更加友好。我以前从未使用过struts或JSF,但我用了一种略显简短的概述方法来阅读它们,乍一看,我对它们都没有太大的印象,不过我觉得JSF更有趣

首先,两个框架似乎都关注MVC模式的控制器和视图部分。让您在模型/业务层做任何事情。(我说的对吗?)

对于返工,我们希望能够雇佣外部承包商来帮助加快返工,因此找到统一的开发方法对于确保代码质量、减少不一致性和启动时间非常重要


那么,对于可能有助于这项工作的框架、实践等,您有什么建议呢。我真的不想用一个定制的框架来重新设计轮子,然后发现我们也会遇到类似的情况。

在采用这种方法时,您应该考虑以下几点:

  • 你的具体需求与重点 特定框架的定义
  • 了解 框架(内部和外部) (市场)
  • 学习曲线 框架及其在更广泛的开发人员社区中的接受和支持程度
  • 许多人对春季MVC评价很高,但如果你对IOC还不熟悉(或者你不相信这个概念),这可能比你想“一下子”咬掉的要多一些

    另一个成熟的选择是Struts(尽管我强烈建议Struts 2用于新的开发)

    需要警惕的一件事是“框架移植”操作的规模和范围。如果你的应用程序急需进行严格的结构重组,那么你很有可能从零开始,将现有业务逻辑的大部分挂在构建在框架基础上的框架上。时间/金钱/资源(以及机会成本!)不应被低估,而且你应该确信管理层真的会收买你,这样你就不会在中途受到阻碍。在这里“测量三次,切割一次”真的很重要,并且确保你正在啃掉一大块你可以啃的东西——从“传统应用程序”到“使用所有新技术的全新最先进应用程序”坦白说最好分阶段完成,而不是一次完成

    了解应用程序的大小和相对复杂性以及它的基本性质(它是一个非常web UI密集型的应用程序,还是一个做很多工作的后台系统?)将有助于对特定框架提出更好的建议:尽管你当然可以在任何给定框架上构建大多数web应用程序,有些在一个方向上比另一个方向上倾斜更大(例如,支柱和导叶的焦点完全不同)

    此外,在现有应用程序旁边尝试两个候选平台也没有什么错。虽然我对您当前应用的技术背板一无所知,但除非您做了一些非常奇怪的事情,否则很可能会安装一个或多个框架,并在现有应用的基础上进行实验(例如,针对它们编写新功能,或者使用它们重写现有代码的一部分,然后将该代码挂接到后端)。这将让您进行试验并“在购买之前先试用”。我建议让您的团队在一个或多个“短名单”上对此进行尝试框架候选者需要了解它在实践中是如何工作的。顺便说一句,这不是一种可怕的重构方法:逐渐用新框架替换旧功能

    决赛(我想)一条建议:在你的数据模型和接口上看长而硬。这通常是真正的GRIMMLIs,并且不管你想得到什么样的框架。我强烈认为把你的1重构目标,而不是采用一个特定的框架。一个强大的数据模型将使我。实现任何框架(和处理升级)都要容易得多……如果您的管理层改变了您的方向,并且最终由于任何原因推迟了框架升级,那么重构数据模型所花费的时间将得到回报

    编辑:

    考虑到你对产品外形的评论,我会加倍强调“非常、非常小心”的建议。你现在所处的位置非常普遍(而且臭名昭著),已经吞噬了许多团队(和职业)活着。你需要链上和业务方面的利益相关者的强烈理解和支持,因为这将是一项休整的事业,其自然花费的时间和成本将超过你的想象。技术团队对成本+变化范围保持清醒和现实的能力对成功至关重要——如果你如果你估计过高,你可能永远无法开始:)

    一种方法是,一旦你得到了管理层的大力支持,就把它当作一个全新的产品来对待——把旧的东西放在维护上,卷起袖子,用你在以前的实施中获得的所有知识开始设计替换系统。在这种情况下,我将制定组件和数据交互SAN框架,然后看看一组给定的候选框架将如何支持该实现。从框架开始可能会导致你去不自然的地方,