先后端分离小记

概述前端

先后端分离已成为互联网项目开发的业界标准使用方式,经过nginx+tomcat的方式(也能够中间加一个nodejs)有效的进行解耦,而且先后端分离会为之后的大型分布式架构、微服务架构、多端化服务(例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。vue

核心思想node

前端HTML页面经过AJAX调用后端的RESTFULAPI接口并使用JSON数据进行交互(撕逼大战正式拉开帷幕)nginx

先后端痛苦的开始git

前端: 为何接口文档永远都是不对的?为何接口会频繁变更? ** 你个 **github

后端: 老改需求,我写业务这么忙,哪有时间写文档?谁爱** 写谁 ** 写sql

传统思惟公司,先后端正式开战json

如今不少传统公司或者小厂慢慢开始往先后端分离路线走,而多数这种类型公司的技术研发老大都是后端人员担任的,那么很容易致使以上的问题。从而致使的就是开发进度缓慢,交付延后,先后端常常性撕逼,整个团队氛围都会变得不好。后端

存在的问题api

先后端分离确实是进行了有效的解藕,下降了维护的成本,可是人员沟通成本也随之提升。

  1. 序员天生抗拒写文档,因此常常出现文档字段说明不详细(遇到牛逼的理由是看英文单词就知道什么意思啊),接口废弃可是前端仍然在使用的状况。
  2. 人的天生惰性,联调前端调用后端接口,测试接口都交给前端,后端写完就无论了。
  3. 业务处理的先后端分工不明确,先后端分离并非表示将后端人员只sql 查完数据不作任何处理就彻底交给前端,不考虑过浏览器的处理能力、带宽限制、安全性因素(业务的拓展以及维护)
  4. 后端工做量大致使开发前期,前端只能作静态页面,中期一直在等后端出文档。
  5. 人员离职后没有对应文档和注释没有办法当即展开有效的工资

解决方案

解决问题方案是定义json 以及编写及时文档!

  1. 现有不少在线api 工具,能够实现实时测试,接口在线编写。 例如:

    YApi github.com/YMFE/yapi

    eolinker www.eolinker.com/

  2. 编写需求文档!需求文档并非交付给甲方爸爸的做业,而是在开发过程当中先后端用来下降交流成本的利器,甚至实现无沟通开发。 每一个人都没法避免知识的诅咒,若是仅仅用口述的方式来说解,很容易形成你以为你讲的很明白,对方一脸懵逼状态,那么造成文字的东西很容易让双方理解需求并进行开发了。(若是说编写文档成本很高的话,那么先后端撕逼起来半天可能都不写码你就能接受?) 工具:

    teambition www.teambition.com/agile

  3. 提升接口设计能力以及json 定义能力。(json 结构还写不对, ** 你个 **), 项目开始切忌立马开始编码,而是应该理解业务需求,设计可插拔可扩展的程序,业务的变动是在所不免的,那么设计能力的重要性就体现出来了。 前期可能在架构设计上会耗费不少心智和时间,可是在后期业务变动的时候,就会感受很轻松很惬意。 真香^_^!

总结经验

从经典的JSP+Servlet+JavaBean的MVC时代, 到SSM(Spring + SpringMVC + Mybatis)和SSH(Spring + Struts + Hibernate)的Java 框架时代, 再到前端框架(AngularJS、vueJS、ReactJS)为主的MVVM时代,而后是Nodejs引领的全栈时代,技术和架构一直都在进步。创新之路不会止步,不管是先后端分离模式仍是其余模式,都是为了更方便得解决需求,但它们都只是一个“中转站”。前端项目与后端项目是两个项目,放在两个不一样的服务器,须要独立部署,两个不一样的工程,两个不一样的代码库,不一样的开发人员。前端只须要关注页面的样式与动态数据的解析及渲染,然后端专一于具体业务逻辑。

相关文章
相关标签/搜索