概述前端
先后端分离已成为互联网项目开发的业界标准使用方式,经过nginx+tomcat的方式(也能够中间加一个nodejs)有效的进行解耦,而且先后端分离会为之后的大型分布式架构、微服务架构、多端化服务(例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。vue
核心思想node
前端HTML页面经过AJAX调用后端的RESTFULAPI接口并使用JSON数据进行交互(撕逼大战正式拉开帷幕)nginx
先后端痛苦的开始git
前端: 为何接口文档永远都是不对的?为何接口会频繁变更? ** 你个 **github
后端: 老改需求,我写业务这么忙,哪有时间写文档?谁爱** 写谁 ** 写sql
传统思惟公司,先后端正式开战json
如今不少传统公司或者小厂慢慢开始往先后端分离路线走,而多数这种类型公司的技术研发老大都是后端人员担任的,那么很容易致使以上的问题。从而致使的就是开发进度缓慢,交付延后,先后端常常性撕逼,整个团队氛围都会变得不好。后端
存在的问题api
先后端分离确实是进行了有效的解藕,下降了维护的成本,可是人员沟通成本也随之提升。
解决方案
解决问题方案是定义json 以及编写及时文档!
现有不少在线api 工具,能够实现实时测试,接口在线编写。 例如:
YApi github.com/YMFE/yapi
eolinker www.eolinker.com/
编写需求文档!需求文档并非交付给甲方爸爸的做业,而是在开发过程当中先后端用来下降交流成本的利器,甚至实现无沟通开发。 每一个人都没法避免知识的诅咒,若是仅仅用口述的方式来说解,很容易形成你以为你讲的很明白,对方一脸懵逼状态,那么造成文字的东西很容易让双方理解需求并进行开发了。(若是说编写文档成本很高的话,那么先后端撕逼起来半天可能都不写码你就能接受?) 工具:
teambition www.teambition.com/agile
提升接口设计能力以及json 定义能力。(json 结构还写不对, ** 你个 **), 项目开始切忌立马开始编码,而是应该理解业务需求,设计可插拔可扩展的程序,业务的变动是在所不免的,那么设计能力的重要性就体现出来了。 前期可能在架构设计上会耗费不少心智和时间,可是在后期业务变动的时候,就会感受很轻松很惬意。 真香^_^!
总结经验
从经典的JSP+Servlet+JavaBean的MVC时代, 到SSM(Spring + SpringMVC + Mybatis)和SSH(Spring + Struts + Hibernate)的Java 框架时代, 再到前端框架(AngularJS、vueJS、ReactJS)为主的MVVM时代,而后是Nodejs引领的全栈时代,技术和架构一直都在进步。创新之路不会止步,不管是先后端分离模式仍是其余模式,都是为了更方便得解决需求,但它们都只是一个“中转站”。前端项目与后端项目是两个项目,放在两个不一样的服务器,须要独立部署,两个不一样的工程,两个不一样的代码库,不一样的开发人员。前端只须要关注页面的样式与动态数据的解析及渲染,然后端专一于具体业务逻辑。