后端之所以叫后端,就是因为他有一层隐藏的含义:高并发,海量数据,分布式。

跟前端相比,最大的差别还在于遗留数据和扩展性。

很多初学者,要走的路线可能是这样的,:面向语法编程―>面向功能编程―>面向性能编程―>面向未来编程―>面向复用编程

语法和功能方面,前后端意义差不不大 很多传统行业里都是前后端一起写,薪资也不会高,二线三线城市大部分都是这样 典型的就是行业软件,办公,财务,医疗,地产等,对开发人员的业务知识很看重 对技术要求不高,sql语句搞定一切,jquery打遍天下。

到了性能的时候,前后端的差别就出来了。

 

前端的性能优化,和用户访问数量成正比的,就是静态文件的大小,cdn和连接数目。其他大部分和单用户的性能优化差不多,首屏优化在某种程度上并不算是前端,前后端其实根本不是靠语言来划分,而是靠代码是在用户端执行,还是在服务器端执行。

而后端的技术栈,随着用户的增长,变化的相当大。

缓存,一致性哈希,分布式,分库, nosql,搜索,索引,SQL,微服务,消息队列,websocket,日志,监控等等都是在这个阶段要用到的,题目中的云服务,确实减轻了这些基础设施的安装运行维护工作,但不牵涉到设计和架构啊。云服务只是提供了更好用的工具而已,在这一点上,是让后端更专注。

 

所以后端在这里的成长路径很漫长,每一个点都需要花很长的时间理解和吸收,5~7年之后仍然觉得自己什么都不懂很正常。

这也是我一直很瞧不起【全菜工程师】的主要原因,后端从来都不是JAVA,更不是JAVA语法,很多学了点JAVA语法,看过jdk源码就觉得自己上天的人,其实是完全不知道天高地厚。

好比你下围棋,把制作棋子和棋盘的工艺全理解透彻了,你就能把围棋下好了么?不,你还是要花很长的时间,学规则,学定式。

 

那么第四阶段 什么叫做面向未来编程?

这要从需求总是在发生变化说起,在过去,瀑布开发流程面对需求变化时,完全无能为力,系统越复杂,无力感越强。

好比是你照顾一个宝宝,没问题,照顾2个宝宝就要疯,照顾10000个宝宝呢?

所以敏捷开发就是在这个时间点出现,来解决问题的,要求持续交付,拥抱变化。

拥抱变化是一个非常关键的价值观,当年认定了需求总是会变化,从接受这个设定开始,对工程师的要求就显而易见了,就是你做出来的系统架构,到底支持到什么程度的需求变化?

没写完,不小心点发布了,算了,回头再写,为什么后端在面向未来编程的时候会比前端更难。


用户bPbdDlb
422 声望36 粉丝