除了一面的常规八股,面试过程中还被问到很多实习项目的问题,不像八股那么好准备,但感觉即使没经历过,只要背过相关题目,还是可以混过面试官的(doge)。加上明年有可能需要提前实习了,所以结合上一段实习的日常记录和面试问题整理了一些经验,希望下一次实习自己上手会快一点,更迅速地适应工作,面试的时候答得更加清晰自然一点。
也希望对即将找第一段实习的同学也有点帮助~
全篇分为技术层面,团队协作层面和面试问题三个方面。
一、技术层面需要了解哪些东西
1.核心技术栈
- 工程架构:中大厂一般首推pnpm+monorepo
- 开发环境:搞清楚node版本,不然项目都跑不起来SOS
- 开发框架:vue3/react 老项目用vue2需要你维护shishan
- 开发语言:前端大多数都是TS
- 构建工具:vite/webpack/rspack等 老项目webpack还很多,启动十几秒……
- 跨端框架:涉及移动端的业务会用到,一般都是基于react native或者JSBridge那一套
- 其他工具链:CSS方案比如tailwindCSS/UnoCss等
2.团队自研的基建平台
这些是内部自研的,网上或者ai都找不到全面的教程,需要自己看文档,但比较基础的都会包括以下几个方面。
- UI组件库:都是封装好的,了解基本使用即可
- 前端监控:包括埋点上报/错误捕获/性能监控/告警处理几大功能,一般需要了解的是埋点的新增和管理,以及后台数据获取与分析
- 环境管理:这个是用来管理各种各种的环境问题或者跨域问题的,一般来讲涉及四个环境
- 开发环境(dev)——本地开发使用
- 测试环境(uat)——联调和测试阶段使用
- 预演环境(prev)——内部预演阶段使用
- 生产环境(prod)——最终上线使用
操作流程:前后端约定统一的环境染色标识,根据不同的场景切换不同的域名服务即可
- CI/CD平台:现在构建部署都是自动化,减轻了很多心智负担,简直是主播这种又菜又懒的人的福利,至今没学怎么手动部署(doge)
操作流程大概是这样的
获取操作权限——git push到远程——选择想要的分支——切换构建的环境——发布到对应的服务——有bug修复——发布成功
3.开发规范
- git分支管理:git flow策略
- commit规范:我们当时没有,基本是软约束,我mentor都是随便写()
- eslint校验:熟悉团队的代码规范
- IDE配置:团队有要求统一vscode的setting.json的话也需要了解
- 避坑点:
- 不要随意安装一些包,最好前期调研清楚版本问题,兼容性问题
- git merge之后如果package.json有变化,需要重新pnpm install一下,否则可能会报错
- eslint规则要提前配置,设置保存自动fix,不然拉其他同学都代码下来空格缩进都不一样,肯定全是冲突
二、需求流程中的团队协作
1.需求评审:确认好大体的业务流程以及具体的交互细节,UI和产品可能只会列出主流程,很多边界case和错误情景需要补充
2.技术评审:和后端对接好接口协议,然后专注前端侧的技术方案 架构设计/路由设计/组件设计/第三方库的选型,预估好排期,最开始不要太老实,先乘个1.2的系数差不多,因为后面可能领导会压排期。。
3.开发阶段:和产品/ui不断确认需求,可能会经常变动 后端的接口也可能变动
4.联调阶段:前后端发布到uat环境进行联调,mock数据替换为真实后端服务,这个阶段才是真正完成开发的时候,需要完成基础功能,时间够的话需要完成自测,保证冒烟测试主流程通过
5.测试阶段:提bug——分配bug——改bug——提bug…… 也会有UI走查,需要承接来自ui和qa的双重打击
6.预演和灰度发布:配合团队继续改bug,一般是后端控制灰度过程
7.正式上线:有bug会预警,紧急切流——回滚——修复
总的来说协调过程还是非常心累的,唉不想上班啊
三、面试中遇到的问题
- 需求整体流程/如何与其他岗位的同学协调/遇到不同观点你是怎么处理的
- 重构后怎么去保证项目的可稳定性/如何处理兼容性bug
- 实习期间最有成就感/挑战/提升的事情,
- 是否有处理线上处理故障的经验
- 如何去封装公共组价/请求库/埋点上报平台
- 等等……
总之有些问题都非常的综合宏观,实习生又没做什么东西,所以结合自己的经验准备好回答去应试就行了吧

全部评论
(0) 回帖