web开发的前后端分离总结笔记

解释:Nginx;JSON;Ajax;RESTful Web Services;Node.js。
1.Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强。


2.JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation),JSON 是轻量级的文本数据交换格式。


3.Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。


4.REST:全称是Representational State Transfer表述性状态转移,一中架构风格。在MVC中,可以实现首先从浏览器发送AJAX请求,然后服务端接受该请求并返回JSON数据返回给浏览器,最后在浏览器中进行界面渲染。


5.Node.js是一个Javascript运行环境(runtime)。


在传统的web开发中,前后的分离是以浏览器为界限,将客户端展示给用户的部分称为前端,而将运行在服务器端负责业务逻辑和数据准备的开发称为后端。例如在jsp开发中,前后端代码存放于同一个代码库中,甚至是同一工程目录下。页面中还夹杂着后端代码。前后端工程师进行开发时,都必须把整个项目导入到开发工具中。前端先编写HTML,完成页面设计,然后后端开发者在其中改写添加jsp代码,最后将全部代码打包成为一个war包部署到同一服务器上。


前后端分离不仅是一种开发模式,而是web开发中的一种架构模式。


存储分离:在如今的前后端完全分离的web开发中,前后端代码在不同的代码库中,前后端开发只需要设计好API接口和约定数据,然后前后端并行开发。前端代码中有可以进行Mock测试(通过构造虚拟测试对 象以简化测试环境的方法)的伪后端,能支持前端的独立开发和测试。后端代码中除了功能实现外,也可以使用接口测试平台进行接口自测。最后,前后端集成。


前后端交互:前后端分离架构中,后端只需要负责按照约定的数据格式向前端提供可调用的API服务即可。前后端之间通过HTTP请求进行交互,前端获取到数据后,进行页面的组装和渲染,最终返回给浏览器。


部署分离:前端部署node.js服务器,前端html页面通过ajax调用后端的restuful api接口并使用json数据进行交互。


后端java工程师:
java基础,设计模式,jvm原理,spring+springmvc原理及源码,linux,mysql事务隔离与锁机制,mongodb,http/tcp,多线程,分布式架构(dubbo,dubbox,spring cloud),弹性计算架构,微服务架构(springboot+zookeeper+docker+jenkins),java性能优化,以及相关的项目管理等等。
后端:三高(高并发,高可用,高性能),安全,存储,业务等等。


前端工程师:
html5,css3,jquery,angularjs,bootstrap,reactjs,vuejs,webpack,less/sass,gulp,nodejs,Google V8引擎,javascript多线程,模块化,面向切面编程,设计模式,浏览器兼容性,性能优化等等。

前端:页面表现,速度流畅,兼容性,用户体验等等。

前后端分离开发流程:

数据接口规范流程:

前后端分离架构例子: