如果我是面试官,我会从以下几个方面来提出问题,以更深入地了解你的技能和项目经验:

110 阅读8分钟

`` 如果我是面试官,我会从以下几个方面来提出问题,以更深入地了解你的技能和项目经验:

  1. 项目细节和技术实现 SSO 单点登录:你提到调研了 SSO 的方案并使用 CAS 框架实现单点登录。请详细描述一下 CAS 框架的工作原理,以及它与其他 SSO 实现方式(如 OAuth2)的区别是什么? 动态路由控制:在实现动态路由控制时,如何保证路由表的动态更新不会影响应用的性能?在权限数据更新时,如何确保路由表及时刷新? 大文件上传优化:大文件切片上传和秒传的技术细节是什么?在文件切片的过程中,如何处理网络不稳定导致的失败情况? WebSocket 多线程处理:Web Workers 在你的 WebSocket 数据处理流程中是如何应用的?能否分享一下具体的实现细节,以及如何解决主线程堵塞的问题? 基于多场景的前端性能监控 SDK:在实现这个 SDK 时,你是如何捕获和上报错误的?在不同浏览器和网络环境中,如何保证数据上报的准确性和及时性?
  2. 性能优化相关 Webpack 性能优化:你提到使用了 Webpack 插件进行优化。请具体说明你是如何配置这些插件的?在性能优化的过程中,遇到过哪些问题? 并发控制:你实现了并发控制并使用了 Promise。具体的控制方法是什么?在什么情况下你会对请求进行并发限制? 按需加载和懒加载:在你负责的项目中,按需加载和懒加载是如何配置的?实现这些优化后,如何进行效果验证?
  3. 技术栈掌握与应用 Vue 的深入应用:你提到熟练掌握 Vue 3 和 Vue 2,并有独立开发经验。请问你更喜欢使用 Vue 2 还是 Vue 3?在项目中,有没有遇到过 Vue 特性或生命周期管理上的挑战? CSS 技术的前沿应用:你提到掌握 CSS 前沿技术,比如 TailwindCSS 和 Less。能分享一个项目中 TailwindCSS 的实际应用场景,以及它与传统 CSS 的优势吗? Webpack 和 Vite 的区别:你在不同项目中使用了 Webpack 和 Vite,能否谈谈这两者的主要区别以及各自的优缺点?在什么情况下会选择使用 Vite 而不是 Webpack?
  4. 项目和实习经历的深挖 通用组件的封装:封装通用组件时,你是如何考虑性能、扩展性和稳定性的?在组件的设计上,有没有什么让你印象深刻的挑战或解决方案? 多线程和心跳包机制:在你的问诊项目中,Web Workers 和心跳包机制的实现提升了系统的稳定性和响应速度。请详细描述下 Web Workers 在实际操作中的应用以及如何维护心跳包的稳定性? 项目中的成就和挑战:在你负责的项目中,哪一个功能实现让你最有成就感?遇到过哪些难以解决的挑战,又是如何克服的?
  5. 软技能 团队合作:你在简历中提到有多人协作开发的经验。请描述一次你在项目中与团队协作的经历,如何分配任务,如何沟通和解决问题? 自我驱动的学习能力:在你提到的各项技能中,有没有某一项是你在项目需求下自学的?你是如何快速掌握并应用它的? 这些问题可以帮助我更全面地了解你的技术深度、项目经验和解决问题的能力。希望这些问题对你有所帮助,祝你面试顺利!

一、技术深度和理解 关于 SSO 单点登录:

在实现 SSO 的过程中,你选择了 CAS 框架。你能否简单介绍一下 CAS 的工作原理?为什么选择它而不是其他方案,比如 OAuth2? 在项目中,如何处理 SSO 实现中的安全性问题,比如 CSRF 和会话劫持? 动态路由控制:

你提到根据权限数据筛选动态路由。可以详细说说动态路由控制的实现过程吗?在权限数据变化时,如何保证页面内容及时更新? 你遇到过动态路由控制中角色权限复杂的情况吗?是如何应对的? 前端性能优化:

