转载本文需注明出处:微信公众号EAWorld,违者必究。
最近我身边的几个技术专家都在学习前端技术(VUE)的开发,为何他们要学习前端技术呢?由于随着软件技术的发展,全栈工程师已然成为将来发展趋势,对大部分技术人而言,须要既懂后端技术,又能进行前端开发,成为全栈工程师。
什么是先后端分离的研发模式?
与“全栈工程师”相对的,是“先后端分离”的研发模式。先后端分离模式有两种含义:
先后端分离的部署模式,即前端服务器使用nginx等WEB服务器,部署css、js、图片等等一系列静态资源,负责控制页面引用、跳转、路由,前端页面异步调用后端的接口,后端/应用服务器做为一个数据提供者,加快总体响应速度。
先后端分离的软件研发模式,因为先后端使用的技术愈来愈不一致,前端又包括PC和移动前端,应用对人机交互的要求比较高,不少公司尤为是互联网公司,常常分为专门的前端工程师和后端工程师,后端工程师负责业务逻辑的实现、数据的准备,前端工程师交互设计、数据裁减、界面实现。
先后端分离的部署方式,提升了系统的响应能力,是将来主要的企业应用架构模式,咱们也须要采用。这里的先后端分离是指第二种,即先后端分离的研发模式。
先后端分离研发模式的利与弊
事物老是一分为二的,有一利必有一害:先后端分离的研发模式,前端的重点放在页面表现、速度流畅、兼容性、用户体验,后端的重点放在三高(高并发,高可用,高性能)、安全、存储、业务方面,术业有专攻(目前不少互联网公司采用这种模式,公司 DevOps 产品研发也采用这种方式)。可是这种作法也有明显的缺点,就是沟通、集成成本高,先后端接口常常变化、前端/后端互相不理解、联调复杂,对于团队协做的很高。
既然有利有弊,那解决问题的方式就是分析主要矛盾、次要矛盾。某些技术团队及互联网公司之因此采用先后端分离的模式,是由于:
业务方向比较稳定,业务方向也不会有大的调整,能够不断优化,逐步造成好的设计,保持接口的稳定,避免反复调整;
可以造成稳定的闭环软件研发过程,例如从需求的提出到测试上线,虽然需求变化很快,但都是团队内部/公司内部的事情,沟通相对方便;
技术团队比较稳定,人员一块儿磨合时间比较长,沟通相对顺畅。
分析问题后能够看出,若是技术团队的主要矛盾是减小沟通成本,快速推出业务,而不是精益求精的技术运营,可采用全栈方式。我不反对有条件的项目尝试先后端分离的研发模式,可是要看看自身是否是适合,设计能力比较强、业务比较稳定的团队能够尝试。
克服畏难心理,学习新技术,成为全栈工程师
面对不断变化的市场形势,有时就须要咱们成为全栈工程师。目前我看到的状况是,更多的工程师存在畏难的心理。其实所谓全栈,也就是前端、后端、数据库技术,前端技术要学习目前的前端开发工具(NPM、WebPack、Babel等插件)以及 VUE 框架便可,后端是 Java 技术,须要掌握 Spring Boot 的配置、POM/Maven 等开发工具,数据库要写好 SQL。有了这些基础,就能够成为一个全栈工程师,不须要求全责备。
都是全栈工程师,也须要专业的前端工程师保驾护航
有了全栈工程师,还须要专业的前端工程师保驾护航,专业的前端工程师有两个方向:
在项目中承担交互设计和美工的做用,根据项目设计前端的规范,解决各项目中的前端问题;
成为前端架构师,跟踪前端技术发展,制定前端规范,研发/维护前端框架,搭建统一的前端开发环境,解决各项目的关键问题。
css
向将来的全栈工程师致敬!前端
关于做者:焦烈焱,普元信息CTO,致力于技术创新和金融创新解决方案研究。专一于企业技术架构领域,对分布式环境的企业计算、 企业信息架构的规划与实践有着丰厚经验,带领普元技术团队相继在云计算、大数据及移动开发领域取得多项突破,并主持中国工商银行、中国建设银行等多家大型企业技术平台的规划与研发。
关于EAWorld:微服务,DevOps,数据治理,移动架构原创技术分享。长按二维码关注!nginx