Skip to content

一个拼错的方法名,和没人敢改的原因

翻代码时看到一个公开方法:

java
public static String
        decryptPassowrd(String pwd) { ... }

Passowrd。o 和 w 反了。

它旁边那个加密方法拼的是对的:

java
public static String
        encryptPassword(String pwd) { ... }

一对方法,一个对一个错,就这么并排放着,跑了很多年。

为什么没人改?

因为它是 public static,被引用的地方分散在各个模块。改一个方法名,IDE 能自动重构 —— 但如果有反射调用、有配置文件里写着方法名、有另一个仓库依赖了这个 jar,重构就漏了。

而这个方法是处理密码的。改错了、漏了一处,表现是某个入口登录不了,可能上线好几天才被发现。

收益是「名字对了」,风险是「某个登录入口挂了」。 这笔账没人愿意算。

我从这个拼写错误上学到的不是「要仔细」,是另一件事:

公开 API 的名字,在第一次提交之后就基本定死了。

内部方法随便改,但一旦它变成 public、被别的模块调用、写进了文档,改名的成本就从「改一行」变成了「协调所有调用方」。

所以真正的时机只有一个:写下它的那一刻。

那一刻多花十秒钟读一遍,比事后省下十小时。

签名-C

大粽子