11. Bug x Debug x Debug Tool

Bug

在 debug 之前我们要知道什麽是 bug。

请勾选属於 bug 的东西:

  • [ ] 正常网站换页不应该换网址吧?
  • [ ] 这边要请你帮我想一下 => 跟我想得不太一样
  • [ ] 没有按照设计稿做
  • [ ] 这个功能很常见怎麽没有?

以上都不叫做 bug,你才有 bug!

Hint:

  • 程序码的错误 => Bug
  • 操作失败(但程序码是正确的)=> Error

欢迎交流一下你被写过的 bug。

Debug 的方法

不是所有人都能在脑中写出完美的程序码,多数的开发者也没办法一眼看出是哪里写错、写错什麽。

我们需要一些工具帮助我们检查有可能出错的地方。

1.印出来看看

「印出来看看」应该是所有程序语言共通的 debug 方法。

PHP 印出来的方法有很多种:

  • echo
  • print_r()
  • dump()
  • dd()

在除错时是要使用 ddd() 这种方便阅读、能印出资讯的辅助函式。

https://laraveldaily.com/echoing-dd-vs-var_dump-vs-print_r/

印出来看看 debug 法其实也足够应付大部分的除错需求。

2.Debug Tool

ddd() 其实已经能够印出 query、log 等等,但使用 Debug Tool 这样的监控面板,我们就不需要主动下断点来除错。

Laravel Debugbar

老牌的 Debug Tool

Telescope

Laravel 官方推荐的扩展工具,db query 似乎有比 Debugbar 更多细节。

Ray
要付费,没研究。

PHPStorm + Xdebug
太难装,没研究。

bonus

写完这篇文後看到这个古早 debug 法,随手记下来。

古早 debug 法

在想除错的页面开启错误提示

ini_set('display_errors', 1);
error_reporting(E_ALL);

<<:  [ Day 11 ] React 的生命周期 - Mounting

>>:  Day 11 - OOP 初探 (1) - Closures 与继承链

【课程推荐】2021/1/23~1/24 软件需求与系统分析实务班

课程对象 软件专案开发商之业务人员与Pre-Sales、软件系统专案经理、软件系统系统分析师。 详细...

Vuex 是什麽

Vuex 是 Vue 提供的一种资料状态管理的模式,它可以统一控管资料的状态,都是在小型的 SPA ...

Day28-移动侦测2

我们接续上章写完取绝对值步骤的程序码: import cv2 import numpy as np ...

CMoney工程师战斗营weekly4

今天想写一些不一样的内容,前三周的内的文章大都是课堂笔记的整理+复习。 今天想好好思考一下如何训练程...

Day25 vue.js之call api(功能展示)ep1

延续昨日今天来把功能测试完成吧!! 经过一番修整之後这就是我们目前的页面 因为我铁人赛day22的文...