只会按tab的bug开发工程师 level
获赞
661
粉丝
107
关注
20
看过 TA
2292
门头沟学院
2026
前端工程师
IP属地:上海
暂未填写个人简介
私信
关注
随着ai ide工具的迅猛发展和在前端开发中的运用,网络上出现了很多吹捧ai技术的言论或者ai取代前端的论断。然而作为一个经验有限的小白,我的感受却和某些大佬们几乎截然不同,总觉得ai还是不够强,不够聪明,接下来聊一聊我的看法供参考,仅代表本人观点。实习和学习期间,cursor,Claude code,trae这些ide我都用过,我大体的结论是:对于常规业务需求,ai ide工具必须在以下几点条件下才能有较为良好的表现,但是对于企业级项目而言,前端开发本质上是企业的商业目标在技术上的实现,和任何一项工程实践一样,都面临着极其复杂的上下文环境,以及多主体的沟通协作,因此以下的要求都很难完全满足。第一,简单明确并且一次性的业务需求。显而易见,需求的复杂度在很大程度上决定了工程的复杂度,以及指令描述的清晰程度。就拿企业里面常见的支付下单链路来说,涉及十几种订单状态和流转步骤,理解业务的过程必须由开发者完成,ai仅仅是辅助。至于迭代次数大家懂得都懂,企业级项目迭代频率是非常快的。第二,低交互,短链路的界面和低性能的要求。c端业务对性能要求通常较高,即使是b端业务也会有较为复杂的交互链路。而这一点是前端开发特有的难度,毕竟前端构建的是UI界面,如果交互效果复杂(UI方面比如阴影渐变,淡入淡出,交互方面比如拖拽展开折叠等),则会非常难以用文字进行描述,对ai来讲也非常不友好。第三,有限的工作区边界和上下文规模这点前端相比后端更容易做到。后端开发常常涉及接口,数据库,中间件,路由等各种模块之间的复杂调用关系,而前端相对来讲更容易把UI组件拆的很细,进而约束工作区和上下文规模。但这项工作涉及组件拆分和数据管理和接口设计,也需要由前端开发者完成,而非完全交由ai工具。第四,命令式的指令和明确的技术规范所谓的命令式,指的是需要把开发步骤详细拆分,而非仅仅声明式地描述结果。举个例子,你不能只说“在这个组件实现登录和注册功能,”,那样的话写出的代码质量很低。你应该和他说 先实现静态约面,再添加交互,校验输入,最后提交结果,并且附上把每一步的效果。此外,请求库用哪个 请求函数是否封装 样式方案用哪个 需不需要拆分文件 开发中有哪些格式规范 函数变量命名怎么样 这些都是需要开发者去约定的。接下来举几个日常前端开发中的情景,这也是我为什么会得到以上的结论和感受。1.你刚进公司开发第一项需求,项目需要同时在web端和移动端运行,请问你如何解决手机端调试(让手机打开localhost),开发阶段跨域和登录状态共享(拿到其他域名的登录态)的问题?ai可能会给你一些常规的方法,什么webpack vite的proxy代理解决跨域,然后局域网监听,内网穿透让手机访问网址,修改host可以共享cookie等等,这些我也都不太懂。但其实公司里面大概率早已有成熟的解决方案,只需要访问一个共享的中间网站,让手机扫个码就能一站式解决所有问题,连proxy都不用配。所以你要做的是熟悉文档,判断问题和沟通提问的能力,以及一些超越前端范畴的网络知识。这些都是ai无法替你获取的信息。毕竟对ai来说,所有的问题都是你的问题,但对你来说并不是哈哈哈。2.假设你正在开发一个商品展示的详情页,现在拿到的是设计稿和prd,懒得一点点敲样式,打算把它甩给ai,直接告诉他在中让他直接生成静态代码。但很快你会碰到很多问题。首先是你要清楚你们项目样式方案要用哪一个,moduleCSS,CSS in JS还是原子化CSS,不说的话ai可能就直接把style塞到标签里了。其次是一些响应式问题,页面宽度不够时布局需不需要换一种展示方式,文字溢出怎么展示?页面宽度拉长的时候圆角比例不对了可以接受吗?页面上的icon怎么都不一样能不能统一复用?这些都需要和设计师一点点沟通甚至battle。第三是交互逻辑,用户体验以及一致的UI界面。滚动到底部有没有loading状态?滚动事件要不要节流函数?函数自己写还是用第三方库?用哪个版本?移动端支持度怎么样?商品的数据量有多少,需不需要虚拟列表?没数据的时候页面展示什么?高度是不是固定?此外,弹窗和loading 按钮是不是已经有通用的组件了,没有的话需不需要封装?需要封装到什么程度?需不需要发布npm包?这些都是由你和团队决定的,而不是完全交给ai,否则它可能用一大堆代码还原了一个你引入几行代码就能搞定的东西。AI不是不考虑这些问题,而是不符合你的预期,增加后续维护成本。有可能ai给你用antd写了一堆,但是明明你们部门之前有自己二次封装antd,也有可能它引入的包和你项目的某个框架不兼容。这要求你对部门技术有基本的了解甚至熟悉。3.进入联调阶段,你开始换账号测试,突然发现换到某一个账号后下单按钮疯狂点击没反应,开始排查。原因是这个用户在这个协议里受到了某些限制不能下单,后端数据库里拿不到数据,返回操作失败,前端也无法跳转下一步。理论上,登录之后如果他受到协议限制没权限,按钮应该隐藏,提示用户没权限。问题出现的原因,大家都应该背锅:产品: prd里面没写,逻辑和之前一样,因为默认大家都懂。没权限按钮肯定点不了啊设计: 照着prd画的,总不可能有按钮没按钮都画一遍前端: 你当时梳理业务的时候是给ai梳理的,ai打死也不知道你这按钮还会隐藏的,所以你没问产品,也没找后端加字段。后端: 只看prd,prd没写就没做。开发阶段前端也没说要加字段,就没加。现在你提出了解决方法,让后端加上一个字段hasRight,前端判断是否有权限,没有的话按钮隐藏掉。但是后端看了一下项目,发现这个字段的判断逻辑在另一个旧项目里面,所以让你去调用旧的接口拿字段。你求着后端说能不能聚合一下,后端说太麻烦不好做,而且不要重复开发,最好前端发个请求去拿就行了,所以为了一个新的字段前端要去另一个页面找请求是怎么发的。前端很委屈,但是也很无奈。新项目的页面用到老项目的接口,于是你打开线上页面,打开控制台翻请求看看参数怎么传的,发现那些参数完全没见过都根本看不懂啥意思。复制给ai它能帮你吗?恐怕不太行吧。无奈之下,你又只能去找这个项目的前端代码,在套了一层又一层的屎山里面翻来覆去,总算找到了那些请求参数的依赖逻辑,万幸的是这些参数都通过在新项目的现有数据推导计算出来,有些只是换了个名字。不过很快你又发现新的问题,这个老项目部署在a.com域名上,但是你现在开发的新项目部署在b.com上,即使你参数都准备好了,也会因为跨域拿不到数据。难道说还要在本地配置代理吗?甚至可能还要开发一个node中间层作为转发?开发阶段好说,测试和生产又怎么办?难道因为一个字段导致项目架构都要变动吗?要不还是找后端协调一下?怎么办呢? ai能帮你吗?你要是问题说不清楚,它真有可能给你本地整一个node转发层出来。。。4.提测阶段,第一天测试就拿了bug截图甩你脸上。你发现页面按钮全部挤一起,怎么回事呢?调试了半天才发现原来你习以为常的flex布局gap属性在某些安卓旧式机上不兼容。所以只能把项目里面手动把gap一个个换成margin–right和margin bottom。。。你好奇ai为什么没和你说?ai能知道就怪了。。。而且鬼知道你用什么机子测。测试的最后一天,产品突然说要加个埋点,问就是老板要,于是你只能拉回代码加埋点,本来想问ai,但是ai怎么可能知道你们部门埋点工具的逻辑呢?于是你只能去翻文档一点一点对照着写。最后看着卡着一动不动的cicd流水线感慨,为什么ai不能再聪明一点呢。以上场景都是我的亲身经历,实习几个月代码和技术没学多少,反倒是看到了不少甩锅和妥协。看到这你可能会理解,为什么我认为即使ai工具在我们日常开发中完成了大部分编码工作,它对我们的帮助程度仍然有限,大概占所有工作的30%-40%左右。我这还是个初级的实习生,对于更高级的程序员,这个比例只会大幅度降低。从最开始的业务理解,需求分析,到前期的架构设计,技术选型,旧项目的技术债务梳理,迭代成本评估,到具体的代码实现,安全性测试,bug调试,再到最后的生产上线,性能调优,前端开发涉及到产品需求提出到落地到后续迭代的全链路,在这中间很多事情是需要我们人去一点一点理解和实现的。很多时候我们面临的不仅仅是工作区的窗口那几个文件和几行代码,甚至都不是单纯的技术问题,是一个带有历史包袱和庞大上下文的复杂系统。所以我们要做的是打好地基,搭好框架,尽最大的可能缩减需求边界,明确限制条件,这样ai才能成为你得力的执行者,做好最后的搬砖工作,而不是一上来就让ai建造一整座房子。
AI Coding的使用...
0 点赞 评论 收藏
分享
2025-12-08 22:00
已编辑
门头沟学院 前端工程师
明年2-3月就开始暑期实习了,现在0实习,要不要在寒假赶紧找一段日常?主包去年面临一模一样的问题,也踩过一些坑,所以想分享一下我的观点供参考。这篇帖子主要写给只会三件套+框架+crud项目水平的同学。如果你现在就已经有大厂实习,或者你是985科班从后端or算法转前端的,有高水平项目的,就可以不用看这篇了,暑期大概率能收割offer的,你们水平比我高多了QvQ。先上结论——如果你是92的同学:寒假不要去实习。如果你是非92的同学:可以去寒假实习,但不要all in。有些同学刚写完项目,想找实习练手,这都可以理解,但现在时间比较尴尬,所以必须要把精力花在最高优的事情上。无论是什么学历的同学,在你投出去第一份大厂简历之前,请确保先做到以下几点——1. 系统地过一遍前端八股,从语言到框架,再到计网等等。不一定要背的很熟,但基本的点要简单了解,不要有那种完全没听过的情况。(大概1-2周)2.面向面试地打磨简历,并且熟悉简历上的项目每个难点亮点,包括具体实现细节以及延伸出来的八股知识与场景题。(大概1周)3.手写一下前端的常见JS手撕题(比如深浅拷贝,数组对象处理等),练习一些常见的代码输出题(事件循环和this指向考的最多),大概1-2周4. LeetCode的hot100非hard刷个50道左右吧,,高频题多做几次,大概一个月时间。前端其实除了几个头部大厂,算法题考的不是特别的频繁。惭愧的是,主包直到秋招开始都没有百分百做到这些,特别是一些比较冷门的场景和手撕,导致面试频频出问题SOS,还是比较可惜的。总之,做完以上几点,是需要两个月的时间的。去除掉中间过年和期末周,时间上刚好能在明年三月前一两周把简历投出去。不可否认的是学完基础技能就能上手实习,但是中大厂还是更重视校招生的所谓“基础知识”,如果不准备的话找不了大厂实习。对于92的同学来讲,把八股手撕练熟了,在面试中能有良好的表现,上比简历上有一段平平无奇的中小厂实习要更加分的。我去年是在寒假阶段去了一家小厂实习,但是什么都没学到,最后简历也没写上去,反而浪费了背八股的时间,到后面比较被动,属于是得不偿失。对于非92的同学,可以先找中小厂实习,但与此同时不要忘了沉淀八股和项目,会比较辛苦一点。项目不能是烂大街,同时八股要背的深背的广。建议是优先找中小厂实习,然后骑驴找马,包装完产出之后马上找中大厂日常。3-4月暑期一般是神仙打架,如果学历一般又没实习比较难进,可以等到5月再找暑期也完全没问题,和大佬们错开时间。甚至在5月之前能找到大厂日常,一直干到秋招也可以的,毕竟暑期没转正的话,和日常也没区别。最后就是我看到很多朋友总喜欢在简历上写很多前端无关的技术栈,nodejs就算了,比如c++,数据库这些。如果真不是特别懂的话就不要给自己挖坑了,写了的话可能都会问的,还是尽量表现出你是一个明确的前端求职者。
你开始找寒假实习了吗?
0 点赞 评论 收藏
分享
整个秋招到目前为止面试了三四十场,在我自我介绍之后,面试官最常问的问题便是,你为什么会考虑转行到一个完全不相关的方向?他其实想知道的是,为什么你已经就读于高层次的院系,却舍得在就业的时候不顾沉没成本选择了放弃?回答的时候,我总会和面试官说一些事先准备好的套话,个人的价值选择,能力可以跨专业迁移,等等。然而内心深处,我最想说的转行理由便是:我和这个专业实在三观不合。大四,去年的秋天我对专业的抗拒情绪达到顶点,这可以说是是我转码最原始的动力。我无法从酷炫的渲染图和空泛的PPT中找寻学习的意义。我是个天赋一般,背景一般的普通人,与学院精英主义的氛围格格不入。我向往更加自由,年轻,有活力的氛围,而学院和行业的某些老登则让我体会到了什么叫做吃尽时代红利后的PUA。我是个很需要及时反馈的人,但从设计到落地的周期实在太长,每次反馈又存在极强的主观性。我对知识和技术仍有很强的好奇心,但设计学了五年,知识密度与深度极低,每次做方案其实都是基于一套重复的流程。大部分时间都在用制图软件做一些重复性的操作。我已经很久没有知识输入的安全感和满足感。转码的时光,几乎为我打开了一个新世界。我认识了很多和我一样转码的同学,也有很多计算机专业的同学,虽然我素未谋面,但相同的目标让我们聚在了一起。我看了很多大佬的经验贴。很多计算机系的同学也经常鼓励我,调侃着“没关系我们科班也什么都没学到”。不过互联网上的信息也很参差不齐,劝退的声音很多。各种“Java已死,前端已死”,“ai取代程序员”,“科班的都招不完还招你们”的论调也曾让我有点迷茫。但转念一想,我只是为了脱坑,要求不高,先入行再说,冲吧!一月,寒假,我的简历上只有一个项目,不敢投大厂。为了填满简历内容,我甚至还写上了熟练运用PS,AI,Figma,能进行简单的UI设计和原型设计。投了大概几十份简历,只约到了一家面试。是线下的一次笔面,笔试写了几道JS和vue,面试可能是学历加成的缘故,居然稀里糊涂地过了。很快我就发现我高兴得有点早,公司开发流程很简陋,连个正经的QA和PM都没有,而且没什么活干,我每天就是在工位上带薪背八股。两周时间,我唯一做的活就是改了几个css样式和修了几个bug。在简历上写不了任何产出。在实习三周的时候突然被BOSS上的字节HR约了面试,人生第一次面试大厂,内心惶恐不安,于是在面试前几天疯狂背八股,找数据结构和算法的教程临时抱佛脚,当时的我hot100一道都没写。现在清晰的记得两道手撕,一道curry函数一道手写instanceof,八股问的基础题和场景题,面完三小时收到感谢信。虽然挂了,但我觉得还行,不至于完全不会,至少看到了准备的方向。过年,回家,ds火了,在b站继续搓了一个项目,越来越觉得ai真好用。家里人得知我的转行想法之后都纷纷质疑,我也开始怀疑自己,这条路真的对吗?二月,继续实习,开始写需求。居然是不用框架只用原生三件套开发一个网站,基础不好,脱离了框架都不会写代码了,只能用ai凑合着写。三月,觉得小厂实习学不到东西,很多大厂暑期也开始,所以火速离职准备暑期。接下来的备时间,是我能力提升最快的时候。不是在代码能力上,而是完善整个知识体系。从基础语言到框架底层,到工程化工具,性能优化,我这才发现原来前端有这么多东西需要学,我差的太多太多了。四月,投递暑期实习后第一次面试,腾讯ieg。一上来两道算法,第一道没见过,完全没思路,尴尬得脚趾扣地。后面问答没有一道八股,全是场景题,几乎没有一道能答上来。面完秒挂。接下来面了三家大厂,无一例外一面挂,主要原因就是计算机基础不牢(特别是408的计算机网络和算法部分),项目不够熟悉。那可能是我面试意志最消沉的一段时间。五月,假期去别的城市旅游了两天。假期回来隔天就面试某家三线大厂(中厂),约在下午。记得那天午睡起来心情特别差,甚至想打电话告诉HR说不面了,最后想想还是算了,当成一次锻炼机会。结果一面手撕比较简单,不是算法题,这是我第一次做出来手撕题,八股也比较常规,都答了上来。三个工作日后约了二面。幸运的是,二面leader面居然没有面什么技术相关的问题,就是纯粹聊了点项目的技术选型和思考,三天后约了HR面,隔天OC。不想面了,直接接了吧。六月,开始了第一份互联网大厂实习,也是让我对互联网逐渐祛魅的一段经历。最开始几周压力不大,就是熟悉项目,随着需求开始排期,工作压力逐渐上来了,不过由于各种各样的原因,需求一直延期,给了我充足的时间去梳理项目和开发,我也体会到了企业级项目的开发,在一定程度上拓展了视野。七月,两个需求并行。开始比较频繁的加班,基本上早11晚10。团队沟通效率低下,需求倒排期,细节描述不清楚,随时oncall,领导疯狂PUA,同事甩锅,各种评审会,周会周报,压的人喘不过气。与此同时,秋招提前批已经开始,我在周末开始捡起丢了两个月的八股和算法。有时候一整个周六或者周日的时间都花在几道dp算法题上,那种难以理解的痛苦和困惑简直刻骨铭心。八月,一边准备转正,一边包装简历准备投秋招。那是实习期间强度最大的时候,整个组基本上都会加班到晚上十点多。隔壁组甚至有的研发和产品熬到凌晨两三点。不过由于产出不多和部门hc缩减的原因,我对自己转正其实没什么信心。理性上看,这份实习都算性价比很高。薪资可观,组内伙伴们很友好,能学到东西,然而当每次早上乘着地铁上班的时候,我依然感到强烈的不适。或许只要它是一份工作,就已经足以磨灭人的所有灵性。九月,不出意外转正失败了。直接离职。离职那一天,mt告诉我,互联网不是好地方,不要有命赚钱没命花,早点跑路才是王道。我点点头。第一场面试,直接给我浇了冷水我自以为有了实习经历会好点,结果面试官仍然拷打基础八股,毫无准备的我直接秒挂。之后的时间,我又陷入了背八股,梳理项目,投简历,做笔试,面试复盘的无限循环。国庆假期的时候,我没有进行任何娱乐,一个人去图书馆刷了一遍hot100。秋招教会我的,是如何处理悬而未决。九到十月,投递100+公司,面试了三十多次,最后也是凭借着一点点运气吧,在十月终于拿到了第一个大厂意向,但我觉得,这仍不是终点。拿到意向的那一刻,我只开心了三秒钟。更多的是一种终于得到肯定的解脱与慰藉,就像一个东奔西跑找不到家的孩子在默默流泪的时候,突然被一个温暖的怀抱揽入其中,它抹去了你此前所有的委屈、不甘、屈辱、痛苦,并且告诉你,别哭了。随之而来的,是新一轮的焦虑。我真的能扛住互联网行业的强度吗?我真的适合做程序员吗?我自己也没有特别明确的答案。我对自己的技术水平并没有太大自信,比起那些对技术真正热爱的同学,我更多的是一个精明的应试者。转码的经历,让我得到了很多,同时也失去了很多。而秋招的四个月,更是直接杀死了我对生活的所有兴趣,甚至重塑了我内心构建的价值体系。我学到了很多新的知识,获得了技术的深度,但也错失了真正探索兴趣的时间,丧失了生活的多重可能性。我对陌生人没有信任感,对自己也不自信,因为我一直在忽悠面试官和hr,他们也在忽悠我。我变得非常精致利己,不功利的事情,我能不做就不做,任何影响我就业的事情都靠边站。我变得非常急切,做一件事只想快速看到结果,不想经历中间的过程。我变得非常敏感,信息和邮箱常常让我神经衰弱,面试官和hr的一两句话都能让我来回琢磨内耗。我变得非常患得患失,之前的我还觉得月薪几千也不是不能活,而现在,即使开奖的那一两千base就能轻易引发我的焦虑。行业的切换倒还在其次,更令人痛苦的,是从一个温室里的学生,切换为职场的打工者。从高中到大学,评价体系都非常单一,这个游戏的规则就是,你努力,拿到好成绩,就会有好结果。而秋招,是我们人生第一次经历外界社会的全方位审视。从学校学历到技术水平,再到职场成熟度,匹配度,这是一场全方位拷打。就以婚恋市场举例,人家看的最多的便是家庭出身,个人收入,身高,颜值,性格。即使我不想谈恋爱不想结婚,也依然要在社会上求职,去找到自己的定位,依然需要接受市场的多方面拷打。踏出校门之后,没有人再因为你是一个好学生,你考了个好成绩,而对你温情脉脉。这一刻我才明白,生活的痛苦,职业的焦虑,人际的压力,并不会因为你选择哪一条人生道路而消失,它只是以另外一种方式转移了。只有彻底抛弃卸下身上的光环与标签,去正视内心的焦虑与欲望,正视外界的评价与需求,才能获得真正的自由和成长。
2025年终总结
0 点赞 评论 收藏
分享
一面 1.自我介绍2.实习过程的项目难点3.为什么要用pnpm+monorepo架构4.开发完成公共库之后,还没发布到npm上,如何让同个仓库的开发者使用(答的是直接相对路径引入,正确答案是npm link)5.文件上传是如何做切片的?file对象和blob对象有什么区别?6.localstorage能不能存储blob对象?不能的话应该怎么做?(base64转字符串)7.有没有了解过Arraybuffer对象?8.TS中的type和interface有什么区别?9.TS中的&&,!,??分别表示什么10.页面中四个div,前三个在左边宽度固定,最后一个在右边宽度自适应,怎么实现?11.flex:1的具体含义是什么?12.如果给其中一个元素设置flex–basic,又同时设置width为固定值会怎么样?以谁为准?13.vue中v–for的key有什么用?如果不设置的话会给一个默认吗?14.反问业务和技术栈二面1.自我介绍2.实习中做整个需求的完成流程3.你作为前端开发,在需求评审和技术评审之中做了什么事情?4.作为研发,是否曾经对业务需求提出优化,你是如何说服产品经理的?5.在实习过程,你觉得最大的挑战是什么,又是怎么克服的?6.遇到bug的时候会有怎么样的解决步骤?如果测试同学和你说bug是偶发的,无法确认一定能复现,你会怎么办?7.在做技术选型的时候,如果项目经理和产品经理,或者你的mentor对你的技术方案提出了不同的看法,比如你觉得a方案更好,他们觉得b方案更好,你会怎么做?8.实习过程中遇到哪些兼容性bug?9.讲一下TS中的class,以及面向对象编程10.你如何理解编程领域常说的“组合优于继承”?(非科班选手,完全没听过这句话)11.反问培养机制一面问的挺细节的,二面问的很综合
查看22道真题和解析
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务