单页应用程序+;node.js后端(REST)和#x2B;CMS-最佳概念/实践

单页应用程序+;node.js后端(REST)和#x2B;CMS-最佳概念/实践,node.js,rest,web-applications,content-management-system,single-page-application,Node.js,Rest,Web Applications,Content Management System,Single Page Application,我们将建立大型社交网络应用程序。我们必须实现两大模块: 前端-单页应用程序(Backbone.js) CMS-管理前端内容的系统(每日内容、赞助商、横幅、链接、特别优惠、上传媒体等) 前端将使用Node.js支持的RESTAPI,该api将在云中使用DB(PG或Mongo-尚未决定) 我的问题是:CMS是否也应该使用与前端相同的RESTAPI?或者我们应该为CMS制作单独的应用程序(而不是node.js neccessery),直接在云中与db“对话”?我的问题是因为在上一个项目中,我们遇到了这

我们将建立大型社交网络应用程序。我们必须实现两大模块:

  • 前端-单页应用程序(Backbone.js)
  • CMS-管理前端内容的系统(每日内容、赞助商、横幅、链接、特别优惠、上传媒体等)
  • 前端将使用Node.js支持的RESTAPI,该api将在云中使用DB(PG或Mongo-尚未决定)

    我的问题是:CMS是否也应该使用与前端相同的RESTAPI?或者我们应该为CMS制作单独的应用程序(而不是node.js neccessery),直接在云中与db“对话”?我的问题是因为在上一个项目中,我们遇到了这个问题:

  • 用于前端和CMS的单一REST api
  • 当我们想要CMS中的新功能时,我们必须在RESTapi中实现它——然后我们必须重新启动整个应用程序(RESTapi),这在生产中是有问题的
  • 因此:

  • 实施2个重启PIS-一个用于前端,一个用于后端
  • 为前端和实施CMS实施1个RestApi,作为直接与数据库对话的单独应用程序
  • 你是怎么做到的



    我们的目标是实现超高速前端和大型/重型CMS(它将比前端更大)。因此,我们正在考虑将CMS模块与前端模块完全分离。模块间通信的最终需求将通过redis pub/sub实现,例如-您认为如何?

    软件体系结构决策总是与上下文相关的-最有资格打电话的人是您和您的团队,因为您比我们知道得多。话虽如此,根据您分享的信息,以下是一些需要考虑的事项:

  • 内容管理作为一个问题空间已经相当成熟。除非你的收入模式中有一部分涉及到如何处理内容管理的创新,否则建立一个收入模式是不明智的。无论是开源的还是商业的,都有很棒的CMSE,价格从数百美元到数十万美元不等。我不能强烈地警告您,不要因为开发人员的谬论而低估我们自己时间的价值。即使你花了整个工程师的薪水在CMS上,你几乎肯定会领先

  • 使用CMS的架构应该反映#1的现实,即CMSE是成熟和稳定的。您需要一个强大且定义良好的接口边界,该边界位于您的系统中唯一且特定于您的收入模型的部分和可与COTS(商用现货)互换的部分之间,即使您最终自己构建了它(我再次强烈警告您不要这样做)-如果您设计的东西是定制的,而不是定制的(反之亦然),那么您将遇到阻抗不匹配问题,很难解决,并在整个系统中产生新功能交付的摩擦


  • Node.js不是最好的,所以如果我是你,我会在CMS中使用nginx,在NodeRESTAPI(Node.js)中使用反向代理。