最近我遇到了一位以前公司的同事。他提到了数年前我在那个公司曾经开发过的项目。他说这个项目现在已经变成了“职业shashou”。基本上,任何接触过这个“职业sahshou”项目的人最终都会离开这个公司。如果公司想让名下的程序员人数>0,唯一的办法就是花数月时间完全重构这个系统。
对于这事我有两点要说。首先,在我离开这个公司前,这个系统的单元测试覆盖率已经达到了85%,所以,不要责备我。第二,这么大规模的重构?肯定会出问题。
每一个系统里都至少有一个让所有人害怕的组件。它承载了太多的任务,它拥有太多状态,太多的其它组件调用它。当时间到了偿还技术债务的时候,人人都会把目光投向这个组件。然而,如果你对这个组件只有一个不全面的理解,你放下所有工作来完全重构它,那你成功的几率会很小。这个组件,就就它表现出来的令人可怕的程度和复杂相比,它的实际情况会比你想象更复杂,更可怕。
你认为这个组件是如何发展成这样一个不幸的状态的?是因为公司雇用了一个笨蛋,让他肆无忌惮的往系统里增加复杂度?或是因为这个组件最初设计的太抽象,由于多年来需求的变更,它的责任范围不断的扩大?(出于个人的自尊,我宁愿相信这个“职业sahshou”属于后者)。十有八九,这个组件变成如今这个可怕的状态,都有由“聪明人”的一些“好意”造成的。如果你决定做一次大的重构,你实际是欠下了另一笔技术债务留给后人。
为了能真正的彻底偿还这笔债务,你需要去分解这个系统的复杂度。你需要花时间寻找所有调用这个组件的客户端。你需要花时间跟你的同事交流,了解这个这个组件的历史和它是如何被使用的。你需要简化这个组件的周边环境,看看它是如何运作的。每周,你都需要花更多的时间来更清楚的了解这个组件的业务。只要有足够长的时间跨度,你最终能理清所有复杂的问题。
从实际方法上说,这个问题应该怎么办?与其现在花3个整月的时间做一次完全的重构,不如先用一个季度的时间做清理工作。最后还是要重写,但有了3个月的计划准备,你有了时间去分析和设计。你有了时间来理清业务。
相关推荐
电商业务逻辑与研究框架专题一:拼多多:电商重构者.pdf
性能提升: 为了提升性能重构代码 业务发展: 业务发展,需要对现有项目进行拆分或者合并 维护困难: 代码冗余,难以读懂,性能低下,陷阱很多 框架设计瓶颈: 起初的设计方案和框架遇到瓶颈
供应链企业组织结构与业务流程重构供应链企业组织结构与业务流程重构
20210623-浙商证券-商贸零售行业电商业务逻辑与研究框架专题一:拼多多,电商重构者.pdf
重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt
重构重构重构重构重构重构重构重构重构重构
r重构r重构r重构r重构r重构r重构r重构r重构r重构
摘要:介绍了Xilinx FPGA...所谓动态重构是指对于时序变化的数字逻辑系统,其时序逻辑的发生,不是通过调用芯片内不同区域不同逻辑资源的组合来实现,而是通过对具有专门缓存逻辑资源的FPGA,进行局部和全局芯片逻辑的
社交电商专题报告-新流量模式的逻辑重构(28页),资源名称:社交电商专题报告-新流量模式的逻辑重构(28页)社交电商专题-新流量模式的逻辑重构.zip...
20210128-国信证券-拉卡拉-300773-深度报告:“支付+”战略重构商业逻辑.pdf
电商业务逻辑与研究框架专题一:拼多多:电商重构者(2021)(27页).pdf
商贸零售行业电商业务逻辑与研究框架专题一:拼多多,电商重构者(27页).pdf
论文研究-EDI与航运业务流程的重构.pdf, 本文结合 EDI技术在航运业中的应用 ,从效率、准确性和灵活性三个方面对推广应用 EDI后所引起的航运业务流程的重构进行了系统的...
代理黄金新核心重构逻辑的文档
大数据-算法-可重构的动态逻辑计.pdf
信服云盾重构入云业务安全边界.docx
消费者视角重构经营逻辑.pdf
《剖析业务架构与业务系统重构实践》
为使空间故障树理论中系统结构反分析的分类推理法具有严格的数学定义,以适应广泛的系统结构反分析问题,引入因素空间理论的因素逻辑对分类推理法进行重构。重构的目的在于规范原方法定义和步骤为严格的数学形式,...
可选消费2022年度投资策略:营销为王时代:从营销理论更迭看框架思维重构和标的筛选逻辑.pdf