“ 技能会过时,计算机基础知识永远不会过时。”
最近在给团队整理一份前端、后端技术栈方面的资料。整个资料整理完,其实也就比较清晰的展现出WEB互联网领域,整个技术栈的发展历程。
任何技术都不是凭空产生的,都是为了解决具体业务问题应运而生的。从整理的资料里面也能看出一些端倪。
第一,整个发展历程能让大家更清晰的掌握住自己所学知识的背景,以及技能应用的需求场景。第二,其中的技能树,能更清晰的让大家知道未来还需要在哪些方面加强学习,巩固知识。
下图就是整理的脑图:
前端发展历程
一个完整的WEB应用包括前端和后端两部分。
前端是针对浏览器的编程,代码运行环境在各种浏览器上。浏览器有IE,Firefox,chrome,safari。记得我之前还用过什么世界之窗浏览器,opera浏览器。各个浏览器兼容问题是前端同学永远的痛。
后端也叫做服务端,主要针对服务器方面的编程,代码运行在各个服务器上。后端开发会随着业务量的增加衍生出各种复杂的技术。
WEB互联网之初的应用,主要是静态页面,在页面上面展示一些静态信息。前端主要用html,css,JavaScript技术,这其中估计都与后端没啥大关系。因为展示的信息直接写在页面就行。
随着行业发展,静态数据的弊端问题出现了,有了页面展示动态内容的需求,比如同一个页面针对不同的人,需要展示各自的名称信息等。ajax异步请求接口技术应运而生了。
前端技术继续发展,css发展到了css3,html5标准也出来了,同时JavaScript有了es6规范。慢慢的,前端也有了自己的数据分层,MVVM架构出来了。
到如今,市面上主要应用大多都是基于MVVM的三大框架开发的。三大框架是VUE,React,Angular。NodeJs的出现让前端开发有了更大的想象空间。曾经大家都认为NodeJs会大一统前端,后端。从我第一次听到这个信息到现在也过了有6年时间了。
后端发展历程
而后端技术发展历程,主要都是围绕着用户规模,业务量来展开的。从当初的单机架构,到业务和数据库分离。数据库有了压力,就增加缓存机制来缓解压力。还要增加多台机器,用hash机制来分流,hash导致的雪崩问题又创造出了一致性hash。
多服务器问题解决后,又发现DB成为了瓶颈,读写要分离。要分库,要分表。垂直分,水平分。慢慢的微服务起来了,主张根据应用做服务隔离,达到应用服务高可用的目的。微服务的出现,又重新定义了一些消息组件的作用,需要redis,kafka,nmp等做各个应用之间的信息中转媒介。
最后面还要做终极容灾,多机房数据备份,DNS优化等等。只不过这些99%的公司都用不上。目前这些都止步于各个云厂商,只有云厂商里面才会有这些领域的知识运用。
目前,很多公司的应用直接部署在阿里云,腾讯云等云厂商的基础服务商。我个人一直认为,至少有90%的公司的业务量,只要运用DB读写分离,增加多台应用服务器分流,就能满足业务发展需要。
技术永远为业务服务。技术架构,技术选型也是。毕竟买卖双方产生经济效益的是产品,而不是技术架构,或者说不是由于用了什么缓存,用了什么语言。其实,现实中各公司应该根据公司的业务量做合理的技术选型,而不是一味的追求大厂的经验。
你是骆驼就不要唱苍鹰之歌,因为驼铃同样充满魅力!
独立思考,选择适合自己的,才是最好的。
如若转载,请注明出处:https://www.daxuejiayuan.com/2879.html