【问题标题】:How to properly design application structure and separate application components?如何正确设计应用程序结构和分离应用程序组件?
【发布时间】:2015-02-08 16:05:38
【问题描述】:

我在应用程序中有以下主要组件:

  • 网站和客户面板
  • 控制面板(仪表板)
  • 后台服务(计费任务和消息传递)
  • API

我的问题是如何在应用程序结构中分离这些组件,以便它可以随着流量的增加而扩展,而且在初始部署后还可以维护和易于继续开发?

目前我正在尝试使其成为单个应用程序,并在运行时根据启动配置和按路径和域进行路由的单独逻辑。

我认为另一种选择是为每个组件创建单独的应用程序,但要维护四个应用程序而不是一个,具有配置、版本、可共享源(模型等),并且继续开发将是一个地狱。

另一个问题是像 facebook 这样的大型服务如何设计他们的服务仪表板、控制面板或应用程序的管理部分。

应用程序在 RoR 上,但问题不依赖于语言和框架。

我知道这个主题非常大,但任何帮助都非常感谢,至少 - 也许是一些关于我从哪里开始阅读的参考)

【问题讨论】:

  • 这真的取决于你使用什么框架和语言。尝试寻找“单一责任”。这是一个设计原则,基本上说“类应该只负责一件事”。因此,例如,控制器只负责返回视图,而不是处理表单中的 postdata。那是另一个班级的责任。每种语言/框架都有很多实现。
  • @Nick 我认为你的观点很好。是的,每种语言都有不同的实现方式。但是,OP 似乎提出了更高级别的问题。

标签: architecture scalability


【解决方案1】:

这听起来像是由明确定义的接口分隔的多个模块,而不是 4 个不同的应用程序,即使在运行时也可以互换。

每个这样分离的部分都成为模块化架构的一个元素。每个部分都应该是独立的,并且应该导出和导入定义良好的接口。

从这里https://netbeans.org/project_downloads/usersguide/rcp-book-ch2.pdf

有点老了,但仍然很重要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-18
    • 1970-01-01
    相关资源
    最近更新 更多