Node带来的新的开发模式

前后端分离

在职责上划分:

  • 前端:负责View和Controller层。
  • 后端:只负责Model层,业务处理/数据等。

如果前端掌握了Controller,我们可以做url design,我们可以根据场景决定在服务端同步渲染,还是根据view层数据输出json数据,我们还可以根据表现层需求很容易的做Bigpipe,Comet,Socket等等,完全是需求决定使用方式。

Node全栈开发模式

Node带来的新的开发模式_第1张图片
为什么要增加一层Nodejs?

现阶段我们主要以后端MVC的模式进行开发,这种模式严重阻碍了前端开发效率,也让后端不能专注于业务开发。
解决方案是让前端能控制Controller层,但是如果在现有技术体系下很难做到,因为不可能让所有前端都学java,安装后端的开发环境,写VM。
NodeJS就能很好的解决这个问题,我们无需学习一门新的语言,就能做到以前开发帮我们做的事情,一切都显得那么自然。

对该模式的解析

在这种研发模式下,前后端的职责很清晰。对前端来说,两个 UI 层各司其职:

(1)Front-end UI layer 处理浏览器层的展现逻辑。通过 CSS 渲染样式,通过 JavaScript 添加交互功能,HTML 的生成也可以放在这层,具体看应用场景。

(2)Back-end UI layer 处理路由、模板、数据获取、cookie等。通过路由,前端终于可以自主把控 URL Design,这样无论是单页面应用还是多页面应用,前端都可以自由调控。后端也终于可以摆脱对展现的强关注,转而可以专心于业务逻辑层的开发。

通过 Node,Web Server 层也是 JavaScript 代码,这意味着部分代码可前后复用,需要 SEO 的场景可以在服务端同步渲染,由于异步请求太多导致的性能问题也可以通过服务端来缓解。

该模式的局限

基于 Node 的全栈模式,依然面临挑战:

  • 需要前端对服务端编程有更进一步的认识。比如 network/tcp、PE 等知识的掌握。
  • Node 层与 Java 层的高效通信。Node 模式下,都在服务器端,RESTful HTTP 通信未必高效,通过 SOAP 等方式通信更高效。一切需要在验证中前行。
  • 对部署、运维层面的熟练了解,需要更多知识点和实操经验。

你可能感兴趣的:(Node带来的新的开发模式)