在近几年前端技术的狂飙突进之后,前端工具链已经成熟。
框架大战也基本落下帷幕,前后端分离、单页应用的趋势已成定局。
前端技术的进步得益于nodejs 发展的原因,有了很多配套的预处理工具,也有了像 es6 这些有新能力的“语言”,还有像 angularjs / react /Vue 这些新的框架的兴起使得前端技术发展日新月异。
前后端技术的分离让前后端人员更关注自身技术的实现,提升了提升团队开发协作效率(如果是一个人写前端与后端还是建议用MVC的后端吧)和测试。
遥想当年以前做传统后端的时候,就不得不考虑css整合压缩,js打包混淆,资源部署,移动端/服务端API等等问题。遇到逻辑问题,百度一下JS用法基本上也都能解决,最怕就是调CSS,每次调CSS我就多么想回到后端的大怀抱里面。
而如今,后台开发只需要关注包装db的api + 权限认证这一块。很多业务逻辑给前端去实现了,以前的MVC架构,除去V层,只有MC层。
现在来看看有个需求来了是什么样的情况?
后端开发人员看到需求后,倒一杯咖啡,通过ORM生成数据库,使用框架一丢丢功夫完成标准的Restful的API,甚至测试代码快速跑起来了,咖啡未凉,接口已经返回给前端了,甚至是API的DOC文档。这个时候,后台研发人员,气定神闲地喝着咖啡陪着前端开发人员加班了。
相信这样的例子越来越多的出现了,这在几年前完全是反过来的,前端人员先完静态界面就下班回家留后台人员在加班。
前端业务越来越重,但是后端研发却越来越轻。对于后端开发来说,甚至都觉得C层是多余的,有的甚至在M层上完成权限控制、条件查询、数据校验以及分页等功能。
现在也有很多采用的是 Model + Service ,业务逻辑还是与M层分开了,后端服务给出是 “资源”,但是前期的包装整合还是有很多工作的。
写API多了后,后端人员开始觉得这些 API 写起来, 是有点雷同和体力活的感觉,很多人就会再次封装,甚至简单的CRUD 的API操作都可以封闭成一行代码解决。
rest.create_api(models.Series)
这一轮变革首先是从前端开始的,node.js的出现让前端开发人员有了涉足后端业务逻辑的可能。未来有可能js开发人员大规模侵占曾经后端开发人员的领土。
君不见很多运维人员都不再使用Python等语言,而采用Docker这种容器了么;君不见很多前端工程师的愿望就是当一个全践工程师么;君不见像科学计算、机器学习库都在开始往 JS 生态引入了么。
目前 JS 生态中缺像 Django 这样的成熟框架,这种缺失在开发最小可行性产品时已经没有太大的问题,而随着大家在前端上的投入,相信这样一种框架已经在不远处了。
Restful作为数据层,后端负责数据逻辑,前端负责业务逻辑的设计 是一个十分优美的方案,它几乎完美解决了困扰业界多年的大型分布式数据存储和迁移方案。但是它带来的影响也是有限的。
它并没有真正解决问题,只是换了一种命名接口的形式,相信没有多少项目是完全按照Restful来写代码的。大部分接口还是通过GET,POST来完成 API的编写的。
对于前端人员来说,V层越来越复杂,甚至包含了很多C层的东西在里面,因为C层不可能无缘无故的消失,而这一部分现在已经拆分出来了,一部分是由后端人员开发,一部分是由前端人员开发,如果后端人员不开发的话, 我相信所谓的大前端,全栈开发的时代就将来临。
未来是js开发人员大规模侵占曾经后端开发人员的领土,还是原来的后端开发细分成数据服务开发和业务服务层开发,现在不得而知。唯一确定的是数据库的业务逻辑层绝对不可能消失。
未来后端人员是走向自动化CRUD上走还是往微服务方向走,我们目前还不清楚,但是这场战争已经开始打响,后端人员没有选择,只有去面对。
作为后端工程师,你如何看待这场战争,你会做哪些准备去迎接这场战争后的变化呢。
网友评论