Java 可维护、可扩展和模块化实际上意味着什么?

Java 可维护、可扩展和模块化实际上意味着什么?,java,architecture,software-design,Java,Architecture,Software Design,当我在任何文章/书籍中读到它将使您的应用程序具有可维护性、可扩展性和模块化时,它实际上意味着什么 我确实对它们有模糊的理解,但我很清楚它们的真正含义。例如:-我听/读了很多次mvc架构 使应用程序更具可维护性、可扩展性和模块化。以下是我的理解:- 可维护:-如果我们需要适应微小的更改/或某些缺陷,那么很容易处理。代码也应该是单元可测试的。 在MVC world之前,视图、控制器和模型角色由servlet扮演。所以很难容忍任何变化。也很难 从单元测试的角度 可扩展:-应用程序如何响应用户负载的增加

当我在任何文章/书籍中读到它将使您的应用程序具有可维护性、可扩展性和模块化时,它实际上意味着什么

我确实对它们有模糊的理解,但我很清楚它们的真正含义。例如:-我听/读了很多次mvc架构 使应用程序更具可维护性、可扩展性和模块化。以下是我的理解:-

可维护:-如果我们需要适应微小的更改/或某些缺陷,那么很容易处理。代码也应该是单元可测试的。 在MVC world之前,视图、控制器和模型角色由servlet扮演。所以很难容忍任何变化。也很难 从单元测试的角度

可扩展:-应用程序如何响应用户负载的增加

模块化:-对我来说,这个术语看起来非常抽象。模块化是将应用程序分解为 可以由独立的团队开发,而不会相互影响。分解可以基于其他因素进行,如 可重用性、特性智能化,使子团队能够独立工作、可测试性

现在,MVC如何使代码模块化。也许becoz团队可以独立处理视图、控制器和模型

如果我在某些方面出错或遗漏了任何重要方面,请纠正我

  • 可维护的:除了您提到的,可维护的系统还意味着进行重大更改不应该是什么问题(显然这取决于更改本身的大小)。也就是说,如果客户机想要彻底检查整个UI层,那么这样做意味着您不需要重写一半的业务逻辑和数据层

  • 可伸缩性:不太可能。如果应用程序能够容纳越来越多的用户而不会对其执行能力产生任何重大影响,那么它的可扩展性就很好。如果您的应用程序为1000个用户处理10毫秒以下的请求,但为2000个用户处理1000毫秒以下的请求,则可能是您的应用程序伸缩性不好。可伸缩性通常是通过巧妙的设计来实现的,设计将允许巧妙地使用资源,如数据库连接和其他机制,如缓存,这可以减少繁重操作的使用

  • 模块化:不完全是。如果应用程序是松散耦合但紧密内聚的,那么它就是模块化的。这意味着模块是相互独立的,但是,它们协同工作。因此,根据我前面的示例,如果您以模块化方式构建应用程序,在UI层进行更改,应该不会影响业务层,反之亦然

根据这项声明:

现在,MVC如何使代码模块化。也许是因为我们的团队可以工作 独立于视图、控制器和模型


我认为MVC使系统更容易分解成模块。话虽如此,我不认为如果一个系统不使用MVC,那么系统就不是模块化的。你可能会遇到使用MVC模式构建的应用程序,但维护起来却是一场噩梦,反之亦然。

我觉得这个问题对于堆栈溢出来说太广泛了。关于这类问题有很多书。你需要大规模地缩小问题的范围,也许集中在一个特定的领域。