首页 > 其他分享 >24种坏味道(重构2)

24种坏味道(重构2)

时间:2023-01-07 18:37:11浏览次数:43  
标签:24 重构 过长 种坏 Long Data 代码

  1. 神秘命名(Mysterious Name)

    1. 整洁代码最重要的一环就是好的名字。
    2. 如何给函数、模块、变量和类定义一个清晰地并能表明自己的功能和用法的命名,能够让代码直观明了,是编程中最难得两件事之一
    3. 改名也可能是重构中最常用的手法,包含:改变函数声明、变量改名、字段改名
  2. 重复代码(Duplicate Code)

    1. 如果你在一个以上的地点看到相同的代码结构,那么设法将他们合而为一,程序会变得更好
  3. 过长函数(Long Function)

  4. 过长参数列表(Long Parameter List)

  5. 全局数据(Global Data)

  6. 可变数据(Mutable Data)

  7. 发散式变化(Divergent Change)

  8. 霰弹式修改(Shotgun Surgery)

  9. 依恋情节(Feature Envy)

  10. 数据泥团(Data Clumps)

  11. 基本类型偏执(Primitive Obsession)

  12. 重复的Switch(Repeated Switches)

  13. 循环语句(Loops)

  14. 冗赘的元素(Lazy Element)

  15. 夸夸其谈通用性(Speculative Generality)

  16. 临时字段(Temporary Field)

  17. 过长的消息链(Message Chains)

  18. 中间人(Middle Man)

  19. 内幕交易(Insider Trading)

  20. 过大的类(Large Class)

  21. 异曲同工的类(Alternative Classes with Different Interfaces)

  22. 纯数据类(Data Class)

  23. 被拒绝的遗赠(Refused Bequest)

  24. 注释(Comments)

标签:24,重构,过长,种坏,Long,Data,代码
From: https://www.cnblogs.com/huanmin/p/17033165.html

相关文章

  • 241. 为表达式设置优先级
    问题链接https://leetcode.cn/problems/different-ways-to-add-parentheses/description/解题思路这个题目是一个典型的递归问题,也是一个典型的分治问题。我们讲过,递归......
  • 024.开发待审批表单Model层
    1.leave_form.xml<selectid="selectByParams"parameterType="java.util.Map"resultType="java.util.LinkedHashMap">selectf.*,e.name,d.*from......
  • 24. 两两交换链表中的结点
    题目链接https://leetcode.cn/problems/swap-nodes-in-pairs/description/解题思路首先这是个递归问题,因为它可以明显的缩小问题规模。既然是递归的问题,那我们按照递归......
  • CP1024 单词切分
    又是一道小题,(但是也不是空格作为分割符,范围更广)本质上还是连续字符串,又考了判断嵌套啊俺的做法:#include<stdio.h>#include<ctype.h>#include<string.h>intmain()......
  • URAL2124 - Algebra on Segment
    题意维护一个序列,支持区间乘\(x\),和查询区间的\(Span\)的大小。一个集合的\(Span\)定义为可以表示成其中若干可重复整数的乘积的数的集合。所有计算在模\(p\)意义......
  • 24*8点 段码LCD液晶显示驱动控制电路(IC/芯片)-VK0192M 具省电模式,可兼容替代市面1622
    产品品牌:永嘉微电/VINKA产品型号:VK0192M封装形式:LQFP44概述:VK0192MLQFP44是一个点阵式存储映射的LCD驱动器,可支持最大192点(24SEGx8COM)的LCD屏。单片机可通过3/4线串行......
  • [转]24点计算器
    来自:https://ip138.com/24dian/ (function(){functioncalc24(){varexpression=[].slice.call(arguments).sort();varoperator=['+','-'......
  • [LeetCode] 2453. Destroy Sequential Targets
    Youaregivena 0-indexed array nums consistingofpositiveintegers,representingtargetsonanumberline.Youarealsogivenaninteger space.Youhave......
  • 剑指24. 反转链表
    问题链接https://leetcode.cn/problems/fan-zhuan-lian-biao-lcof/description/解题思路参考上一个题目。代码classListNode:def__init__(self,x):......
  • [LeetCode] 2244. Minimum Rounds to Complete All Tasks
    Youaregivena 0-indexed integerarray tasks,where tasks[i] representsthedifficultylevelofatask.Ineachround,youcancompleteeither2or3tas......