File tree 3 files changed +47
-0
lines changed
3 files changed +47
-0
lines changed Original file line number Diff line number Diff line change
1
+
2
+ .DS_Store
3
+ .idea
Original file line number Diff line number Diff line change
1
+ # 我的博客
2
+
3
+ ## 前端架构之路
4
+
5
+ 1 . [ 前后端分离、web与static服务器分离] ( ./architecture/1.md )
6
+ 2 . 并行开发、本地化模拟
7
+ 3 . 构建工具 for teamwork
8
+ 4 . 组件化
9
+ 5 . 私有npm仓库
10
+ 6 . 单页面、按需加载
11
+ 7 . 服务器端渲染
12
+ 8 . node中间层
13
+ 9 . 后端api设计
Original file line number Diff line number Diff line change
1
+ # 前后端分离、web与static服务器分离
2
+
3
+ ## 1. 为什么需要 “前后端分离、web与static服务器分离”
4
+
5
+ web前端的发展历史大致可以分为两个阶段:` node ` 之前与 ` node ` 之后。在 [ nodejs] ( https://github.com/nodejs/node ) 出现之前,前端的发展一直比较缓慢,主要是因为:
6
+
7
+ 1 . ` html/css/js ` 从设计之初开始,都只为浏览器服务,并且在整个web程序中,是以后端为主,前端为辅,前端需要配合不同的后端做出调整(如不同后端语言的模板),因此前端程序往往是与后端程序耦合在一起的;
8
+ 2 . 开发、调试、运行都始终摆脱不了浏览器,并且没有多少可选的工具(如 combo,都是有后端语言在服务器端实现的),不能自动化、工程化的构建前端的代码;
9
+ 3 . 由于浏览器的运行方式,前端代码一直不能有效的做到模块化、组件化,项目也无法版本化管理,项目间也不能很好的共享代码;
10
+ 4 . 浏览器运行速度低下,也是早期前端发展的一大障碍,但 [ chromium] ( https://chromium.googlesource.com/ ) 项目的出现,让前端的运行架上了高铁的速度。
11
+
12
+ 基于以上的原因,前端一直不能很好的开发大型应用,所以在web程序中,前端一直处于配角的角色。在 [ nodejs] ( https://github.com/nodejs/node ) 出现之后,前端的发展迎来了质的飞跃,带来了我们当时无法想象的便利与潜力。
13
+
14
+ 1 . ` node ` 拓展了 ` javascript ` 的运行环境,并且能够开发服务器端程序,这让前端的开发和运行摆脱对浏览器和后端语言的依赖,让它们成为了可选项;
15
+ 2 . ` node ` 使 ` javascript ` 拥有了操作本地文件、IO等权限,于是前端开发人员便可编写各类工具,前端便可做到自动化和工程化;
16
+ 3 . 再结合 ` npm ` ,前端代码的模块化、组件化,项目版本化,项目间共享代码也就不是问题了。
17
+
18
+ [ nodejs] ( https://github.com/nodejs/node ) 出现了之后,又陆续出现了扩展前端运行领域的工具,如
19
+
20
+ 1 . [ electron] ( https://github.com/electron/electron ) , [ nw.js] ( https://github.com/nwjs/nw.js ) : 让前端可以开发桌面软件;
21
+ 2 . [ react-native] ( https://github.com/facebook/react-native ) : 让前端可以原生app。
22
+
23
+ 随着 ` node ` 的出现与前端的发展,工程化自动构建便成了开发人员的一个基本的需求,这便是我要说的 “前后端分离、web与static服务器分离”;
24
+
25
+ ## 2. 前后端分离
26
+
27
+ 前后端分离,就是让前端与后端解耦,开发和运行都不再耦合在一起。
28
+
29
+ ### 2.1 工程分离
30
+
31
+
You can’t perform that action at this time.
0 commit comments