`
shuofenglxy
  • 浏览: 190123 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

重构的时机

阅读更多

最近又开始读重构这本书了,这次换成了原版。
同时最近也开始当小兵,在project里完成一些功能。 面对着基于遗留系统的设计,重构又要祭出来了。
这里边回顾,边总结,边学习,边理解下重构的时机哈。
进入项目的时候需求PK什么的并没有参加,只是一无所知的直接去参加需求确认会了。
然后就进入项目了。根据PM的分配,接手了一些系统交互的功能设计和数据处理,另外由于需求的变化重构一期的功能设计。
        从数据库表格的重构开始,涉及了数据迁移,功能的变更,几乎是完整的重新实现了原有功能,这里可以看到设计的缺陷,一二期相差并不是很久远,却要完整的重构,对资源的浪费太那啥了。所以,重构并不仅仅是代码要重构,过度设计不好,但必须斟酌设计方案,留有必要的扩展和重用空间。设计要斟酌,设计方案完成后是一个重构时机哈(未必要重构)。
      完成了UC文档和设计文档之后,经过确认开始了编码工作。期间,大致构思了精确到函数的代码套路。但在设计实现的时候还是出现了一些重复的功能,重复的数据,实现功能之后,review一次代码。整理了一下代码实现,这里完成了第一次代码的重构。这样的话,代码质量更可读性都能提高不少。这个点很重要。
      和同事交互系统时,出现了一些公共暴露服务过于琐碎的情况,这个当时设计的时候没有考虑到,属于经验欠缺型,由于项目进度的关系,不能进行重构了。我也没有办法,小兵只能建议不能强制实施,如果我是PM,这个点上需要重构的,一则减少一些重复代码,二可以统一编程风格,有利于后来人接手项目能够更容易的完成一些改动。但这个点比较遗憾没有做。
      三的话就是测试中发现bug可能涉及到代码的小部分改动,这是进行局部函数和变量的重构。这里不鼓励大改动,这样会增加BUG出现的风险,给测试人员带来不必要的工作量增加。
     基本上在新项目上重构的时机就是这些吧,可能代码之外的重构时机不太完整,受限于经验,暂时能想这么些吧。

分享到:
评论

相关推荐

    27丨理论一:什么情况下要重构?到底重构什么?又该如何重构?1

    1. 重构的目的:为什么重构(why) 2. 重构的对象:重构什么(what) 3. 重构的时机:什么时候重构(when) 4. 重构的方法:如何重构(how)

    重构思路浅谈(最后一根稻草型时机)

    此重构准备是一个不断循环的过程。 识别:发现已有系统哪些设计背离了整体的架构设计或者扩展性不强; 论证:对识别出的问题进行重构设计,需要反复论证、预研; 归类:哪些重构点可以综合在一起考虑去设计,有利于...

    重构--改善既有代码的设计

    《重构--改善既有代码的设计》除了讨论各式各样的重构技术,作者还提供了一份详细名录(datalog),其中有超过70个一本证明效果的重构手法,以丰饶富帮助的重点,交到你实施的时机,实施时的逐步指令。

    重构:从方法论到实践

    本文来自csdn,本文通过简单的举例,着重概述了...重构是在不改变软件可观察行为的前提下改善其内部结构重构通常不是一次性的,它贯穿软件的整个生命周期,只要觉得不合理都是重构的时机。在接手一个遗留项目的时候,我

    单元测试术与道探索分享

    随着新系统建设周期进入尾声,很多系统已经转入维护周期。每次从公司三楼大屏前路过,看着上面所负责项目的技术...同时,基于项目中增加组件模式的时机,对主流程进行优化调整,把解决主流程单元测试技术债的优先级调高

    股票买卖最佳时机leetcode-algorithm-practice:算法实践

    错误数字范围:找出输入到系统中错误解释其任何数字的数字的可能最大和最小重构之间的差异。 自然数总和:找出可能的连续数字总和的数量,这些总和为给定的数字 N。 最空闲时间:计算给定日期中事件之间的最空闲时间...

    地中海旅游新方向:全球化时代的重构与合作营销

    个国家在可持续发展战略的背景下评估其旅游业的时机已经成熟,开始考虑重组其产业以提高效率和竞争力,并形成战略联盟进行合作营销努力在第三个千年的门槛上保持在全球旅游市场的竞争优势。 :copyright: 2000 约翰...

    基于SpringCloud的微服务治理架构落地实践

    另外,按照微服务不断演进的思路,我们首先对非核心业务和新业务进行了重构,不断积累微服务开发运维经验,待后续时机成熟,再对核心业务进行微服务重构治理。和大部分企业实施微服务流程一样,首先就是确定微服务...

    《中国城市数字经济指数蓝皮书》.pdf

    从历史看,每次科技革命和产业变革都将会创造重要机会窗口期,随着数字技术与产业经济深度融合,各行业数字化转型的时机已经到来,只有牢牢抓住历史机遇期,才能顺势而上,实现“弯道超车”,使我国赢得未来全球竞争...

    lrucacheleetcode-Leetcode-Solutions-CSharp:该存储库将包含C#中许多Leetcode问题的解决方案

    重构行程 - Leetcode 332(中) LRU 缓存 - Leetcode 146 (Medium) 最长回文子串 - Leetcode 5 (Medium) 3Sum - Leetcode 15 (中) Group Anagrams - Leetcode 40 (Medium) 用交易费买卖股票的最佳时机 - Leetcode ...

    论创造企业成本优势 (2001年)

    成本动因控制的内容包括利用规模经济对成本的影响、保持学习的专有、改善价值活动之间的联系、选择恰当的企业政策和时机、谨慎抉择成本与质量之间的关系、提高瓶颈资源的利用效率等。重构价值链能够提供从根本上改变...

    领域驱动设计第一分卷

    7.9 停下来重构:cargo聚合的另一种设计 129 7.10 运输模型中的模块 131 7.11 引入新特性:配额检查 133 7.11.1 连接两个系统 134 7.11.2 改进模型:划分业务 135 7.11.3 性能调整 137 7.12 小结 137 第ⅲ...

    领域驱动设计第二分卷

    7.9 停下来重构:cargo聚合的另一种设计 129 7.10 运输模型中的模块 131 7.11 引入新特性:配额检查 133 7.11.1 连接两个系统 134 7.11.2 改进模型:划分业务 135 7.11.3 性能调整 137 7.12 小结 137 第ⅲ...

    iOS应用架构谈view层的组织和调用方案

    第一篇《》当我们开始设计View层的架构时,往往是这个App还没有开始开发,或者这个App已经发过几个版本了,然后此时需要做非常彻底的重构。一般也就是这两种时机会去做View层架构,基于这个时机的特殊性,我们在这...

    javalruleetcode-LeetCode:关于力扣

    重构行程 Java √ 331 验证二叉树的预序序列化 Java √ 330 修补阵列 Java √ 329 矩阵中的最长递增路径 Java √ 328 奇偶链表 Java × 327 范围总和的计数 √ 326 三的力量 Java √ 324 摆动排序 II Java √ 322 ...

    scala-3-crash-course:Scala 3研讨会介绍了该语言的主要新功能

    这就是为什么现在是一个很好的时机,可以玩转,看看那里有什么。 在本研讨会中,我们将看到最有趣和最重要的功能,例如枚举,上下文抽象(给定,扩展方法,类型类,上下文函数),新类型(不透明,并集和交集)。 ...

    lrucacheleetcode-leetcode-exercise:leetcode练习记录库

    买卖股票的最佳时机 简单的 数组,动态规划 丑二 中等的 动态规划、堆、数学 跳跃游戏 中等的 数组,贪婪 包含重复 简单的 数组、哈希表 包含重复 II 简单的 数组、哈希表 包含重复 III 中等的 二叉搜索树 克隆图 ...

    深井厚煤层综放工作面顶板运动与沿空巷道围岩变形动态响应关系-论文

    针对深井厚煤层综放工作面沿空巷道围岩控制困难的问题,以新河煤矿5302工作面沿空巷道为研究对象,采用理论分析、现场实测、微震监测等手段研究了巷道变形和顶板运动的动态响应关系,重构了工作面顶板破断过程,分析...

Global site tag (gtag.js) - Google Analytics