【问题标题】:what maintainable,scalable and modular actually means?可维护、可扩展和模块化实际上意味着什么?
【发布时间】:2015-06-03 04:05:14
【问题描述】:

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

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

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

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

模块化:- 对我来说,这个术语看起来很抽象。模块化是将应用程序分解为模块 可以由独立的团队开发,互不影响。可以根据其他因素进行分解,例如 可重用性,功能明智,以便子团队可以独立工作,可测试性。

现在 MVC 如何使代码模块化。可能是因为团队可以独立处理视图、控制器和模型。

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

【问题讨论】:

  • 我觉得这个问题对于 Stack Overflow 来说太宽泛了。有整本书都是关于这类主题的。您需要大幅缩小问题的范围,或许专注于某个特定领域。

标签: java architecture software-design


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

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

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

根据此声明:

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

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

【讨论】:

    猜你喜欢
    • 2012-01-26
    • 2020-02-15
    • 2020-06-01
    • 2020-11-30
    • 1970-01-01
    • 2017-06-03
    • 1970-01-01
    • 2021-09-24
    • 2019-06-02
    相关资源
    最近更新 更多