专业技能
一般来说,面试官会根据你的简历内容去提问,但是技术基础还有需要自己去准备分类,形成自己的知识体系的。简单列一下我自己遇到的一些题
- HTML+CSS
- JavaScript
- 前端框架
- 前端性能优化
- 前端监控
- 模块化+项目构建
- 代码管理
- 信息安全
- 网络协议
- 浏览器
- 算法与数据结构
- 团队管理
- 开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
最近得空把之前遇到的面试题做了一个整理,包括我本人自己去面试遇到的,还有其他人员去面试遇到的,还有网上刷到的,我都统一的整理了一下,希望对大家有用。
其中包含HTML、CSS、JavaScript、服务端与网络、Vue、浏览器等等
由于文章篇幅有限,仅展示部分内容
一、前言
在前期博文《跨平台应用开发进阶(三十七)uni-app前端监控方案 Sentry 探究》中讲解了Sentry
, Sentry
是一个开源实时错误监控项目,支持包括 web 前端、服务器端、移动端及其游戏端等多端配置。考虑到目前存量产品在用监控方案听云,故弃用Sentry
,探究听云集成应用详情。
二、产品介绍
基调听云App 移动应用性能管理产品采用SDK方式实现对App的崩溃、卡顿、超时等性能问题进行采集,并能对真实用户体验数据进行量化分析,实现版本迭代过程中的用户体验优化。
基调听云APP 以集成SDK方式,通过在指定方法中嵌码去采集方法中的数据。可以通过报表服务器查询各种方法的数据和调用次数。
具有如下功能:
- 数据采集
HTTP/HTTPS
协议数据收集- 崩溃/卡顿异常数据收集
- 事件性能数据收集
- 视图性能数据收集
- 进程内存和CPU使用率
- 用户体验分析数据收集
- 网络数据
- 应用响应时间
- DNS解析时间
- TCP建连时间
- SSL握手时间
- 首包时间
- 访问量
SDK也可以采集线程堆栈,数据库、自定义参数和HTTP请求参数。
-
用户体验分析-应用启动数据
- 启动耗时
- 启动次数
- 启动期间的崩溃、事件性能数据
-
用户体验分析-用户操作数据
- 操作耗时
- 阻塞耗时
- 操作次数
- 操作期间的崩溃、事件性能数据
-
用户体验分析-页面加载数据
- 页面交互耗时
- 页面展现耗时
- 页面加载期间的事件性能数据
2.1 工作原理
2.1.1 Android平台工作原理
基调听云SDK 通过虚拟机
技术在应用打包编译过程中对应用采样点(HTTP
标准协议和HTTPS
标准协议)进行嵌码操作,该操作会在协议类库
方法前后部署基调听云SDK探针,该过程不会影响用户代码逻辑。
每当App启动时,基调听云Agent
开始工作。应用有网络请求时,通过之前部署的基调听云SDK探针以一定的采集频率来采集数据,并对采集的数据进行汇总后,上传到服务器(报表展现)。
应用退出到后台或用户关闭App时,基调听云Agent
停止工作,以便减少不必要的流量消耗。
- Android SDK性能消耗
应用App嵌码后体积增量为370KB左右。
2.1.2 iOS平台工作原理
利用objective-c
的runtime
特性,通过Method swizzle
技术,可以实现在运行时替换 selector
对应的方法实现,达到给方法挂钩
的目的。也就是说,嵌入基调听云的 SDK 后,在程序启动之初,基调听云的SDK会对相应的方法执行swizzle
操作,从而在调用一个被swizzle
过后的函数时,将会首先调用SDK相应的自定义函数,在SDK的函数中会执行一些数据采集的操作,然后SDK的函数会再回调原函数的实现,不会影响原程序逻辑。
- iOS SDK体积增量
三种指令架构增加 2.71M,具体表现为: Armv7
增加 0.81MArmv7s
增加0.81MArm64
增加0.99M
三、项目集成
集成听云至项目中,不同平台采用不同的集成方案(对于集成实施者不友好)。其中,android
采用sdk
集成方式实现,ios
采用uni-app
官方插件形式集成。
3.1 Android集成
参照集成文档《TingYun_SDK_Android_Gradle_2.15.6_3.0_uni-app》可完成集成操作。
有关Android
本地组包操作,详参博文《跨平台应用开发进阶(九) :uni-app 实现Android原生APP-本地打包集成极光推送(JG-JPUSH)详细教程》。
APP启动后可在 logcat
处通过 NBSAgent
筛选出如下信息,即代表集成成功:
3.2 iOS集成
参照探针集成文档《iOS集成-基调听云App性能监控》,可完成探针集成。
参照探针部署文档《iOS集成听云uni-app插件》,可完成探针部署。
总结一下
面试前要精心做好准备,简历上写的知识点和原理都需要准备好,项目上多想想难点和亮点,这是面试时能和别人不一样的地方。
还有就是表现出自己的谦虚好学,以及对于未来持续进阶的规划,企业招人更偏爱稳定的人。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
万事开头难,但是程序员这一条路坚持几年后发展空间还是非常大的,一切重在坚持。
为了帮助大家更好更高效的准备面试,特别整理了《前端工程师面试手册》电子稿文件。
前端面试题汇总
JavaScript
性能
linux
前端资料汇总
前端工程师岗位缺口一直很大,符合岗位要求的人越来越少,所以学习前端的小伙伴要注意了,一定要把技能学到扎实,做有含金量的项目,这样在找工作的时候无论遇到什么情况,问题都不会大。