我常常在想,一个人具备怎样的素质和能力,才称得上高级工程师?估计有不少人会说,“基础过硬、熟练掌握一门编程语言、至少看过一个优秀开源项目的源代码、有过高并发工作经验、沟通能力强”。 上面这些都很对,这些也都是面试中经常考察的点。但从真实工作场景来看,我觉得还缺少一环:业务开发能力。可能你会说,业务开发不就是 CRUD 吗,有啥难的?的确,我们大部分人的日常工作就是做业务,不可能没事就去看源码、学数据结构与算法,这不现实。我们的能力,都是在业务开发中打磨出来的。 举个例子:一个产品,每天会有上千份订单状态或流程出问题,要修复这些问题,就得花大量时间核对数据、确认订单状态,甚至没时间开发新需求。最后,项目负责人开启明细日志彻查问题,才发现是自调用方法导致事务没生效造成的坑。