你在多个项目中使用了 Webpack 的性能优化插件,比如 SplitChunksPlugin 和 DllPlugin。你能详细说明这些插件的作用,以及是如何配置的吗? 在性能优化中,你是如何确定哪些优化策略最有效?是否有遇到过优化效果不明显或“优化过度”的情况? 前端性能监控 SDK:

在前端性能监控 SDK 中,你提到了监控 FP、FCP 等关键性能指标。能否说明这些指标的含义,以及在 SDK 中是如何捕获和上报的? 错误捕捉方面,通过哪些方式捕获错误?在 SDK 中,如何处理数据量大时上报的效率问题? 大文件上传和并发控制:

在实现大文件上传时,如何处理文件切片、断点续传等问题?如果网络不稳定或中断,如何确保文件上传的容错性? 你提到封装了 Promise 控制并发。可以描述一下这个并发控制的实现过程吗?在什么场景下需要调整并发量? 二、项目经验和实际应用 关于项目中的问题解决:

在你参与的项目中,有没有遇到过让你印象深刻的难题?能否分享一个具体的案例,以及你是如何解决的? 你在项目中封装了超过 10 个通用组件。你认为封装组件时最重要的考虑因素是什么?在封装组件时,有没有遇到过扩展性、性能方面的挑战? 斑马进度 AI 版的业务理解:

你提到斑马进度 AI 版是广联达的核心业务,主要用于建筑项目的进度管理。你是如何理解这一业务的?在开发功能时,如何确保你的技术实现符合业务需求? 在官网性能优化方面,你做了哪些改进?如何衡量这些改进对用户体验的提升? 多线程处理和心跳包机制:

在 H5 问诊项目中,你使用了 Web Workers 处理 WebSocket 的长连接数据。这是如何实现的?有什么特别的难点或解决方案? 心跳包机制可以提升连接的稳定性,你是如何设计这个心跳包机制的?它的频率是如何确定的? 三、系统设计和扩展性 监控 SDK 的扩展性:

如果在前端性能监控 SDK 中增加更多监控功能,比如自定义指标或页面特定的监控,你会如何设计这个 SDK? 在 SDK 中,你如何保证在不同环境(浏览器、网络条件)下的兼容性和稳定性? 权限控制的设计:

在动态路由和权限控制方面,如果未来项目的权限逻辑变得更复杂(比如加入多级角色、多层级模块),你会如何扩展现有的权限系统? 如果权限发生变化,前端如何高效地通知各个页面和组件并更新视图? 四、软技能与团队协作 团队合作:

你在多人协作的项目中扮演了什么角色?有没有遇到过分歧或沟通不畅的情况?你是如何解决的? 在项目中,有没有主动承担任务或主动提出优化建议的经历?可以分享一个例子吗? 自我驱动学习和成长:

你提到掌握了很多前沿技术(如 Webpack、Vite、TailwindCSS 等)。这些技术是如何学习的?在快速掌握和应用新技术方面,有什么方法或技巧? 你对未来的职业发展有什么规划?在前端领域,有没有特别感兴趣的方向或技术? 五、业务场景问题 问诊项目的用户体验:

问诊项目涉及患者和医生的实时沟通。你在设计交互逻辑时,如何确保操作的流畅性和稳定性?有没有遇到过用户体验方面的反馈? 在医疗行业的项目中,用户数据的安全和隐私尤为重要。你在项目中是如何确保用户数据的安全性和隐私保护的? 监控 SDK 在业务场景中的应用:

如果监控 SDK 在上线后发现某些页面加载时间偏高,你会如何排查问题并优化页面性能? 如何在业务系统中应用监控数据?你认为有哪些关键性能指标能够真正帮助业务决策? 这些问题旨在考察你的技术深度、业务理解能力、解决问题的思维方式以及团队合作的软技能,帮助我更全面地了解你的能力和经验。希望这些问题对你有帮助,祝你面试成功!

``