本文为原创文章,引用请注明出处,欢迎大家收藏和分享💐💐
老生常谈了,前端工程技术建设可以理解为团队内的前端技术和框架建设的整体表现,包括了 技术/规范文档
、工程模板研发
、组件库和开发工具沉淀
、devops自动化
、研发到数据可视化闭环
、影响力
等方面建设与完善。
成熟的技术储备
和完备的开发流程
为业务提供稳定支撑和高效迭代能力。一句话总结:前端工程技术建设是保证工程整个流程、研效高可用,并且能提升对外影响力而做的一系列建设。
抛砖引玉,要理解前端工程技术建设的必要性,先从前端工程化讲起。
随着1991年,WorldWideWeb的诞生,标志计算机应用从本地向网络时代的跨越。在最早的Web场景中,HTML、CSS、JavaScript组成了网页基石三要素,他们三者分别扮演网页文本结构、样式和动态交互的重要角色,彼此依赖又相互独立。就是如此简单的结构,一直维持到90年代末期,直到1998年伴随ajax第一版本的问世,前端技术才逐渐向动态化过渡。
网景浏览器截图(图已被传的包浆了😂。。。):图
image.png
在2000年后,前端技术逐渐多样化起来,从Sam Stephenson写的Prototype
基础库开始,到跃进的jQuery
时期,最后演变出现在主流的三大框架(React
、Vue
、Angular
),都是前端技术一次次的革命与进步。
本人认为,真正意义上的前端工程应该从Nodejs
使用,Babeljs
和webpack
、gulp
等构建工具广泛应用开始,将前端技术逐步模块化、可治理、可延伸,最后演变到现在大家能看到的前端工程的大集合。
众所周知,JavaScript是一门是解析型语言,它的优势是体现在轻量、边编译边执行。但同时,它又是一门弱类型、并且以函数为最高优先级的语言,这意味着,一个硕大的js文件,其实通过作用域隔离的是一个个的函数,并且全局作用域和局部作用域的变量也可以随时转换成不同类型。
其实这样的弊端是凸显的,当前端项目规模越来越大时,单纯通过函数进行作用域隔离显得过于乏力,因此,项目也逐渐变成一个巨石(monolith)应用。即使不断拆分js文件,但错综复杂的作用域叠加,也会致使项目变得难以维护。
为了抗衡处于日积(屎)
月累(山)
的项目,聪明的开发者制定了 CommonJs
、AMD
、CMD
和 UMD
等Javascript模块化策略,把作用域分隔开,变成一个个的小模块。到后来,三大框架和以 webpack
为代表的构建工具出现,又在模块化基础上连接整个前端工程,就有了前端工程化这一说法。
近年来,在纯web应用外也诞生了很多新场景,例如:H5、小程序、微前端、跨端应用。。。每种不同场景技术栈千差万别,工程结构也大不相同。在这点上,传统意义上的作用域区分很难满足所有开发场景,因此,使用前端技术工程化来区别管理前端多样化场景显得尤为必要了。
之所以先抛出前端工程化概念,是因为它是前端工程的核心。试想下,假如前端工程足够简单,何必要搞开发模板,搞devops、多环境、组件库呢?对吧。。。但是就目前而论,如果没有系统而全的前端工程技术,那么前端项目迭代确实增加了不少阻力,例如:
一味只满足业务需求而忽略工程建设,最终在时间的累加付出巨额的维护成本。
在上面场景一,小张其实可以利用构建工具的多环境部署特性,加上devops部署流水线插入对应客户的路径作为环境变量,让项目自适应构建就能解决。
对于场景二,小陈同样可以利用Monorepo方式来管理组件库,并且对组件发布的版本做持久化记录,最后结合服务商标识来按需加载组件就能做到千人千面的多态系统。
再提下,前端工程技术建设是保证工程整个流程、研效高可用,并且能提升对外影响力而做的一系列建设。 这要从几个维度来分析:
技术能力体现了工程团队的技术广度和深度。一个良性的前端工程技术建设应该会囊括以下几方面:
Typescript
、React
、Vue
之类的热门框架可以在新项目或者探索业务上做尝试,保证自家技术栈不要落后于行业;另外也有助于吸引年轻人和新鲜血液到团队里面。
一个前端项目开发的效率以及维护成本
。对此,我们应该把仓库技术重视起来,git分支划分、提交流程、hooks使用都要有一套适配自家前端团队的规范。这类技术像钻井,可以帮助整个体系纵向发展,拓展技术广度之余能增加工程技术深度
。DevOps
(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
早些年,DevOps用于整套业务,其链路涵盖都比较齐全;但是,随着越来前端技术趋向全栈、跨端和业务链路复杂后,针对前端的DevOps定制也变得普遍起来。
Devops是个覆盖面广的技术业务范畴,各大云平台商都提供比较完整的接入。一般关键的流程包括:
接下来就是各流程闭环平台接入:
古话说得好:无规矩不成方圆。 一套规范的前端技术标准能大大降低团队的维护成本,也让新人快速上手,除此之外,笔者认为更重要的是好的技术规范能将团队的技术能力带上正轨,向前发展。
影响力包括技术和团队两方面,这往往通过业务上的技术沉淀而慢慢发展形成的,包括对团队技术的方法论、技术的开源和技术分享等。
感谢大家阅览并欢迎纠错,欢迎大家关注本人公众号「似马非马」,一起玩耍起来!🌹🌹
本文正在参加「金石计划 . 瓜分6万现金大奖」
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。