zoukankan      html  css  js  c++  java
  • 怎么写出好代码——坏味道

    很难定义什么是好代码,但是坏代码是显而易见的。

    良性循环

    对已经具有可测试性、可维护性、可理解性的代码进行测试和维护,可以让工作更简单。有了这个基础,可以让我们更富有成效,富有成效的人时快乐的,快乐的人也是富有成效的。这是一个良性循环。

    理论摘录

    1. 重构的基本技巧: 小步前进,频繁测试。
    2. 对象技术的要点在于:将数据和对数据的操作行为包装在一起。
    3. 封装:对外部世界隐藏内部细节。
    4. 可以让函数保持最小代码量的一个方法是让命令(Command)和查询(Query)保持分离。命令函数表示 do something, 而查询函数表示 return something。

    代码的坏味道

    1. Duplicated Code(重复的代码)
      • 合并重复的代码,提取,使之独立出来
    2. Long Method(长函数)
      • 一个函数越长,圈复杂度就越大,容易出问题的点就越多,并且需要的脑容量也更大,还会导致在修复 bug 的时候,产生新 bug 的概率加大。
      • 原则:每当感觉需要使用注释说明点什么的时候,就把需要说明的东西写入到一个独立的函数中。
    3. Long Parameter List(过长参数列)
    4. Divergent Change(发散式变化)
      • 一个类受多种变化的影响
      • 一旦需要修改,最好只修改一处
    5. Shotgun Surgery(散弹式修改)
      • 一种变化引发多个类需要修改
      • 每遇到某种变化,都必须在许多不同的类内做出许多小修改
    6. Feature Envy(依恋情节)
      • 某个函数为了计算某个值,从另一个对象那调用了多个取值函数
    7. Data Clumps(数据泥团)
      • 两个类中相同的字段,许多函数中相同的参数等绑在一起出现的数据,提炼成对象
    8. Switch Statement
      • 面向对象程序的一个显著特征:少用 switch 语句,多用多态。
    9. Complicated Condition(复杂的条件判断)
      • 把需要注释说明的分支条件,提炼成单独的一个函数
    10. Proper Iterator(合理使用循环)
      • 如果有些代码实际上是重复性的工作,那么合理的使用循环会使代码量更少
    11. Only One Return(函数只有一个出口)
      • 提前让函数退出,代替嵌套条件分支
      • 避免 if 分支的左右括号之间相隔 500 米
  • 相关阅读:
    【打印】windows打印控件,Lodop.js介绍
    【MySQL】MySQL查询数据库各表的行数
    【MySQL】MySQL中查询出数据表中存在重复的值list
    【php】php5.0以上,instanceof 用法
    日期转换:Cannot format given Object as a Date (SimpleDateFormat的parse和format)
    Groovy 正则表达式 匹配点号
    什么是开发框架
    SoapUI 增大使用内存
    Groovy API link
    Groovy 跳出each循环
  • 原文地址:https://www.cnblogs.com/yakun/p/4857244.html
Copyright © 2011-2022 走看看