zoukankan      html  css  js  c++  java
  • 关于重构需要了解的一些原则

    基本原则:

    1. 现有业务逻辑、依赖与关联分析清楚
    2. 对于一些不合理的业务逻辑要从技术的角度去引导需求,达到业务需求与技术的平衡
    3. 重构之后运行所有测试,确保第1点正常或者在预期范围内
    4. 代码尽量清楚地表达程序员意图(注释、逻辑清晰以及命名规范等)

    注:重要性从上往下

    代码重构主要关注的点:

    1. OO (面向对象的三大基本原则)
    2. SRP (权责单一,类只有一条被修改的理由)
    3. DYR (没有重复代码)
    4. OCP (开闭原则,类对扩展开放,对修改关闭)
    5. DIP (依赖倒置)
    6. LKP (最少知识原则,类与类之间的耦合最低)

    代码部分动手基本思路:

    前提是基本原则中的第1、2点 , 评审过后才能对代码动手:

    从需要重构的方法开始,依据SRP细分函数功能.再根据SPR原则分离为不同的类.
    如果类之间存在依赖关系,而且被依赖的类以后可能被修改,则用依赖倒置原则,抽象出接口或抽象类。

    1. 从修改命名入手
    2. 函数应该短小,逻辑清晰,只做一件事,并做好这件事(SRP)
    3. 业务逻辑的重构
    4. 异常处理重构,系统异常与业务异常分离,类型安全,异常处理的时间点等
    5. 检查类的设计, 主要是OO, 高内聚低耦合、开闭原则、DIP、操作类与数据实体类的分离等

    单元测试

    单元测试基本流程:BUILD(构造数据) - OPERATE(操作) - CHECK(验证)
    单元测试的first原则如下:
    1.F fast 快
    2.I Independent 独立
    3.R repeat 可重复
    4.S self-validate 自我验证
    5.T Timely 及时编写

    性能测试:

    帮助开发人员了解重构的效果,检查重构方案的存在的不足,尽早发现和解决问题。


    --------------------------------------------------------------------------
    Daniel Chow's Blog - 不管你在哪里,都要有一颗创业的心!
    http://www.cnblogs.com/DanielChow/
  • 相关阅读:
    LeetCode 230. Kth Smallest Element in a BST
    LeetCode 114. Flatten Binary Tree to Linked List
    LeetCode 222. Count Complete Tree Nodes
    LeetCode 129. Sum Root to Leaf Numbers
    LeetCode 113. Path Sum II
    LeetCode 257. Binary Tree Paths
    Java Convert String & Int
    Java Annotations
    LeetCode 236. Lowest Common Ancestor of a Binary Tree
    LeetCode 235. Lowest Common Ancestor of a Binary Search Tree
  • 原文地址:https://www.cnblogs.com/DanielChow/p/2881452.html
Copyright © 2011-2022 走看看