以瞎猜接口为耻,以认真查询为荣
以模糊执行为耻,以寻求确认为荣
以臆想业务为耻,以人类确认为荣
以创造接口为耻,以复用现有为荣
以跳过验证为耻,以主动测试为荣
以破坏架构为耻,以遵循规范为荣
以假装理解为耻,以诚实无知为荣
以盲目修改为耻,以谨慎重构为荣
今天在QQ群里刷到这段话,看完第一句整个人就凉了。
不是因为空调开太低,是因为这八句话每一句都像在报我身份证号。
(´;ω;`) 第一条:以瞎猜接口为耻,以认真查询为荣
我:“这个API应该这么调吧……参数大概传个字符串就行?”
十分钟后:
Error 400: Bad Request
Error 404: Not Found
Error 500: Internal Server Error
最后发现文档里写得清清楚楚,参数要传JSON对象,而且路径是 /api/v2/ 不是 /api/v1/。
[!CAUTION]
瞎猜接口的代价:浪费两小时 + 怀疑人生 + 在群里问"这API是不是坏了"然后被大佬截图文档打脸。
(´・ω・`) 第二条:以模糊执行为耻,以寻求确认为荣
产品经理:“这个按钮点一下要有个效果。”
我:“好嘞!”(默默写了个alert弹窗)
产品经理:“我要的是渐变动画+音效+粒子特效!”
我:“……你刚才没说啊?”
产品经理:“我以为你懂。”
[!WARNING]
需求没确认清楚就动手,等于在雷区跳芭蕾。炸是迟早的事。
(ノ◕ヮ◕)ノ 第三条:以臆想业务为耻,以人类确认为荣
我脑补的用户使用流程:
打开APP → 注册登录 → 浏览商品 → 下单支付 → 五星好评
实际用户的使用流程:
打开APP → 忘记密码 → 找回密码 → 验证码收不到 → 卸载APP → 一星差评
[!IMPORTANT]
别在脑子里演小剧场了,去问问真实用户怎么用的。你的脑补和用户的实际操作,中间差着一个银河系。
(`・ω・´) 第四条:以创造接口为耻,以复用现有为荣
我:“这个需求现有的组件满足不了,我新写一个吧!”
三个月后:
/src/components/
Button.vue
Button2.vue
ButtonNew.vue
ButtonFinal.vue
ButtonFinalFinal.vue
ButtonFinalFinalActuallyThisOne.vue
[!TIP]
造轮子之前先搜搜仓库里有没有。你写的第N个Button,可能和第1个Button功能一模一样,只是颜色不同。
(。・ω・。) 第五条:以跳过验证为耻,以主动测试为荣
我:“这段代码看起来没问题,能跑,直接提交吧。”
CI:
Test failed: 3 errors, 7 warnings
我:“……我本地明明能跑啊?”
[!NOTE]
“我本地能跑"是程序员最大的谎言,仅次于"这个需求很简单”。
(´・ω・`) 第六条:以破坏架构为耻,以遵循规范为荣
我:“这个需求急,我先临时加一行,后面再重构。”
一年后:
// TODO: 临时方案,记得重构
// 创建于 2024-03-15
// 今天 2026-07-22
// 重构?什么重构?
[!CAUTION]
临时方案是永恒的,重构是永远不会发生的。你今天破坏的架构,明年会变成你同事的噩梦,后年变成你自己的噩梦。
(´;ω;`) 第七条:以假装理解为耻,以诚实无知为荣
开会时:
大佬:“……所以我们需要用CQRS模式配合事件溯源,实现最终一致性。”
我:“嗯嗯,明白了。”(其实CQRS是啥都不知道)
回去后疯狂Google,发现原来大佬说的和我理解的差了十万八千里。
[!IMPORTANT]
不懂装懂是技术成长最大的敌人。说"我不懂"不丢人,说"我明白了"然后写出屎山才丢人。
(`・ω・´)b 第八条:以盲目修改为耻,以谨慎重构为荣
我:“这个函数太长了,我拆一下。”
(一顿操作猛如虎)
TypeError: Cannot read property 'undefined' of undefined
ReferenceError: foo is not defined
RangeError: Maximum call stack size exceeded
Git:
git reset --hard HEAD
[!WARNING]
重构之前先写测试,测试过了再改,改完再测。盲目前进等于自杀式冲锋。
(。・ω・。)ノ 写在最后
这八句话,句句都是血泪教训。
我见过太多项目死于"瞎猜"、“臆想”、“假装理解”。也见过太多代码库变成屎山,是因为每个人都"临时加一行"、“先跑起来再说”。
这段话最狠的地方在于——
它不是在说教,它是在照镜子。
你每读一句,脑子里都会浮现一个具体的场景,一个具体的自己,一个具体的翻车现场。
以假装理解为耻,以诚实无知为荣。
这句话我打算打印出来贴在显示器旁边。
下次再遇到不懂的,先问自己:
“我是在认真查询,还是在瞎猜?我是在寻求确认,还是在模糊执行?”
如果答案是后者——
停手,去问,去查,去确认。
这比事后擦屁股快一万倍。
如果你也有被这八句话戳中的瞬间,欢迎在评论区分享你的翻车经历。
毕竟,程序员的成长,就是从一次次"凉了"中爬起来的。
(´・ω・`) 愿天下再无屎山,愿每个接口都有文档。