热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【Debug】既然天天都要Debug,何不从Debug技能着手呢?第一天

相信Debug是开发者每天必经的过程,能否顺利Debug决定了开发者一整天的心情,即使如此却较少看到开发者着墨在Debug技巧上,因此接下

在这里插入图片描述
相信Debug 是开发者每天必经的过程,能否顺利Debug 决定了开发者一整天的心情,即使如此却较少看到开发者着墨在Debug 技巧上,因此接下来的30 天中,我将会介绍各种前端Debug 技巧,还有我常用的小技巧,解救那些时常陷于Debug 之苦却难以脱身的网页开发者们。

缘起

一切的开始,就在第一次面试实习机会时,主考官问我:「你都怎么Debug?」我一时竟然只能想出一个答案:「开DevTools 看console.log。」那时候我的Debug原则就是「如果一个console.log 找不出问题,就放入更多的console.log!」虽然有时候会觉得自己很傻,不过大多时候还是能找出问题,便持续使用这个套路一路向前。

被问倒之后我开始反省自己的Debug 方式,明明每天都在使用DevTools,却总是只用到console.log,赶紧上网搜寻别人都是怎么解决问题的,看过一篇又一篇的文章后,惊觉自己对DevTools 的理解只是冰山一角,有太多好用的功能我竟然浑然不知,从此开启了我对DevTools 的摸索之路。

系列内容

这系列文章的内容主要围绕在前端相关的Debug 技巧,只要你有网页开发经验,尤其:

每天都会开启浏览器的Devtools

常常需要刻UI 以及撰写许多HTML、CSS

以Javascript 维生
需要进行前端性能、SEO 优化

都非常推荐阅读,这项目的内容将会以Chrome DevTools 为主,包含各个功能面板以及实用技巧及带入实际的Debug 情境协助理解,大部分的情境都是来自于笔者自己在开发过程中遇到的问题,或是曾经看过觉得十分有趣的例子,建议读者可在阅读文章时候搭配Demo 实际操作,帮助记忆及理解。

此外本系列大部分的章节是独立的,阅读顺序并不会造成太大的影响,除了Chrome DevTools 之外,还会提到关于Web Vitals、SEO 等网页指标的Debug 工具、与其他浏览器DevTools 的比较以及效能优化的议题,尽可能的涵盖各种前端Debug 情境。

在这里插入图片描述

以上为Core Web Vitals,是Google 在2020 年提出的核心网页体验指标

讲讲DevTools 之外的Debug 方式

Debug 时除了使用DevTools 之外,还有许多解决问题的方式,以下列出笔者自身的一些经验。

上网搜寻

许多问题可以靠Google 快速找到答案,当然也会有碰壁的时候,笔者刚在编程之路起步时,常常无法解决问题,然而经过一段时间后明显发觉Google 的能力提升了,能从更多的面向、资源去寻找答案,例如比起从Stack Overflow找到直接的答案,主动阅读MDN 文件、官方说明的FAQ 和Caveats、GitHub Issues 甚至是规范等时常会包含许多有用的信息。

询问周遭

向有经验的人、社群提问也是非常有效的方式,但前提是已经做过功课、走过研究的步骤,千万不要却步于提问,只要做好充足的准备,大部分的人都很乐于协助解决问题。另外提出明确的问题和足够的信息才能让大家对症下药,例如碰到难解的Bug 时,若其他人能够重现相同的错误,几乎100% 能够解决问题。

不要钻牛角尖

若发现无论怎么搜寻都难以找到解法,甚至都只有无关的信息,非常有可能是搜寻方向错了,例如实际出错的部分不是正在搜寻的套件,可能只是单纯程式码拼错、手误,才会出现特别的错误信息。笔者就曾经因为不小心按到Tab,让编辑器自动加入一些语法,程式开始奇怪的错误,找了一整天才发现问题所在。

放松身心

此外笔者认为放松也是Debug 重要的一环,当已经卡在某个Bug 几个小时,试试放松一下心情,离开键盘散步、买杯饮料,笔者就有不少次在洗澡的时候突然想到问题的解法呢!

问题与讨论

最后,对内容中提到的Debug 情境有不同甚至更好的解决方式、思维,都非常欢迎提出讨论,借此来交流一下Debug 流程,笔者认为这是非常有价值的经验分享。而对内容有任何疑问,或有发现任何错误,也请不吝提出,谢谢。


推荐阅读
  • 如何压缩网站页面以减少页面加载时间
    本文介绍了影响网站打开时间的两个因素,即网页加载速度和网站页面大小。重点讲解了如何通过压缩网站页面来减少页面加载时间。具体包括图片压缩、Javascript压缩、CSS压缩和HTML压缩等方法,并推荐了相应的压缩工具。此外,还提到了一款Google Chrome插件——网页加载速度分析工具Speed Tracer。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • Google在I/O开发者大会详细介绍Android N系统的更新和安全性提升
    Google在2016年的I/O开发者大会上详细介绍了Android N系统的更新和安全性提升。Android N系统在安全方面支持无缝升级更新和修补漏洞,引入了基于文件的数据加密系统和移动版本的Chrome浏览器可以识别恶意网站等新的安全机制。在性能方面,Android N内置了先进的图形处理系统Vulkan,加入了JIT编译器以提高安装效率和减少应用程序的占用空间。此外,Android N还具有自动关闭长时间未使用的后台应用程序来释放系统资源的机制。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • 本文由编程笔记小编整理,主要介绍了使用Junit和黄瓜进行自动化测试中步骤缺失的问题。文章首先介绍了使用cucumber和Junit创建Runner类的代码,然后详细说明了黄瓜功能中的步骤和Steps类的实现。本文对于需要使用Junit和黄瓜进行自动化测试的开发者具有一定的参考价值。摘要长度:187字。 ... [详细]
  • 本文介绍了响应式页面的概念和实现方式,包括针对不同终端制作特定页面和制作一个页面适应不同终端的显示。分析了两种实现方式的优缺点,提出了选择方案的建议。同时,对于响应式页面的需求和背景进行了讨论,解释了为什么需要响应式页面。 ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • 使用chrome编辑器实现网页截图功能的方法
    本文介绍了在chrome浏览器中使用编辑器实现网页截图功能的方法。通过在地址栏中输入特定命令,打开控制台并调用命令面板,用户可以方便地进行网页截图操作。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
  • 本文介绍了Windows Vista操作系统中的用户账户保护功能,该功能是为了增强系统的安全性而设计的。通过对Vista测试版的体验,可以看到系统在安全性方面的进步。该功能的引入,为用户的账户安全提供了更好的保障。 ... [详细]
  • 本文整理了常用的CSS属性及用法,包括背景属性、边框属性、尺寸属性、可伸缩框属性、字体属性和文本属性等,方便开发者查阅和使用。 ... [详细]
  • mui框架offcanvas侧滑超出部分隐藏无法滚动如何解决
    web前端|js教程off-canvas,部分,超出web前端-js教程mui框架中off-canvas侧滑的一个缺点就是无法出现滚动条,因为它主要用途是设置类似于qq界面的那种格 ... [详细]
author-avatar
BBCong
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有