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