一个拼错的方法名,和没人敢改的原因
翻代码时看到一个公开方法:
java
public static String
decryptPassowrd(String pwd) { ... }Passowrd。o 和 w 反了。
它旁边那个加密方法拼的是对的:
java
public static String
encryptPassword(String pwd) { ... }一对方法,一个对一个错,就这么并排放着,跑了很多年。
为什么没人改?
因为它是 public static,被引用的地方分散在各个模块。改一个方法名,IDE 能自动重构 —— 但如果有反射调用、有配置文件里写着方法名、有另一个仓库依赖了这个 jar,重构就漏了。
而这个方法是处理密码的。改错了、漏了一处,表现是某个入口登录不了,可能上线好几天才被发现。
收益是「名字对了」,风险是「某个登录入口挂了」。 这笔账没人愿意算。
我从这个拼写错误上学到的不是「要仔细」,是另一件事:
公开 API 的名字,在第一次提交之后就基本定死了。
内部方法随便改,但一旦它变成 public、被别的模块调用、写进了文档,改名的成本就从「改一行」变成了「协调所有调用方」。
所以真正的时机只有一个:写下它的那一刻。
那一刻多花十秒钟读一遍,比事后省下十小时。
