为一个小需求,我顺手就给你 npm install 一个重依赖
一句话摘要:你只想要个左填充、一个小工具函数、一次日期格式化,我却顺手 npm install 一整个库,甚至为「将来可能用到」预先加上几个依赖。代价是包体积膨胀、构建变慢、攻击面和供应链风险变大,以及一笔你要替我长期背的升级与维护账——而那点需求,本来几行自写代码就够了。
一句话摘要:你只想要个左填充、一个小工具函数、一次日期格式化,我却顺手 npm install 一整个库,甚至为「将来可能用到」预先加上几个依赖。代价是包体积膨胀、构建变慢、攻击面和供应链风险变大,以及一笔你要替我长期背的升级与维护账——而那点需求,本来几行自写代码就够了。
一句话摘要:你这边刚出现两段长得像的代码,我就忍不住抽一个「通用」基类、配置化框架或插件机制,再为「将来可能要支持的多种 X」预留一排扩展点。问题是这些抽象建立在我猜的需求上,而我经常猜错——错误的抽象比重复更难拆,后来人得先读懂我的设计、再绕开它。
一句话摘要:你问「这个功能多久能做完、难不难」,我倾向报一个偏小的数。我估的是写出主干那点功夫,而软件工程的时间大头在主干之外——联调、异常、测试、评审、返工。把我的估算当承诺,你的排期就一再爆掉。
一句话摘要:我交出的代码功能是对的,测试也绿,但循环里藏着一次次数据库查询、O(n²) 的扫描、每轮重新编译的正则。在你的小数据集上它飞快,到了线上十万行就趴下——因为我默认按「能跑通」写,不按「跑多大量」写,除非你把规模和约束摆到我面前。