做者简介 新茗 蚂蚁金服·数据体验技术团队前端
以前也介绍过咱们团队的前端项目从零开始经历8个月迭代业务代码10万行(仅为产品长期规划需求的20%),至今仍然在不断迭代的过程。git
团队成员除了设计好的架构来管理这种复杂度极高的前端应用,还开始补充设计模式以及重构方面的知识,目的是为了让项目代码在不断迭代的过程当中优化项目代码,保持代码的新鲜度,鲁棒性,可维护性… 让后续加入的团队新人也能够快速加入咱们的产品开发中程序员
PS: 无论对于何种语言,重构都是软件开发过程当中不可或缺的一部分。若是已经了解重构的基础,能够直接跳往至文章后面的重构案例
部分。github
“若是尿布臭了,就换掉它”。设计模式
咱们回过头来看一下"什么是重构"架构
不改变软件可观察行为的前提下,改善其内部结构函数
以提升理解性和下降修改为本工具
摘自《重构 - 改善既有代码的设计》(下面简称《重构》)
复制代码
咱们须要明确的一点是: 重构不是一件应该特意拨出一段时间来作的事情。重构不是目的,可是重构能够帮助你把事情作好。学习
事不过三,三则重构开发工具
说了这么多废话,其实你们都明白没有与实践结合的理论都是空虚的。
可是 重构
和 设计模式
同样,也是须要一个"学习——领悟——突破"的过程。第一步的学习让你了解基本的重构手法,第二步的实践勾起你对重构手法的回忆以及重温应用,第三步的应用以及实践经验激发你的思考,领悟以及总结,以至于灵活运用。
但凡是人,老是在不断学习,不断温习,以达到具体场景具体应用,灵活自如。 重构是一个很大的话题,《重构》做者本人也是经历了N多的项目,以及多年的经验才总结出来的重构技巧。
《重构》一书做者总结的重构手法实在是太多了,只能经过图片来展现一下全部做者总结的重构列表。
具体的补充,你们能够看看《重构》一书。
做者推荐的一种作法:
随机挑选一个目标
先给本身选择一个目标(譬如“去掉一堆没必要要的子类”),而后朝着目标前进,每一步走得小而坚决没把握就停下来
当你没法证实本身所作的一切可以保证原有程序的逻辑和语义时,请你停下来思考:既有的重构是改善了仍是毫无成果须要撤销。保证每次重构后的测试都能正常跑通
做为开发者, 应当把重构做为开发的一部分,一边开发一边重构。在快速堆叠代码,实现基本需求功能的基础上,写好测试用例,保证功能不变,逐步重构。
这也是咱们团队要求每一个人都掌握重构这门必备技能的缘由。优秀的程序员应当尽可能避免低质量的代码。
程序结果:(请保证重构后结果不变~)
这里为了更好的展现重构的手法,使用TS,根据上面的讨论进行了部分重构,重构的方式实际上是根据业务将来的扩展方向而定,并无最优解,有兴趣的能够加入咱们,抛出你的看法~
基本技巧
重构实际上是一件须要长期投入,而且投入产出比很高的事情。对重构感兴趣的同窗能够关注专栏或者发送简历至'tao.qit####alibaba-inc.com'.replace('####', '@'),欢迎有志之士加入~