React Native 新架构实战课
蒋宏伟
58 同城前端架构师,58RN 负责人
18214 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 42 讲
React Native 新架构实战课
15
15
1.0x
00:00/00:00
登录|注册

10|Debug:解决BUG思路有哪些?

你好,我是蒋宏伟。
传说中,比尔盖茨在飞机上顺手撸一个 BASIC 解释器,不 Debug 就能直接跑起来。虽然比尔盖茨是“传说级”的程序员,但他写代码也是需要调试的。我们可以在维基百科的 Altair BASIC 词条看到:
盖茨和艾伦从波士顿的分时租赁服务中购买了电脑上机时间来完成 BASIC 程序的调试。
但现实中,我们大部分情况都很难做到不 Debug,不调试就能把代码顺利上线,更多情况下,我们都需要和 Bug 做一番搏斗。
从搭建环境时 Gitlab 拉下来的代码跑不起来,到开发过程修改一段代码逻辑总是报错,再到产品上线后也时不时地有产品、测试、老板找过来反馈线上问题。无论是已经存在的、还是潜在的 Bug,这些都需要我们去发现和解决。不是有调侃的话么?我们程序员“不是在解决 Bug 的路上,就是在写 Bug 的路上”。
这话虽然只是一句调侃,但是这也侧面印证了两点:一方面是,我们会遇到很多 Bug,也会花很多时间去解决 Bug;另一方面是,我们直接裸写的代码可能存在较多的潜藏 Bug,我们得花精力把这些潜藏的 Bug 给找出来。那面对这些 Bug,有没有什么通用的解决思路呢?
这正是今天我要和你介绍的,我把它概括为“1+2+3”,也就是一个模型,两个原则,三条思路。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了解决BUG的思路,提出了一个模型、两个原则和三条思路。作者首先强调了发现问题、找到原因、修复Bug的三步模型,并指出这一模型的划分有助于针对不同步骤给出不同的解题思路。在发现问题和找到原因这两步中,作者提出了两个原则:不带上线原则和本地复现原则。不带上线原则强调了在本地开发时尽早发现问题,以及通过合作建立完善的上线流程和选择合适的工具来减少风险。本地复现原则则强调了快速发现线上Bug,并提出了监控系统和用户反馈系统作为工具。文章还介绍了理想的上线流程和配套工具,并强调了广义调试的重要性。此外,文章还提供了三种思路供读者参考:一推理、二分法、三问人。这些思路涵盖了从红屏信息、检查逻辑到执行代码的具体操作,以及从整体到局部的二分法思路和借鉴他人经验的三问人思路。总的来说,本文系统地介绍了BUG解决思路,旨在帮助读者更快速、更有效地发现和解决问题。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《React Native 新架构实战课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(13)

  • 最新
  • 精选
  • yuxizhe
    老师,你好,进入一个RN页面,该页面的useEffect偶现没有执行,把useEffect中的逻辑延迟300ms,就解决了,请问有没有遇到过这种问题?

    作者回复: 嗯,你这个问题问得非常好,然后也有很多人遇到了类似的问题,它是一个代码执行的时序问题。 这个问题的本质是你执行的这个逻辑,它前提条件在你执行的时候没有准备好,在你延迟300秒后就准备好了,这时候你才能执行成功。

    2022-04-18
    4
  • Geek_e4a05b
    老师,文章中提到“在本地开发时,需要针对开发的新增的模块写一个新的单元测试。”这个是不是只有业务模块单一或者复用性强才做这样的单元测试?RN的业务模块迭代比较快复用性不强的,或者功能耦合比较紧密的是不是不适用单元测试了?

    作者回复: 是的。做啥事都要考虑性价比。

    2022-04-18
  • 五十米深蓝,
    老师能具体讲讲 Flipper 的使用方法吗? 完全无法上手啊
    2023-07-25归属地:四川
    1
    1
  • Treasure
    您日常开发中有借助这个库[why-did-you-render](https://github.com/welldone-software/why-did-you-render)吗?
    2022-06-20
    1
    1
  • 侯同学
    蒋老师好 项目中使用 axios 怎么配置可以支持 Charles 抓包 配置了 proxy : { host, port } 现在原生项目请求可以抓包 React Native 请求不能抓包
    2023-10-12归属地:北京
  • Geek4329
    老师,为什么不推荐React Native Debugger呢?
    2023-09-22归属地:北京
  • 雷声大
    你好,我初学rn,调试的时候手机开启live reloading 以后经常红屏报错堆栈溢出是什么原因啊,我启动开发者工具的时候增加了堆栈大小不管用,我用的rn是比较老的0. 51版本 maximum call stack size exceeded.
    2023-06-07归属地:广东
  • house
    请问这种混合工程怎么调试,比如调试安卓的java代码。尝试直接用android studio启动失败
    2022-12-16归属地:广东
  • Geek_9a4011
    代码跑不起来啊,苦恼
    2022-10-07归属地:北京
  • 下一刻。
    React Native Debugger是支持抓包请求,右键需要开启 Enable Network Inspect
    2022-06-13
收起评论
显示
设置
留言
13
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部