1. <em id="2qvri"><tr id="2qvri"></tr></em>
      1. 首页»软件工程»你需要的不是重构,而是理清业务逻辑

        你需要的不是重构,而是理清业务逻辑

        来源:aqee 发布时间:2013-04-12 阅读次数:

          最近我遇到了一位以前公司的同事。他提到了数年前?#20197;?#37027;个公司曾经开发过的项目。他说这个项目现在已经变成了“职业杀手”。基本上,任何接触过这个“职业杀手”项目的人最终都会离开这个公司。如果公司想让名下的程序员人数>0,唯一的办法就是花数月时间完全重构这个系?#22330;?/p>

          对于这事我有两点要说。首先,在我离开这个公司前,这个系统的单元测试覆盖率已经达到了85%,所以,不要责备我。第二,这?#21019;?#35268;模的重构?肯定会出问题。

          每一个系统里都至少有一个成为人民公敌、让所有人害怕的组件。它承载了太多的任务,它拥有太多状态,太多的其它组件调用它。当时间到了偿还技术债务的时候,人人都会把目光投向这个组件。然而,如果你对这个组件只有一个不全面的理解,你放下所有工作来完全重构它,那你成功的几率会很小。这个组件,就就它表现出来的令人恐怖的程度和复杂相比,它的实?#26159;?#20917;会比你想象更复杂,更恐怖。

          你认为这个组件是如何发展成这样一个不?#19994;?#29366;态的?是因为公司雇用了一个笨蛋,让他肆无忌惮的往系统里增加复杂度?或是因为这个组件最初设计的太抽象,由于多年来需求的变更,它的责任?#27573;?#19981;断的扩大?(出于个人的自尊,我宁愿相信这个“职业杀手”属于后者)。十有?#21496;牛?#36825;个组件变成如今这个恐怖的状态,都有由“聪明人”的一些“好意”造成的。如果你决定做一次大的重构,你实际是欠下了另一笔技术债务留给后人。

          为了能真正的彻底偿还这?#25910;?#21153;,你需要去分解这个系统的复杂度。你需要花时间寻找所有调用这个组件的客户端。你需要花时间跟你的同事交流,了解这个这个组件的历史和它是如何被使用的。你需要简化这个组件的周边环境,看看它是如何运作的。每周,你都需要花更多的时间来更清楚的了解这个组件的业务。只要有足够长的时间跨度,你最终能理清所有复杂的问题。

          从实际方法上说,这个问题应该怎么办?与其现在花3个整月的时间做一次完全的重构,不如先用一个季度的时间做清理工作。最后还是要重写,但有了3个月的计划准备,你有了时间去分析和设计。你有了时间来理清业务。

          英文原?#27169;?a href="http://www.codypowell.com/taods/2013/03/its-not-refactoring-its-untangling.html">It's Not Refactoring, It's Untangling

        QQ群:WEB开发者官方群(515171538),验证消息:10000
        微信群:?#26377;?#32534;微信 849023636 邀请您加入,验证消息:10000
        提示:更多精彩内容关注微信公众号:全栈开发者中?#27169;╢sder-com)
        网友评论(共0条评论) 正在载入评论......
        理智评论文明上网,拒绝恶意谩骂 发表评论 / 共0条评论
        登录会员中心
        江苏快3投注技巧 广东26选5走势图走图 彩票开奖结果7星彩 宁夏11选5电子走势图官网 斯诺克大师赛 玩北京pk10输惨的事实 北京pk10有多少人赢钱呢 500彩票网买双色球吗 死公式一肖中特 福建11选5稳赚的方法 福彩3d开机号和试机号今天的金马 组三组六全包必中技巧 新疆十一选五前三走势图带连线 内蒙古时时彩开彩结果查询 云南十一选五走势图任 中福在线开乐彩现在