目前,他们坚持使用scriptlets(而且不使用JSPTags)。我想知道,在性能方面,纯scriplets是否比MVC更高效?他们更喜欢无状态会话而非有状态会话,以避免会话迁移、会话跟踪等问题。
如果首席技术官所说的是真的,那么为什么MVC仍然更受欢迎呢?(我知道MVC的作用,但与性能相关)。
目前,他们坚持使用scriptlets(而且不使用JSPTags)。我想知道,在性能方面,纯scriplets是否比MVC更高效?他们更喜欢无状态会话而非有状态会话,以避免会话迁移、会话跟踪等问题。
如果首席技术官所说的是真的,那么为什么MVC仍然更受欢迎呢?(我知道MVC的作用,但与性能相关)。
反对观点:
我会放弃这份工作。
CTO的逻辑相当奇怪;我不认为他知道自己在说什么(提示:放弃这份工作!)如果他真的很担心效率,为什么不用汇编语言重写整个Web应用程序呢?
反对脚本片段的论点
我不喜欢脚本片段,因为它们极其难以维护。它们也容易被滥用。最大的问题是它们混淆了视图逻辑和业务逻辑,或者至少使得这样做变得非常容易和诱人。
你可以明智地分离出你的关注点并使用拉取数据的服务(从而促进重用)。但更多时候,我看到开发人员像PHP代码一样编写JSP(即将代码与标记混合在一起)。
我并不是说你不能用JSP编写好的代码。只是这更难(我觉得MVC有更多的保障),而且(我感觉)JSP更容易被滥用。
MCV的论点
回答你的第二个问题,MVC是首选的,因为它天生就促进了关注点分离,并且不允许来自不同区域的逻辑混杂在一起。
视图层仅关注于呈现视图。您从控制器获取元数据,并使用视图显示数据。您在这里不关心业务逻辑(也不应该关心)。
控制器像交通警察一样,将您的请求重定向到其正确的目的地。控制器通常最终调用执行所有业务逻辑的服务。
模型负责应用程序域的数据和行为。模型将响应有关其状态的请求(因此这是您发送到视图的元数据),并且还将响应告诉它更改状态的指令(来自控制器)。
反射并不那么慢。此外,现代计算机速度非常快,内存很大。性能并不是太大的问题。
MVC模式促进了不同关注点之间的清晰分离,使开发人员能够编写干净、健壮和易于维护的代码。
MVC相对于脚本片段的优势在其他答案中已经完美地描述了,但是有一点被忽略了。
反射相对于直接方法调用引入了一些开销。当您频繁使用反射调用简单方法时,这很重要。但是,单个反射调用引入的开销与典型Web应用程序中的整体请求处理时间相比并不重要。因此,在这种特定情况下出于性能原因决定不使用反射听起来很奇怪。