当程序规模扩大, 多个人协同工作时, 问题出现了:
分别解决什么问题?
linter: 静态代码审查员
它不执行程序, 只 ” 通过 ” 看代码来提前发现问题. 它会检查
-
语法层面的问题
-
潜在 bug
-
未使用变量
-
重复导入
-
不推荐的写法
-
风格规范问题
import os import sys def add(a,b): c = a + b return a+b print(add(1,2))
这里可能有几个问题:
- os 和 sys 没被使用
- c 赋值后没使用
- a,b 中间缺空格
formatter: 统一代码格式
团队开发中, 有很多分歧其实没有业务价值, 如:
- 逗号后面加不加空格
- 一行最多写多少字符
- 列表换不换行
- 括号怎么摆
- 引号统一单引号还是双引号
这些问题会消耗很多协作成本, 但对程序功能没有本质贡献
所以 formatter 的作用是:
- 自动调整空格, 缩进, 换行
- 统一代码布局
- 让所有人的代码长得更像同一个人写的
| 维度 | Linter | Formatter |
|---|---|---|
| 关注点 | 代码是否 ” 正确/合规 “ | 代码是否 ” 美观/一致 “ |
| 动作 | 警告 (Warning) | 重写 (Rewrite) |
| 判断逻辑 | 基于规则库 (如: 变量名是否过短) | 基于一套硬性排版准则 |
| 失败后果 | 发现潜在 bug | 导致代码排版不整齐 |