“ 大前端时代,Web钱断攻城狮的技术层出不穷,上到客户端下到小程序app,狮子们纷纷表示:学不动了!”
01 — 思想的转变
1、开发模式的转变
开发模式从前后端不分离转变为前后端分离,转变大大提高了前端人员的发挥空间,分离后的开发工作将不过度依靠于后台的业务逻辑控制,开发人员可以专注自己本职工作,全栈已不再是以前的全栈,现在需要的是让专业的人做专业的事。
很多后端开发人员能够写出前端页面,而很多前端人员也能够写出基本的API接口,通常表现的就是“后端不会过多的注重用户体验和前端性能调优,前端人员也没有后端扎实的数据库设计基础和强劲的后端逻辑思维能力”。
当前的公司在开发模式的选择上都在朝着前后分离的方向发展,依旧存在不分离的大多是旧项目的维护不易更改,亦或者公司人员不够资金不足以养活“两个人”。
2、微服务架构
同后端开发一样,前端也存在微服务。为了降低系统发布时各个功能模块之间的耦合性、同时为了避免过多的打包编译时间,前端也出现了微服务。
我们将一个功能较为繁琐复杂的大型Web项目分割成多个功能模块组成的小型系统,分组、分人、分模块开发,各个项目之间不存在或存在极少的关联,在需求变动、bug定位、功能迭代的过程中更容易更新维护,对其他姊妹系统造成较小甚至0影响。
3、工程化、模块化、组件化开发
前端开发已不再是先前的简单的html + css + js画页面,前端项目的日益壮大,功能不断增多,庞大的数据管理,众多可复用的样式和功能,通过简单创建html文件已不再能够完美解决问题了。
webpack、grunt、gulp工具为项目工程化提供便利,我们可以放心使用sass、less、ES6+、TypeScript语法,开发工程中可以通过简化代码从而提高开发效率。模块化需要工程师将代码进行分割,AMD、CMD、CommonJS以及ES6的模块化导入导出规范,不同功能调用需导入不同模块,利用namespace可以有效的避免命名冲突也更容易定位问题所在易于维护。组件化要求开发人员将可复用的UI模块通过特定的手段封装成一个代码块,可通过传递不同参数来实现相似的功能,以提高开发效率。
02 — 职责范围转变
Web人员的职责范围随着各大互联网平台的出现而转变,微信、钉钉、百度、支付宝等小程序、IOS/Android移动端、PC端、客户端都统一划到了Web开发中成为了多端开发,“Code once, run anywhere”。
Uniapp的流行让很多的公司和前端人员开始走向了封装app的道路,Web人员的职能从浏览器过渡到app上,Vue、H5+、React、Angular,通过一些框架、特定的配置均可以生成App应用。
Taro、Mpvue等框架为小程序的多端运行提供技术支持,分别利用React和Vue的语法生成不同运行版本的小程序、h5等。
Electron作为一款客户端开发语言,利用Nodejs和Chromium为基础,开发桌面应用可以打包到Win和Mac,由于它采用的是chrome引擎和Node语法,可以让用户不必担心语法的不兼容,并发挥自己的想象充分利用底层API,目前非常流行的编辑器Visual Studio Code就是利用Electron开发的。
Node作为一款服务器端的js语言,他的流行让前端人员不只关注前端开发,前端后台的界限越来越不明显,Node不仅仅可以作为提供数据接口API的服务器,也可以作为中间件,中转请求,更可以用作SSR来加快渲染速度、提高SEO。
03 — 丰富的框架、插件
三大主流框架:
- Vue
- React
- Angular
流行UI框架:
- Element
- Iview
- Ant-Design
- Vant
- Layui
- Bootstrap
- …
流行脚本库:
-
JQuery
-
Lodash
-
MomentJs
-
SwiperJs
-
D3Js
-
ThreeJs
-
Echarts
-
高德、百度地图
-
…
以上,你可以正着穿、反着穿、转圈穿、随便怎么穿。
04 — 总结
人的能力是有限的,语言、技术在不断的发展,不可能样样精通况且也没有更多的时间去学习那么多的东西,就像做考题一样,万变不离其宗。再多的框架,他终究是Js,我们可以通过研究源码去感受大牛们的思想,了解别人是如何封装,如何做到性能优化的。要么选择广度纵观全局,要么选择深度独当一面,又广又深不是一般人能做到的,鱼和熊掌不可兼得,舍?而取?者也。
数据可视化、数字大屏、3D展示、3D建模,前端都在做。
社交直播、远程教育,前端都在做。
小程序、app、客户端,前端都在做。
PC网站、WebApp,前端都在做。
前端开发、后台开发,前端都在做。
大前端,无所不能、所向披靡、战无不胜、攻无不克。可是我老了,学不动了,弟弟妹妹们好好学,前端很简单的。
~搞了个公众号,自己兄弟们没事分享点什么玩着,名字叫:
大壮计算机科学与技术~