|
上周帮一个朋友看他写的免费码检 Python 脚本,打开文件第一眼就发现第 12 行有个拼写错误——`prnit` 而不是线代 `print`。他跑了一下午都在报 NameError,免费码检愣是线代没看出来。这种事我遇到过太多次了,免费码检眼睛盯着代码超过二十分钟,线代大脑就会自动补全那些错误。免费码检 在线代码检查工具就是线代干这个的。你不需要装任何东西,免费码检把代码粘贴到网页里,线代几秒钟后它告诉你哪一行有问题。免费码检我常用的线代一个是 PEP8 Online,专门查 Python 的免费码检代码风格。另一个是线代 Regex101,写正则表达式的免费码检时候简直救命——它会实时高亮匹配结果,还会逐段解释你的正则到底在干什么。 它们到底能查出什么 语法错误是最基础的。比如漏了冒号、括号不匹配、缩进混用了 Tab 和空格。这类问题人眼扫一遍不一定能抓住,但工具一跑就现原形。 代码风格问题更隐蔽。变量名用了驼峰但项目规范是下划线、函数之间空行不够、行超过 79 个字符。这些不影响运行,但团队协作时看着难受。我见过一个项目里同一个人写了三种不同的命名风格,后来用 ESLint 一跑,两百多个警告。 逻辑漏洞就比较难了。有些工具能检测出未使用的变量、永远为真的条件判断、函数声明了但从未被调用。JSHint 对 JavaScript 的这类问题查得挺准。有次我写了个 if (x = 5),它立刻标红——赋值写成了判断,这种 bug 运行时不一定报错,但逻辑全歪了。 几个我实际用过的 CodeBeautify 支持的语言多,HTML、CSS、JSON、XML 都能查。界面不算好看,但胜在免费、不用注册。我经常用它来格式化压缩过的 JSON,可读性瞬间提升。 JSFiddle 和 CodePen 虽然主打在线编辑,但内置的语法检查够用。写前端 demo 的时候边写边看提示,比在本地配一套 lint 环境快得多。 SonarCloud 偏企业级,免费版对开源项目开放。它能查出代码重复率、复杂度、潜在的空指针引用。我拿它扫过一个两千行的 Java 工具类,报告里列了十七个“代码异味”,其中三个确实是隐患。 别指望它们解决所有问题 在线工具查不出业务逻辑错误。你的算法写反了、边界条件漏了、数据库查询效率低——这些它一概不知。它只能告诉你“代码写得规不规范”,不能告诉你“代码写得对不对”。 还有隐私问题。公司内部代码别往在线工具里贴,尤其是涉及密钥、接口地址、用户数据的。我之前见过有人把带 AWS Access Key 的配置文件粘到某工具里,虽然网站声称不存储,但谁知道呢。本地装个 VS Code 插件更稳妥。 免费版通常有文件大小限制。超过几百 KB 的代码文件,要么传不上去,要么分析到一半卡住。大项目还是老老实实配本地 lint。 怎么用才顺手 我的习惯是:写完一个函数就粘进去查一遍,别等整个文件写完。改完立刻再查,形成循环。五分钟的事,比后面花半小时 debug 划算得多。 另外别被警告数量吓到。一个中型项目跑出几百条 style 警告很正常,挑严重的先修——比如未定义变量、语法错误——风格问题可以慢慢来。工具是辅助,不是考官。 最后说一句,在线检查工具最大的价值是帮你养成肌肉记忆。查得多了,下次写代码时手会自动避开那些常见坑。到那时候,工具就用得少了。 |