React Native
共 2 条笔记
2025-08-12 09:38
您的浏览器不支持 audio 元素。 📑 智能总结 音频信息 时长 :约58分钟 参与人数 :约4人 场景类型 :技术岗位面试访谈 内容总结 候选人技术背景
教育与开发方向 :候选人Jackson大学本硕均为计算机科学专业,最初学习Java开发,涉及J2EE和安卓项目,后转向React技术栈,专注于前端和React Native开发,并在GitHub上贡献过产品。
对Dealer Studio理解 :Jackson认为Dealer Studio可能是远程办公公司,岗位有前后端之分,猜测与汽车行业相关。面试官补充介绍公司主要业务为为汽车经销商搭建网站、提供内容管理系统、客户管理系统、移动应用,以及库存聚合工具和分析,前端使用React、Next.js和React Native等技术。 过往工作技术栈与工具
技术栈 :Jackson在前端主要使用TypeScript,因React Native产品需求,调用Java、Objective - C等原生层能力,使用MongoDB和REST API管理与获取数据,利用Github actions管理CI/CD,借助Expo EAS构建和发布项目,使用React Native测试库、React Query等进行测试与数据请求管理,还运用React导航等技术。
调试经验 :在iOS开发中,遇到React与React Native项目代码复用问题,通过创建共享文件夹放置可复用组件解决;使用相机API等原生API时,因Expo官方文档不足,需参考第三方文档。在选择React Native项目解决方案时,权衡Expo托管项目、Expo预构建解决方案和纯React Native项目的利弊。 UI调试与HTTP知识
UI调试工具 :调试UI问题时,主要使用Chrome开发工具查看网络、UI元素和原代码,利用React Native开发者工具调试React组件行为,若使用Redux,还会借助Redux开发工具追踪数据流,但该工具学习和使用难度较大。
HTTP方法与框架 :HTTP常见方法有GET、POST、DELETE等,在React或React Native社区中,Axios是常用的处理HTTP请求的框架,在Node.js后端开发中,使用Express框架结合Axios实现HTTP请求与响应,需用JSON解析响应体,处理异常,考虑异步请求的同步处理方式。 状态管理与Git操作
React状态管理 :React状态管理有多种框架,如Redux,通过单向数据流,在一个数据中心管理状态,内核组件包括action、reducer、dispatcher,便于调试和组件间通信;还有其他方式,如使用组件内的useState、props以及自定义hooks进行状态管理。useEffect用于在组件渲染后运行有副作用的操作,与纯函数组件不同。
Git与Github操作 :候选人日常使用Git命令行管理代码,如git add、git commit、git push等,使用git rebase和git merge处理代码合并与冲突。在Github上进行代码审查、提交pull请求、集成部署、自动化测试和CICD流水线,还利用Wiki模块撰写文档,支持Markdown格式。 React Native导航与样式处理
导航处理 :主要使用React Navigation进行导航,遵循其规则调用navigate函数实现页面跳转,最新版本可使用App Router技术注册不同页面,遇到问题会借助AI工具解决,尤其关注原生部分开发。
样式处理 :React Native不能直接使用CSS,可在组件内编写样式属性,或借助某些桥梁使用CSS,还可利用组件的内置样式属性。日常工作中常借助AI工具进行样式处理,提高效率。 应对代码修改与时间管理
代码修改应对 :当他人提出删除自己编写两天的代码并提供更好解决方案时,首先要充分理解对方意图,进行调研,了解删除原因,为沟通做好准备;然后明确删除代码的必要性及替代方案,再决定是否同意,同时也会提出自己的建议。
时间管理 :面临截止日期和同事可能延误的情况,先向主管反馈,寻求如推迟几天或调整任务优先级等建议;与同事合作,了解项目进度,共同探讨问题,让同事提前意识到可能的延误并在日常会议中说明,以便提前提供帮助。 📅 章节概要 00:00:53 访谈开场与候选人背景询问 访谈开始,说话人0介绍自己来自美国工作室,与全球团队成员Lana一同对Jackson进行面试,因其技术评估给团队留下深刻印象。随后说话人1开始提问,让Jackson介绍自己的编码背景以及如何进入该领域。Jackson表示大学本硕均为计算机科学专业,从Java开发起步,参与过J2EE和安卓项目,之后转向React技术栈,专注前端和React Native开发,并在GitHub上有产品贡献,享受前端开发带来的乐趣和成就感。 00:03:39 对Dealer Studio的探讨 说话人2询问Jackson对Dealer Studio的了解。Jackson认为它可能是远程办公公司,从岗位描述推测与汽车行业相关。接着说话人2补充介绍公司业务,主要为汽车经销商搭建网站,涵盖网站建设、内容管理系统、客户管理系统、移动应用开发,还有库存聚合工具和分析等,前端使用React、Next.js和React Native等技术。 00:06:14 过往工作技术栈阐述 说话人2询问Jackson上一份工作使用的框架和技术。Jackson详细介绍了自己使用的技术栈,前端以TypeScript为主,因React Native产品需求调用Java、Objective - C等原生层能力,使用MongoDB和REST API管理与获取数据,借助Github actions管理CI/CD,通过Expo EAS构建和发布项目到应用商店,还使用React Native测试库、React Query等进行测试与数据请求管理,以及React导航等技术。 00:10:14 调试经验分享 说话人3请Jackson举例说明调试过程及解决问题的方法。Jackson讲述在iOS开发中遇到React与React Native项目代码复用难题,通过创建共享文件夹放置可复用组件解决;使用相机API等原生API时,因Expo官方文档不足,需参考第三方文档。同时,他还介绍了在选择React Native项目解决方案时,对Expo托管项目、Expo预构建解决方案和纯React Native项目三种方案的利弊权衡。 00:15:19 UI调试与HTTP知识交流 说话人3询问若UI出现问题如何解决。Jackson表示主要利用Chrome开发工具、React Native开发者工具以及Redux开发工具(若使用Redux)进行调试。之后说话人3又问到HTTP基本方法及与API交互相关知识,Jackson介绍了HTTP常见方法,以及在React或React Native社区和Node.js后端开发中处理HTTP请求的框架和相关注意事项,如使用JSON解析响应体、处理异常、异步请求的同步处理等。 00:20:18 状态管理相关讨论 说话人1请Jackson解释React中的状态管理,以及useState和useEffect的区别。Jackson介绍了多种状态管理框架,以Redux为例说明其单向数据流、内核组件及在大型项目中的优势,还提及其他状态管理方式,如useState、props和自定义hooks。同时,他解释了useEffect用于在组件渲染后运行有副作用的操作,与纯函数组件的不同之处。 00:29:29 Git操作说明 说话人3询问Jackson对基本Git工作的理解。Jackson表示每天使用Git和Github,通过命令行使用git add、git commit、git push等命令管理代码,用git rebase和git merge处理代码合并与冲突。在Github上进行代码审查、提交pull请求、集成部署、自动化测试和CICD流水线,还利用Wiki模块撰写支持Markdown格式的文档。 00:34:50 React Native导航与样式处理探讨 说话人3询问Jackson在React Native中如何处理导航。Jackson表示主要使用React Navigation,遵循其规则调用navigate函数实现页面跳转,新版本可使用App Router技术注册页面,遇到问题会借助AI工具解决,且更关注原生部分开发。接着说话人3询问样式处理方式,Jackson介绍了React Native不能直接使用CSS,可在组件内编写样式属性、借助桥梁使用CSS或利用组件内置样式属性,日常常借助AI工具处理样式。 00:42:39 代码修改与时间管理问题探讨 说话人0提出假设问题,若他人提出更好解决方案要删除自己编写两天的代码怎么办。Jackson表示首先要充分理解对方意图,进行调研,明确删除必要性及替代方案,再决定是否同意,同时也会提出自己的建议。之后说话人0又问到面临截止日期和同事可能延误的情况如何处理,Jackson称会先向主管反馈,与同事合作了解进度,让同事提前意识到延误并在日常会议说明,以便提前提供帮助。 00:56:22 访谈结束 Jackson表示事先深入了解了公司信息,感谢面试官的时间、坦诚与耐心,本次访谈结束。 📋 待办事项 本次访谈未明确提及待办事项。
2026-03-19 11:12
您的浏览器不支持 audio 元素。 📑 智能总结 录音信息 时长 :约 0 小时 56 分钟 参与人数 :约 4 人 内容类型 :技术面试 录音总结 本次是Dealer Studio面向候选人Jackson的React Native开发岗位技术面试,面试官团队由前端负责人Johnny、移动端团队成员Lana、移动端高端开发Hamish组成,面试涵盖背景了解、技术提问、代码挑战、行为问题,最终结束面试并告知候选人1-2个工作日内反馈结果。 面试官开场与候选人自我介绍 * 面试团队自我介绍 :Johnny为Dealer Studio前端负责人,Lana为移动端团队成员,Hamish为移动端高端开发,本次面试因面试官对候选人的技术评估表现印象深刻发起。 * 候选人技术背景介绍 :候选人Jackson本科和硕士均为计算机科学专业,最初从事Java方向开发,做过J2EE与Android项目,之后转用React技术栈,专注前端与React Native开发,还在GitHub贡献过开源项目。 * 候选人对公司的初步认知 :候选人认为Dealer Studio是远程优先的公司,猜测业务和汽车行业经销商相关。 公司业务与技术栈介绍 * 团队分布与客户规模 :公司是远程企业,团队成员分布在澳大利亚多地(珀斯、布里斯班、达尔文),还有1名成员在新加坡,当前运营超过1000个网站,服务800家汽车经销商。 * 内核业务与技术栈 :内核业务是为汽车经销商搭建网站,同时提供CMS、线索管理系统、React Native移动端应用、库存聚合与分析工具;前端使用React+Next.js,98%以上使用TypeScript,后端使用Ruby on Rails,移动端开发为主,偶尔需要修改后端代码。 候选人过往技术栈使用情况 * 内核技术栈明细 :候选人上一份工作内核为React Native项目,前端使用TypeScript,会调用原生层的Java与Objective-C代码,使用REST API与MongoDB管理数据,通过GitHub Actions管理CI/CD。 * 项目构建与工具使用 :候选人使用Expo EAS构建项目并发布到Google Play与App Store,使用React Native Testing Library做测试,使用React Query做数据请求管理,使用NativeWind做样式开发,使用React Navigation做路由管理。 技术问题:问题排查方法 * 复杂代码复用问题解决方案 :候选人遇到React项目代码向React Native项目复用的问题时,会创建shared文件夹,存放可复用的通用组件提升代码复用率。 * 原生API适配问题处理 :候选人遇到Expo官方文档未覆盖的原生API定制需求时,会查阅第三方文档与原代码,自行测试解决问题。 * Expo项目三种方案对比 :Expo托管方案简单、文档完善但缺少原生API支持;Expo预构建方案支持更多原生API、可使用EAS发布,但可能和企业现有CI/CD流程冲突;裸React Native方案功能强大但复杂度高,需要同时处理Android与iOS两端的问题。 * UI问题排查工具 :遇到UI异常问题时,候选人优先使用Chrome开发者工具查看网络与UI元素,使用React Native开发者工具调试组件行为,使用Redux开发者工具追踪数据流。 技术问题:HTTP基础方法 * 候选人初始误解问题方向 :候选人最初将问题误解为讲解HTTP连接创建过程,讲解了DNS解析、三次握手创建连接、四次挥手断开连接的流程。 * 纠正后的回答内容 :基础HTTP方法包括GET、POST、DELETE等,React项目中常用Axios发送请求,Node.js后端常使用Express框架处理请求,请求响应使用JSON格式传输,需要处理异常,且因为HTTP请求是异步的,需要使用async/await处理Promise返回结果。 技术问题:React状态管理与Hooks * 状态管理方案对比 :Redux功能强大,适合大型项目的多组件通信,可以追踪数据流方便调试,但是需要编写大量样板代码;Zustand等轻量库更简单,不需要手动触发同步,样板代码更少;组件内部可以使用useState管理本地状态,也可以通过props做父子组件通信,还可以自定义Hooks管理状态。 * useEffect的作用与依赖数组 :useEffect用于处理渲染后的副作用,不属于纯函数,会在组件渲染完成后调用;依赖数组用于控制useEffect的触发次数,传入空数组时useEffect只调用一次,传入依赖变量,变量变化时会重新触发useEffect。 技术问题:Git工作流 * 候选人日常Git使用习惯 :候选人每天都会使用Git和GitHub,习惯在终端使用命令行操作Git,不使用图形接口工具。 * 基础工作流内容 :日常使用 git add 、 git commit 提交代码, git pull 拉取远程最新代码,解决冲突后合并, git push 推送到远程仓库;在GitHub上发起Pull Request做代码评审,配置CI/CD流水线自动测试部署,还可以使用GitHub Wiki编写文档,使用发版功能管理不同版本。 技术问题:React与React Native差异 * 内核差异说明 :React运行在浏览器中,基于DOM,使用HTML与CSS实现接口;React Native会将组件编译为对应平台的原生UI控件,最终输出是原生应用。 * 可复用部分说明 :两者可以复用自定义Hooks、通用业务逻辑、工具函数、基础UI逻辑等内容,减少重复开发。 技术问题:React Native基础开发问题 * 路由管理方式 :候选人主要使用React Navigation库做路由管理,最新版本支持App Router技术,可以注册页面,调用导航方法跳转页面,开发时会借助AI工具获取分步指导。 * 样式开发方式 :React Native不能直接使用CSS,缺省使用JavaScript StyleSheet编写样式,也可以通过桥接工具使用CSS,还可以借助AI工具快速完成样式开发。 JS事件循环代码挑战 * 候选人给出的答案 :题目是带延迟0的setTimeout、普通同步log、Promise then的输出顺序问题,候选人认为输出顺序和代码编写顺序完全一致。 * 面试官讲解正确答案 :正确输出顺序是同步log → Promise then → setTimeout;JavaScript是单线程,存在宏任务与微任务队列,Promise属于微任务,会在当前同步代码运行完成后立即运行,setTimeout属于宏任务,即使延迟设置为0,也会等到所有同步代码和微任务运行完成后再运行。 行为问题:PR被要求删除全部代码的应对方案 * 候选人应对思路 :首先会自行研究对方的方案,充分理解为什么要删除现有代码,之后如果认可对方方案,会完全接受对方的更优方案;如果不认可,会清晰给出自己的理由沟通,若沟通无法达成一致,可以找项目经理介入协调。 * 面试官对回答的评价 :面试官认可候选人的回答思路,提醒候选人接到任务后先明确需求,可以避免做无用功。 行为问题:作为团队lead无法按时交付的应对方案 * 候选人应对思路 :首先会主动向上级项目经理反馈风险,询问能否延期交付或者调整任务优先级;之后会和初级开发一起解决问题,帮助对方推进进度;最后会做覆盘,要求团队成员在每日站会主动提出遇到的阻塞问题,提前暴露风险提前处理。 * 面试官对回答的评价 :面试官认可候选人的思路,该思路体现了责任心,会主动保护团队成员,提前暴露问题,公司内部也会采用主开发加辅助开发的配置,方便遇到风险时及时增派人手。 面试收尾环节 * 候选人入职时间与工作权限 :候选人当前待业,可以一周内入职,并且拥有澳大利亚永久居留权,可以全职合法工作。 * 后续流程说明 :面试官告知候选人会在1-2个工作日内给出面试结果,通过邮件反馈。 📅 章节概要 00:00:51 面试开场与团队自我介绍 本次面试是Dealer Studio针对React Native开发岗位的招聘面试,面试团队由前端负责人Johnny、移动端团队成员Lana、移动端高端开发Hamish组成。Johnny开场说明,面试官团队对候选人Jackson的技术评估结果非常满意,因此发起本次面试,由Hamish率先开始提问。 00:01:40 背景了解环节 Hamish首先请Jackson介绍个人编码背景,Jackson说明自己本科和硕士均为计算机科学专业,最初做Java方向开发,有J2EE和Android项目经验,之后转React技术栈,专注前端与React Native开发,还在GitHub做过开源贡献。随后Hamish请Jackson介绍对Dealer Studio的了解,Jackson认为公司是远程优先企业,猜测业务和汽车行业经销商相关。 00:05:06 面试官介绍公司业务与技术栈 面试官确认Dealer Studio确实是远程企业,团队成员分布在澳大利亚多地,还有1名成员在新加坡,目前运营超过1000个网站,服务800家汽车经销商。公司内核业务是为汽车经销商搭建网站,同时提供内容管理系统、线索管理系统、React Native移动端应用、库存聚合与分析工具;技术栈方面,前端用React+Next.js,98%以上用TypeScript,后端用Ruby on Rails,移动端开发为主,偶尔需要修改后端代码。 00:07:17 候选人过往技术栈使用情况分享 Hamish请Jackson介绍上一份工作使用的技术栈,Jackson说明内核是React Native项目,前端用TypeScript,会调用原生层的Java和Objective-C代码,用REST API和MongoDB管理数据,通过GitHub Actions做CI/CD,使用Expo EAS构建项目并发布到应用商店,用React Native Testing Library做测试,React Query做数据请求管理,NativeWind做样式,React Navigation做路由。 00:10:10 技术提问:问题排查实践 Lana请Jackson分享最近解决的技术问题,Jackson分享了三类常见问题:第一是React代码向React Native复用时,通过创建shared文件夹存放可复用组件提升复用率;第二是Expo文档未覆盖的原生API需求,需要查阅第三方文档和原代码自行测试;第三是对比了三种Expo项目方案的优缺点:托管方案简单但原生API支持不足,预构建方案支持更多原生API但可能和企业流程冲突,裸React Native方案功能最强但复杂度最高。随后Lana询问UI异常的排查方法,Jackson说明会用Chrome开发者工具、React Native开发者工具、Redux开发者工具分别排查不同问题。 00:17:21 技术提问:HTTP基础 Lana请Jackson解释基础HTTP方法,Jackson最初误解问题,讲解了HTTP连接创建的DNS解析、三次握手、四次挥手流程。Johnny纠正问题方向后,Jackson说明基础方法包括GET、POST、DELETE,项目中常用Axios发送请求,Node.js后端用Express处理请求,响应用JSON格式,需要处理异步请求和异常,用async/await处理Promise。 00:22:13 技术提问:React状态管理与Hooks Lana请Jackson解释React状态管理,以及useState和useEffect的差异,Jackson说明Redux适合大型项目,功能强大可追踪数据流但样板代码多,Zustand等轻量库更简单,样板代码少,组件内部可用useState管理本地状态。随后Johnny询问useEffect依赖数组的作用,Jackson说明依赖数组控制触发次数,空数组只运行一次,依赖变化时重新触发。 00:29:22 技术提问:Git工作流 Lana请Jackson说明日常使用的Git基础工作流,Jackson说明习惯在终端用命令行操作,日常用git add、git commit提交,git pull拉取合并代码,解决冲突后git push推送到远程,在GitHub发起Pull Request做代码评审,配置CI/CD自动测试部署,还可以用Wiki写文档,管理项目发版。 00:32:16 技术提问:React与React Native差异 Lana请Jackson说明React和React Native的内核差异,Jackson说明React运行在浏览器,基于DOM使用HTML和CSS,React Native会把组件编译为对应平台的原生控件,最终生成原生应用,两者可以复用自定义Hooks、业务逻辑、工具函数等内容。 00:34:50 技术提问:React Native开发基础 Lana依次询问了React Native开发的几个基础问题:路由管理方面,Jackson主要用React Navigation,最新版本支持App Router,开发时会借助AI获取分步指导;可滚动列表组件,Jackson没能准确说出FlatList,Lana补充说明FlatList性能优于ScrollView,因为它只渲染屏幕可见区域的内容;样式开发方面,React Native缺省用JavaScript StyleSheet,也可以通过桥接使用CSS,日常开发会借助AI工具快速完成样式编写。 00:41:08 JS事件循环代码挑战 Johnny给出一道关于JS事件循环的代码题,题目包含同步log、延迟0ms的setTimeout、Promise then,要求给出输出顺序并解释原因,Jackson认为输出顺序和代码顺序一致。Johnny讲解正确答案,正确顺序为同步log → Promise then → setTimeout,内核原因是JavaScript单线程,Promise属于微任务会在同步代码运行完立即运行,setTimeout属于宏任务,需要等所有微任务运行完才会运行。 00:45:35 行为问题:PR代码被要求全部删除的应对 Johnny给出第一个行为问题:如果自己写了几天的PR被同事要求全部删除替换为新方案,该如何处理。Jackson的应对思路是:先自行研究对方方案理解原因,认可方案就接受,不认可就清晰沟通,沟通无果可以找经理介入。Johnny认可这个思路,补充提醒接到任务先明确需求,可以避免做无用功。 00:50:34 行为问题:作为team lead无法按时交付的应对 Johnny给出第二个行为问题:晋升为team lead后带领项目,因为初级开发能力不足无法跟上进度,项目无法按时交付该如何处理。Jackson的应对思路是:先主动向上级项目经理反馈风险,申请延期或者调整优先级,然后和初级开发一起解决问题推进进度,最后覆盘要求团队在每日站会提前暴露阻塞风险。Johnny非常认可这个思路,称该思路体现了合格的领导力,公司内部也会采用主开发加辅助开发的配置,方便遇到风险时及时增派人手。 00:55:12 面试收尾确认信息 面试进入收尾环节,Johnny确认候选人的可入职时间和工作权限,Jackson说明当前待业,可以一周内入职,并且拥有澳大利亚永久居留权,可全职合法工作。Johnny告知候选人,面试官团队会在1-2个工作日内完成评估,通过邮件发送面试结果,结束本次面试。 ✨ 金句精选 “If there comes a better solution, why not just use it? I’m totally open to it.” (运行策略) “We all just want to polish the products and we want to make it better.” (思考启发) “If everything is too late to be noticed, then it’s kind of hard to rescue.” (运行策略) 📋 待办事项 Johnny:1-2个工作日内完成面试评估,给Jackson发送反馈邮件 Jackson:等待Dealer Studio的面试结果反馈
