架构师相关知识学习-201608.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1 InfoQ 架构师 2016 年 8 月 卷首语 : 重构的时机 重构并非难在怎么做,而是难在何时开始做。 对于一个高速发展的公司来说,停下来做重构从来就不是一个可接受 的选项,“边开飞机边换引擎”才是这种公司想要的。当代码还不是很混 乱的时候,重构的必要性不高,相比不小心重构出错让引擎熄火的风险来 说,得过且过可能反而是一个明智之选。于是各种技术债就这样慢慢积累 起来,直到业务因为各种技术债快跑不动的时候,架构师们才不得不用一 些激进的重构手段快速的解决历史顽疾。如果重构获得了成功,大多数架 构师在回顾过程的时候都会感慨:“要是早点重构就不会这么麻烦了”, 不过在下一次重构到来之前,永远没人知道“早点”究竟是何时,同样的 感慨会反复被提起。 就没有什么办法找到最合适的重构时机么?可能真没有。不过通过评 估重构收益可以早一点察觉到重构的必要性,从而至少能做到稍微“早点”。 重构的根本目的就是让业务能跑的更快,达到更高的开发效率。对于 2 卷首语 一般工程项目而言,基本不会出现无法实现的需求,只要有充足的时间, 需求总能被实现。在这里提到的“需求”包含业务中所有明确或潜在需要 的东西,并不局限于产品需求,各种性能、可用性、柔性指标也都是需求 的一种。很显然,在需求一定的情况下,开发效率越高所需要花费的时间 或人力就会越少,业务就能跑的更快。 并不是任何的重构都能达到预期的效果,因为重构本身需要付出成本, 重构之后的架构也不一定真的能提升开发效率,只有通过估算发现“重构 净收益”为正才是重构的好时机。 “重构净收益”由以下公式定义: 重构净收益 = 旧架构开发效率 - 新架构开发效率 - 重构成本 - 迁移成本 公式中每个项目的解释: • 旧架构开发效率:采用旧架构完成需求所需要的时间; • 新架构开发效率:采用新架构完成需求所需要的时间; • 重构成本:重构所需要的时间,这一般是一次性投入; • 迁移成本:为了解决新架构带来的额外问题所花费的时间,包 括新架构的Bug修复、业务测试回归成本、学习成本等。 重构净收益是一个长期收益,随着需求不断演进新旧架构开发效率带 来的差异会日渐明显,直到能够超过重构成本和迁移成本,如果估算发现 收益为正,那么意味着当前就是重构的好时机,应该着手准备了。 举个使用公式的例子。 假设有一个服务由于长期开发不注重代码复用,重复代码颇多,开发 一个新功能,比如增加一种新的通用参数,就不得不修改几乎所有接口的 代码,那么是否值得消除重复代码?按直觉来说,答案应该就是肯定的, 但实际上并非如此,这些情况基本可以用“重构净收益”公式来解释。 3 InfoQ 架构师 2016 年 8 月 如果这个服务基本不再维护,旧架构并不会持续的带来开发成本,假 如重构成本大于使用旧架构完成需求的时间,那么重构收益就一定为负, 重构不值得做; 如果重构会带来很大的迁移成本,比如会造成几十万行无人维护缺乏 测试覆盖的旧代码发生改动,无人能够保证改动正确性,那么就算重构本 身成本不高(假设能够利用一些脚本大批量抽取重复的代码),这种重构 也是值得商榷的; 如果重构之后的新架构过于超前,学习门槛很高,当前团队很难可靠 的掌握高效的开发方法,最终这些学习成本会被放在迁移成本之中,假如 过大也意味着收益为负,重构不值得做或者必须换一种更让团队容易接受 的方案。 限于篇幅,这里就不展开说明公式的更多用法,大家不妨拿自己工作 中的例子套用试试,看是否有帮助。需要特别注

文档评论(0)

kolr + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档