老板说程序码写得好就不会有 bug,你 bug 太多要扣你绩效。
为什麽前辈写的就没有 bug?我哪里写不好?要怎样才叫写得好呢?
Code Quality Tool 跟跟前面介绍过的 debug 有些关联。
程序品质好,bug 自然少。
PHP 是弱型别的脚本语言,因为没有编译阶段,错误在执行时才产生。
但其实有些错误是可以在执行前就发现的,例如变数不存在(打错字)、引用的路径不存在、函式调用错误等等。
使用这些工具目的是透过程序码的建议规范、预检查,增进程序码的品质,进而减少执行阶段的错误。
[风格] 遵守建议规范
前面的文章提过 PSR,其中 PSR 1, 12 是写作风格的规范。
团队合作就像是合作编剧一样,需要的是稳定的风格,确保团队成员都能快速理解与接手修改,所以会希望大家能写出一致的程序。
「我的程序码一眼就看出来是我写的,都不用 git blame 呢!」像这样的个人特色在团队里并不会受到欢迎唷。
[静态分析] 检查 source code
检查 source code 会检查命名重复、宣告後未使用等等问题。
在 PHP 7 之後的版本也加入了加强型别宣告的功能,所以在较严格的检查模式里,我们也可以透过检查参数型别、回传型别来减少错误。
其实我原本用 VSCode 有安装,有的要做一些设定,有的看起来好像功能重复,但我也不知道差别是什麽。
因为不想花太多时间在研究工具,後来就用 PHPStorm。
我的 VSCode 有装的:
- phpstan: 静态预检查的工具
- 可以检查出:call to method unknown、params type invalid
- 也可以提高检查等级,例如要求要有函式必须宣告回传型别,如果没有就会抛出:type has no return typehint specified
- php_sniffer PSR & auto fix
- phpcs (PHP Code Sniffer): 检查程序码标准。
- phpcbf (PHP Code Beautifier and Fixer): 修正不符合标准的程序码。
今年的 LaravelCof 刚好有一场这个主题的分享,想看更专业的分享一样是建议付费买票罗 ^_^
https://laravelconf.tw/agendas?modal=agenda.WzJd
>>: Day17 开发套件 - 实作BasicMessageChannel
前两天介绍两个以VPN以点对点加密方式连回我们所架设的网路。但这里有个问题是我们得具有硬体与实体IP...
每次写笔记都在想要怎麽写得让大家(包含未来的我)看得懂,所以每次都要写很久,但好像自己的内容有点太无...
如果要控制元件出现或是消失,依照之前讨论的章节,会使用到v-if、v-show的指令来完成,但当你的...
882. Reachable Nodes In Subdivided Graph https://l...
Thread tags: IT铁人 虽然前面说CPU在执行程序时,都用process来叙述,不过其实...