• 谈软件专家谈C/C++重构的操作与思路


    1.Refactoring: 对软件内部结构的一种调整,目的是不该被软件的可观察行为的前提上,提高其可理解性,降低其修改成本。
    2.代码坏味道
    2.1.不易复用
    2.2.不易理解
    2.3.存在冗余
    3. 重构目标
    3.1 不破坏测试
    3.2 易于复用
    3.3 易于理解
    3.4 消除冗余
    4. 一系列小的安全的重构步骤
    rename->test->extract->test->replace->test
    5.重构手法:程序重建和程序变换的等价操作
    5.1 重构组织函数
    5.2 重新组织数据
    5.3 简化函数调用
    5.4 简化条件表达
    5.5 对象之间搬移特性
    5.6 处理概括关系
    6. 基本手法
    6.1 重命名
    6.2 提炼
    6.3 内联
    6.4 移动
    7.原子操作(代码等价变化的最小粒度,也是最小提交粒度)
    7.1 创建(任何重构都是,先保持原有的不动,创建一个新的方法来跑用例测试)
    7.2 替换 (接下来用新的易用的代码取替换原来的代码,但是每替换一次都应该测试一次)
     
    eg:
    防御式编程
     
    8.终极目标:
    refactoring to domain model
    code refactoring
    evolve to domain model
    domain model guid code
    domain model refine domain model
    领域模型:
    领域模型表达了业务的主要概念,关系和约束;
    领域模型展示了业务的主要变化方向和对应方式
    通过软件开发过程中不断学习和思考,不断的提炼和演进领域模型;
    通过不断的重构代码,保持代码和领域模型的一致
    用领域模型指导软件的重构和解耦方向
     
    9 演进式设计
    1.与领域专家深度配合
    2. 持续的观察领域的本质
    3.持续的基本重构
    4. 注重概念的一致性
     
     
     https://www.itdks.com/Course/detail?id=117463
     
    https://refactoringguru.cn/design-patterns/abstract-factory
     
  • 相关阅读:
    (转)C3P0连接池配置和实现详解
    (转)jquery插件Validate的使用
    二叉树和翻转二叉树
    利用@media screen实现网页布局的自适应
    (转)防止SQL注入的五种方法
    java代码规范
    Java泛型-类型擦除
    js中的isNaN()
    (转)sublime 一些常用功能和快捷键
    (转)java中不常见的关键字:strictfp,transient
  • 原文地址:https://www.cnblogs.com/gongxianjin/p/15659009.html
Copyright © 2020-2023  润新知