关于什么是前端架构师的讨论

本文只做讨论和个人的一些观点,不喜勿喷,文明交流.

我个人是个8年老前端开发,马上就9年了。12年大一,作为亲戚朋友里的本科独苗,选什么专业真的没有人可以参考,那时候互联网不发达,还没有张雪峰老师.只能自己摸索了,当时我爸让我选土木工程,因为他在工地做事看到不少大学生管事的。我当时家里有个小霸王游戏机,我觉得游戏很好玩,想着读个计算机以后去做游戏吧。就鬼使神差的报了计算机科学与技术,还好父母开明,如了我的愿,也算是吃到了互联网最后一波红利了。

大四实习的时候,我可能忘了当时想毕业做游戏的初衷,进了一家内网安全的互联网公司实习,做开发。当时前后端分离还不流行,写的是JSP项目。后来16年的时候Angular.js、Vue.js开始流行,随着用户对前端的要求越来越高,后端连带着写前端已经不能满足当下的市场环境了。前后端分离的项目开始流行,那时候才有了前端工程师。于是我就开始做前端了,开始了我的第一个前端项目。

现在在这家公司,以前端架构师的Title入职,结果进去后,能力遭到质疑,因为领导也不懂开发。让公司总架构师来单独找我谈话,第一个问题就是: 你觉得前端架构师需要具备哪些能力?我当时懵逼了,因为我已经知道领导对我能力质疑了,让他来给我下最后通牒了。然后我就回答了。

  1. 在前端技术有足够广的涉猎和足够深的基础
  2. 足够长的前端领域的开发经验
  3. 保持学习,对新的技术要有钻研态度,要思考新的技术解决了什么问题
  4. 要有为公司选择合适框架的能力,能分辨项目适合什么技术栈.

架构师接着问:

展开讲讲?

我个人,喜欢看一些技术贴,公众号,掘金等平台,接触一些新的技术,并尝试实践,把合适的运用到实际中,比如说:新的语法,可选链出来好几年了,但之前面试外包,好多人听都没听过,我解释后,他们说这个可以用来替代三元运算符,但再问具体的,就讲不清楚了,这些人没有持续学习的习惯。再比如说Vite为什么比Webpack快,模块联邦为了解决什么问题,和微前端框架有什么区别。Rspack又是什么?Rust又是什么,跟前端开发有什么关系。这些只能是在社区了解,并下手实践才能明白了。

回答完后,公司总架构师顿了顿,问我来了多久,我说不到一个月,然后他就说我们以为你来了一个多月了.然后又问你觉得公司前端团队怎么样,需不需要调整.我当时对内部的几个前端做了一个主观上的评价,谈话就结束了.现在从结果上看是通过了试用期,转正了.但是给我的职位就是开发,没有管理职能.

自己关于前端的一些思考

普通页码可以让AI做了

现在常见的页面,都能用AI生成了,前段时间我认识的一个产品经理,失业在家,用Cursor自己做了一个应用,AI真大厉害了。他说后端接口要自己写,但页码基本上不用自己写。这么说前端离下岗又近了一步了。

模块联邦可能是很好避免重复造轮子的方案

模块联邦做模块复用,可能是解决企业重复造轮子的一个方案,毕竟这个在前公司实践过,把公共组件、模块抽离到一个公共的服务,其他应用去调用,这时候所有应用都能体验模块联邦服务的更新了。免去了npm包的更新问题和发布规范的问题。对模块联邦感兴趣的,可以看我这篇文章。

Rspack可能是未来

最近几年Vite的更新迭代非常快,得益于原生ES module,使得启动和热部署效率非常高,只是生态比Webpack差,但慢慢也能跟上。但是有个缺陷,Vite的开发和生产对于的包体是不一样的。生产还是会编译成Common.js,这个差异会在极少数情况下出问题。Rspack底层全是Rust,并致力于兼容Webpack生态,所以Vite的2个问题它都解决了,有可能Rspack会是未来。

Rust可能会成为前端大型工具的基础开发语言

前端卡顿活捉耗时,无非就2中情况。

1.一次渲染太多Dom,渲染经常和JS主线程互斥,渲染太多Dom导致页面无法响应用户事件,导致卡。

2.JS一次执行太大的任务,比如说遍历一万条数据。这时候主线程繁忙,页码无法渲染,比如页码Loading可能不动了。

对于第一种卡顿,已经有很好的解决方案了,像React和Vue的虚拟Dom,惰性渲染,Diff宣发等,都是为了解决减少不必要的渲染。requestIdleCallbacK和React的Fiber架构可以在浏览器空闲的时候渲染Dom。对requestIdleCallbacK感兴趣的可以看我的这篇文章

第二种JS执行大型任务在多数情况下,是实现的不合理,比如说很多时候我们都会DeepClone一个数据,再来做业务开发,这个数据可能是后端返回的,里面有下拉框的选项,如果这个选项有一万条,那这个DeepClone会非常耗时,导致页码卡死。这时候要考虑是否是必须要拷贝这一万条数据了,通常情况下是非必须的。如果是必须的可以使用webworker来解决。对webworker感兴趣的可以看我这篇文章。但对于打包这种计算密集型的场景,JS语言的上限就在那里了,很难突破优化。于是就有了Rspack这种打包编译工具。

最后

最后大家有没有一些思考或者建议呢?对于我这个双非普通本科,没有大厂背景的开发仔,怎么才能破局?或者说前端的出路是什么?

相关推荐
前端Hardy18 分钟前
HTML&CSS:比赛记分卡
前端·javascript·css·3d·html
疯狂的沙粒44 分钟前
Vue项目开发 element-UI 前端实现 1到10排列选择的按钮
前端·vue.js·ui
刺客-Andy1 小时前
React第六节 组件属性prop的propTypes类型使用介绍
前端·javascript·react.js·typescript
fantasy_arch1 小时前
性能优化--CPU微架构
性能优化·架构
CoLiuRs1 小时前
分布式系统稳定性建设-性能优化篇
性能优化·架构·golang
Mr.Liu61 小时前
小程序24-滚动效果:scroll-view组件详解
前端·微信小程序·小程序
三金121382 小时前
局部使用Vue
前端·javascript·vue.js
LinXunFeng2 小时前
Flutter - 子部件任意位置观察滚动数据
前端·flutter·开源
好开心332 小时前
js高级06-ajax封装和跨域
开发语言·前端·javascript·ajax·okhttp·ecmascript·交互
小镇程序员2 小时前
vue2 src_Todolist消息订阅版本
前端·javascript·vue.js