Skip to content

Instantly share code, notes, and snippets.

@iahu
Last active March 20, 2016 17:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save iahu/7a6d734ee0e6cdfd8509 to your computer and use it in GitHub Desktop.
Save iahu/7a6d734ee0e6cdfd8509 to your computer and use it in GitHub Desktop.

#前后端分离.NodeJs


##为什么要前后端分离

  1. 各种终端设备的兴起,需要我们把页面适配到更多的地方。
  2. 业务复杂,而我们希望尽可能地减少工作量,开始使用类似MV*的分层结构,使前端后分离成为必要。
  3. 前端需要处理更多的工作,希望有权操控View,Router(如:SPA的尝试)

历史发展的必然选择


##前面走过的路

  1. 后端同步输入: 描述:时间倒流到web 1.0年代,那时候几乎不存在前端,所有工作都放在后端完成,js都可能由后端开发包办了 问题:在业务复杂的场景下,后端不坑重负。代码越来越难维护。

  2. 后端MVC 描述:前端写demo,后端套模版,写逻辑。 问题:前端demo/后端模版,纠缠不清。勾通麻烦,费时费力,易出错。

  3. ajax带来一阵凉爽的风 描述:web 2.0到来。前后端分工,前端使用ajax与后端数据交互,操作视图,甚至控制_部分_路由,后端提供服务与数据。前端开始注重分层 问题:前端逻辑越来越重,越来越复杂,路由不好掌控。过分使用ajax不利于SEO。前端不坑重负

  4. 前端MV* 描述:前端开始分层开发,复杂度得到控制。前端比较独立。 问题:SEO,路由不能满足所有需求,性能问题。页面加载短暂空白。

  5. 现在的路,NodeJs带来的回归 描述:视图依然在Server端,但这次由前端掌控。node提供UI层服务,作为中间层。后端依旧是提供数据与服务 问题:前端职责加大,能力要求高。前端开发迎来全栈时代


##思路

|        | 浏览器 UI层 |
| 大前端 |      ↑↓     |
|        |  node UI层  |
|        |      ↑↓     |
| ------ | ----------- |
| 后端   | 逻辑+数据    |
|        |             |

##可行性

###好处:###

  1. NodeJs还是js,前端与它天然熟热。(再去面试,有的聊了。)
  2. 使用node中间层,使的前端开发效率得到提高。(省了demo,套页面,勾通的成本,并行开发,再也不用找高佳伟改模版了)
  3. 中间层带来的性能问题,在异步ajax转成同步渲染过程中得到平衡
  4. 有利于前端技术的实施

###挑战:###

  1. 前路并不平坦,踩坑的人少,没有经验,要自己摸索
  2. 以前后端面临的问题转移到了前端
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment