分层设计的疑惑

来源:5-7 开发路由(博客列表路由)(上)

Kysonleung

2019-04-25

关于 4-7 开发路由 15:10 时刻分层设计的疑惑:

  • 第一层:创建服务器;
  • 第二程:系统基本设置;
  • 第三层:路由;
  • 第四层:Controller;
  • 第五层:Model。

问题一:为什么“创建服务器”和“系统基本设置”要拆成两个层次?
问题二:第一层(创建服务器)、第二层(系统基本设置)、第三层(路由)属于 MVC 的那个层次?
问题三:第二层(系统基本设置)主要做哪些工作,为什么这些工作要放在这里做,在别的层次里面做会有什么不合适吗?这些工作在这个层次里面做比在别的层次做有什么优势吗?
问题四:在那些使用 Nginx、Apache 做服务器的系统里面,还需要做第二层、第三层的拆分吗?如果要,它们属于 MVC 里面的什么层次?
问题五:在开发一个项目的时候,应该怎么较好地认识到哪些工作应该放到哪个层次里面做?

写回答

1回答

双越

2019-04-26

问题一:www.js 和 app.js 的目的不一样,第一个是启动服务,第二个是加载注册各种业务组件,两者应该分离,符合设计原则。你可以通过 express 或者 koa 的脚手架创建一个 demo 看一下,脚手架生成的代码中,这俩也是分离的。

问题二:这三个都属于 C ,即 controller ,MVC 是一个大概念上的分层,不代表每个部分不能再分层。如果项目再复杂,C 和 M 之间可能还要加一个 services 层,如 egg.js 的目录,就有 services 层。

问题三:这个问题我要反问你:如果不放在这里做,那应该放在哪里?会有哪些优势?

问题四:服务器和代码是两回事儿,用什么服务器不影响代码如何设计,代码该怎么分就怎么分。服务器并不是 MVC 的哪一层,它是容器,在 MVC 之外。

问题五:这个具体问题具体分析。如果让我生硬的解答这个问题,那我只能具课程中的例子,而课程中的分层已经讲的很明确了。

2
0

Node.js+Express+Koa2+Nest.js 开发服务端

从入门到实战,一站式掌握 Node.js+Express+Koa2

4086 学习 · 2014 问题

查看课程