上周和一个做后端的哥们吃饭,他边扒拉米饭边叹气:‘代码越来越难改,加个字段要绕三层,但我提了三次重构方案,领导都说‘先保证上线’——现在连自己都不敢随便动那段逻辑了。’
别急着认命,先搞清领导到底在怕什么
很多程序员默认‘领导不懂技术’,其实更常见的是:领导怕重构影响排期、怕出线上问题、怕你花两周重写,结果上线发现漏了个边界case,半夜被电话叫醒。
举个真事:某电商后台订单模块用了5年,if-else 嵌套像毛线团。开发小李直接提了个‘全量重构+新老系统并行’方案,领导当场摇头。后来他换了个做法——只针对高频报错的‘优惠券核销’部分,用1天时间抽离出独立服务,接口保持完全兼容。上线后错误率降了70%,领导反而主动问他:‘这部分还能不能再拆?’
不推大方案,从‘能立刻见效’的小切口下手
与其说‘我要重构整个用户中心’,不如说:‘这个登录接口每次改需求都要动3个文件,我花半天把它封装成统一校验层,后续加短信/人脸/扫码登录都只要配配置,不用改代码。’
重点不是‘重构’这个词,而是让领导看到:投入少、风险低、效果可测。
用数据说话,比画饼管用十倍
别只说‘代码烂’,拿出具体数字:
- 最近3次紧急发布,有2次是因为修改A模块时意外影响了B模块的缓存逻辑;
- 新人接手XX功能平均需要3.5天才能改出第一个PR;
- 上个月线上5个P0级故障,4个根因指向同一段重复了7次的权限校验代码。
把这些写成一页纸的《当前痛点与最小改进方案》,附上你预估的工时(比如‘抽离公共校验逻辑:2人日’),比口头汇报强得多。
附:一个马上能抄的沟通话术
‘王经理,有个情况想跟您同步下:现在改订单状态要同时改数据库、ES、消息队列三处,上周小张改了个字段,漏了ES同步,导致搜索页价格没更新,客户投诉了。我梳理了下,把这三步抽成一个通用状态变更服务,大概2天就能做完,后续所有状态变更都走这个,避免再漏。您看这周能不能腾出半天,我给您跑一遍demo?’
——没提‘重构’俩字,但干的就是重构最核心的事。