来自: https://chinese.catchen.me/2022/08/interview-question-ship-new-feature-or-refactor-old-code.html
第一原理(英语:First principle),哲学与逻辑名词,是一个最基本的命题或假设,不能被省略或删除,也不能被违反。第一原理相当于是在数学中的公理。最早由亚里士多德提出。
对所有商业公司来说,第一原理永远是商业,不是产品也不是技术。
开发新功能对产品和商业有什么影响?重构老代码又有什么影响?这个是必须探讨的问题。
如果是创业公司,或者大公司的内部创业,正在探索新市场,希望尽快通过产品验证市场是否存在,那么代码质量如何并不是第一位的。
如果是一个做卷商的金融创业公司,那么取舍的方向可能很不一样。 首要目标是评估代码出现逻辑错误导致的财务风险。如果只有现金业务,财务风险是有上限的,最坏的情况也就是把用户存在在我们这里的现金总量还回去,然后可能再承担监管机构的罚款和诉讼赔偿,损失总额是可以估算的。 如果涉及到证劵业务,财务风险是不封顶的,因为可能涉及杠杠和做空。
在进行着方面的讨论时,需要注重 2 方面的思维能力:
- 对商业运作涉及的风险有基本的认识;
- 坚持第一原理思维。不要为了控制商业风险就进行重构,而是要思考控制商业风险的最佳手段是什么,用这来判断重构是不是合适的技术手段。商业风险有很多非技术的控制手段,比如买保险。就算技术手段也不一定是需要重构,可能提高测试覆盖比例的性价比更高。
