前后端分离趋势谈

最近已经不止一个人和我提起过vue了,在我的前端印象中,我还停留在smarty渲染模版,jquery做js处理。学了一晚上,对现在这种工程化webpack打包生成html,js,css的生产方式越来越有兴趣了。工作年限摆在这里的好处就是经历了不少技术的变革,能从纵向思考下技术的变革和趋势的路子。

想想很久以前刚开始接触php的时候,说为什么要使用php?前辈告诉我因为php能很方便地生成html,php文件中可以随便地内嵌html,这样你写一个页面就会行云流水。后来呢,大家发现写一个页面还行,但是写一个网站,这个写法就受不了了。又臭又长的代码,改一个头部颜色,需要去好几个文件里面找东西。不行,就需要把模版从php中分离出来。于是我就接触到了smarty,smarty很好地把模版渲染文件隔离开了,我们可以把模版文件放在一个文件夹中,再也不需要和php代码放在一起了。

现在呢?前端隔离到一个模版中还是不够好,数据和模版的结合放在服务端,导致至少php代码和smarty模版需要放在同一个机器上,好吗?现在的做法,在服务端只留一个最简单的index.html,这个叫做单页。我们使用各种前端框架,react,vue,angular等,实际上是把数据和模版的结合放在了浏览器端,也就是前端。

前后端分离的路子基本就是这样走的,在上一家公司的时候,我碰到了另外一个“有年龄”的工程师,他告诉我,其实,php这边的后端发展也是这样发展的。

php这边现在比较流行的还是MVC的路子。比较复杂的逻辑,都是在Controller层中做的。但是实际上,据说有一段时间,逻辑层是流行写在数据库中的,数据库中会存在大量的存储过程。这种方式我尝试过一段时间,最后苦不堪言告终,当你一个金额结果出错的时候,你需要一个一个地方思考各个表的存储过程中的逻辑是否有冲突的情况存在。所以我很庆幸我没有经历过当时那种写存储过程的时期。

现在后端的逻辑也逐渐往代码层转移了。在代码层进行增删改查的行为。数据库只是单纯的作为存储使用了。

现在流行的微服务,其实也是一种演进,把后端逻辑层和数据层按照模块进行横向分离。

当然,趋势就是不可逆的。纵向思考下来,web技术的趋势也是非常明显了。分层,并且分的越来越彻底。存储+逻辑+模版,按照这样的层级基本上存储层已经是mysql或者pg的战场了。逻辑层现在还是php,node,golang的战场,模版层现在还在php和js框架过渡中。基本上会是js框架的胜利了。

这种分层机制是双刃剑。对于人员来说,它按照分层,把人分做了不同的工种。原先只有一种“网站开发员”的职位,现在已经分为DBA+PHP开发+JS开发+切图仔了。每个人只有半分不到的地,慢慢种。对于工程来说,却是好很多了,每个层级分工明确,各专其事。各专其事的好处就是越底层越容易固化和自动化。比如现在存储,基本上已经可以固话为一套流程了,一个小公司,即使没有dba,普通开发也能做了,一些基本的优化和数据库搭建等。接口api开发,我认为迟早也会固化下来,然后一些前端开发人员也会渐渐很容易开发api,或许现在的nodejs已经是在这个方面在做了。

总而言之,前后端分离的趋势是越来越明显了。这个趋势估摸不可逆,只有顺着这个趋势,慢慢适应了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值