书接上回。
之前不是带着大家窥探了下大厂的企业级开发流程么,没看过可以先看下《大厂前端日常窥探「壹」:企业级开发流程长啥样?》。
文中有一段话很关键,是这样的,我帮你们回顾一下:
初级工程师往往只停留在各式各样的轮子面前,痴迷的啃食着,沉醉着。
而高级工程师,早已把目光放回了软件开发的本质问题上:工程。
没错,不管时代怎么发展,框架怎么推陈出新,程序员要面临的一个亘古不变的问题,就是工程问题,而不是具体某个框架某个库的语法问题。
在这个意义上,其实前端后端的界限已经模糊不清了,因此大厂的高级工程师多半也都会是全栈工程师,他们的日常工作是用工程化手段,去解决一个个复杂问题。
于是你会发现,大厂的前端大佬们,日常研究的东西很可能早就脱离了你所认知的“前端”领域,早已不再拘泥于HTML那一亩三分地,而是根据不同的业务场景,不同的问题领域,把求知的大网,撒向更广阔的天地。
你可能要说了,沐洒,看你说的那么玄乎,能不能具体一点讲讲这些所谓的「高级工程师」,他们到底在做什么“高级”的事呢?
好了,这就是本文要聊的东西:「大厂的前端大佬们都在干啥」。
我待过百度,阿里,7年前进的腾讯,目前仍在职,所以我对腾讯的情况相对更加了解一些,那么我就以腾讯的现状抛砖引玉了。(其它大厂的情况欢迎在评论区与我交流)
整体而言,大厂的前端大佬们,聚焦在这4大技术模块:应用,工程,领域,基础。
1
应用 Application
应用层是最顶层的技术,也是大多数前端最为熟知的一层。简单讲就是用各种手段(库,框架),为某个业务搭建出一个面向用户的终端产品。
而又根据终端的形态,可以大体上分为Web页面,小程序,小游戏,HybridApp,桌面应用等等。
可以说市面上90%的前端开发者日常工作都集中在这一层。
这一层入门门槛足够低,所以容得下大量的跨行业,跨专业人士进入,一起共建多彩的互联网世界。
但应用层技术深度却一点也不可小觑,不同赛道都能搭建起足够高的技术门槛,让众多资深从业者,高级工程师即使在遍地呼喊着「前端已死」的恶劣环境下,依然炙手可热,不可或缺。
这也是为啥很多小年轻都在悲观的喊着「前端已死」,而大佬们却都在异口同声的辩驳着“前端没死”的根本原因。双方都没有错,只不过各自站在了各自的立场。
2
工程 Engineering
工程技术层紧挨着应用层,通过一系列工具和系统为应用研发工作降本增效,维护稳定,保证安全。虽说,哪怕没有这一层,单单只靠应用层,业务也是能跑起来的,但也就仅仅能让代码“跑”起来(运行),而无法让业务“跑”起来(飞速增长)。这层具体包含哪些内容呢?比如:开发阶段的构建编译,脚手架工具,配置管理,国际化,Lint标准,自动化测试等等;调试阶段的联调工具,协议管理,CICD等;发布阶段的CDN,A/B Test,监控,日志,埋点,代理等等。
通过上述一套组合拳完美配合下来,我们的研发工作就会变得非常流畅,稳定,安全可靠,解放研发人员对于 Devops 中ops部分的心智负担,让其更专心于应用层的迭代工作,进而让业务有机会“跑”起来!
在这一层,你会发现大量高级工程师的身影,他们默默的为前端工程化做着各式各样的贡献,为公司的软件研发工作保驾护航,也为来自四面八方的前端新手不断的降低入门门槛。
3
领域 Domain
领域技术诞生于应用层,是在日常开发中,为了解决某个细分技术领域反复出现的复杂问题而进行垂直深挖所产生的技术簇。这类复杂问题通常集中在效率提升,性能优化,跨端兼容,通用性等方面。为了帮助你理解啥叫前端领域技术,我们来讲个故事吧:你的公司有很多产品,需要遵循同一个设计规范,那么必然会催生出一套公用UI组件库。UI组件库,就是一个前端垂类领域技术,几乎每个大厂都会投入相当的人力去设计和维护一套自己的组件库,这其中影响力最大的当数阿里的AntDesign。组件库有了,但是每个业务产品都有自己特有的一类通用模块,我们称之为代码块,那么就会产生一种组件,叫业务组件。而业务组件随着业务场景千变万化,固化在源码里显然不太合适,并且你还需要在多个场景里复用它们,这时,靠人肉编写数量众多的代码块就会成为一件费力不讨好的低效工作。你在想,要是能通过拖拽就能生成可复用的代码块就好了,于是,低代码技术就应运而生了。低代码,就是另一个前端垂类领域技术,也是前几年最炙手可热的领域技术。不过这玩意儿可遭人不少吐槽,属于是新瓶装旧酒的东西。有一天,你觉得拖拽也挺累人,尤其是要精准还原高保真设计稿,哪怕有低代码平台也不是一件容易事,你多么希望这个设计稿能直接变成结构化的代码给到你,丢到浏览器就能渲染。于是视觉编译技术就诞生了。视觉编译就是把UI稿精准转化为代码的一种前端领域技术。后来,你接触到一个东西叫做ChatGPT,你听说这玩意儿能帮你直接生成网站,连设计稿这一步都省了。老板跟你说,赶紧研究,这样就能把死贵的设计师也裁掉了。于是你开始研究怎么通过文字描述需求,直接生成可用代码,这就是智能化编码技术。看到这里你能明白啥叫领域技术了么?说白了就是,通过研究某个垂类场景的通用性解决方案,来反哺上层应用。类似的领域还有游戏引擎,动画引擎,2/3D渲染引擎,数据可视化,流媒体库,跨端框架,无障碍设计等等。在这一层,集结了大厂里非常多的前端高手,他们通常会在工作之余,通过开源共建的方式投入精力研究领域技术,而一旦成功研制出某套领域技术方案,就可能产生巨大的行业影响力,甚至直接产生商业价值,转为商业产品进行孵化。
4
基础 Base
再往后走,走到这一步,就已经不是一般高级前端能接触的层面了,通常来讲得是前端专家级别,才会聚焦在这一层进行日常工作。他们会去参与行业技术标准的制定,比如通过TC39制定下一代ECMAScript规范,以及对应 Javascript/NodeJs 的引擎实现;或者参与到Http/Websocket,Protobuff 等通讯技术相关规范的研究。总之,这一层,既是前端的源头,又是前端的天花板,并不是谁都能接触到。说是天花板,倒不是说技术本身有多难,而是越接近基础的东西,使用范围和影响范围就越广,那么修订和演进就需要极高的技术视野前瞻性,极强的技术功底,和优秀的综合素质。这就好像物理和数学的关系一样,虽然应用物理成就看起来更高大上,但决定人类命运的还是乏味的数学。
简单总结一下:
- 前端开发的工作由浅入深依次聚焦在应用技术,工程技术,领域技术和基础技术。
- 大量的前端从业者都位于应用技术层,为各个业务生产出各式各样的商业应用。
- 少数的高级前端在应用开发之余,也投身在工程技术研发上,为广大从业者保驾护航。
- 较少的前端高手,基于兴趣驱动,在各个细分领域做着大量抽象工作,为前端行业提供通用解决方案。
- 极少的前端顶级专家,除了以上的工作之外,还参与着技术标准的制定,默默地推动着行业的发展。
那么屏幕前的你,位于哪一层呢?欢迎评论区交流。