什么是可维护的,可扩展的和模块化的?

时间:2015-03-30 08:03:12

标签: java architecture software-design

当我在任何文章/书中读到它将使您的应用程序可维护,可扩展和模块化时,实际上是什么意思。

我确实对他们有模糊的理解,但我很清楚他们究竟是什么意思。例如: - 我很多次听说/读过mvc架构 使应用程序更易于维护,可扩展和模块化。以下是我的理解: -

可维护: - 如果我们需要适应微小的变化/或某些缺陷,那么它很容易处理。代码也应该是可单元测试的。 在MVC世界之前,servlet扮演了视图,控制器和模型角色。因此很难对任何变化进行调整。也很困难 从单元测试的角度来看

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

模块化: - 对我来说,这个词看起来非常抽象。模块化是关于将应用程序分解为模块的 可由独立团队开发而不会相互影响。分解可以基于其他因素来完成 可重用性,功能明智,以便子团队可以独立工作,可测试性。

现在MVC如何使代码模块化。可能becoz团队可以在视图,控制器和模型上独立工作。

请纠正我,如果我错了某些地方或我错过了任何重要方面

1 个答案:

答案 0 :(得分:2)

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

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

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

根据这句话:

  

现在MVC如何使代码模块化。可能becoz团队可以工作   独立于视图,控制器和模型。

我的意见 MVC使得将系统分解为模块变得更容易。话虽这么说,我不认为如果系统不使用MVC那么系统不是模块化的等等。你可以遇到用MVC模式构建但是维护的噩梦的应用程序,反之亦然