函数

短小

  1. 函数的规则是短小
  2. if,else,while其中代码应该只有一行

只做一件事

  1. 函数应该只做一件事,而且做好这件事

每一个函数一个抽象等级

  1. 函数中的所有语句都在同一抽象等级上

    • 函数中混杂有不同等级,会让人迷惑
  2. 自上向下读代码

    • 每个函数后边都跟着下一层级的函数

switch语句注意

  1. 写出短小的switch语句很难,switch天生要做多件事情
  2. 每个switch语句中尽量每一个判断只有一行代码

使用描述性的名称

  1. 别害怕长名称,长名称有描述性
  2. 别害怕花时间起名字
  3. 命名方式要一致

函数参数

  1. 一元函数

    • 最理想参数是0个,其次是1,再次是2,有足够理由才能用三个
    • 一元函数的普遍形式,操作参数,转换成其他东西,输出
    • 一元函数一种不普遍形式,事件,有输入无输出,需要谨慎使用
    • 标识函数丑陋不堪,向函数传入boolean是垃圾做法,应该把函数一分为2
  2. 二元函数

    • 比一元函数难懂
    • 使用一些机制把二元转成一元
  3. 三元函数(垃圾)

参数对象

  1. 但是用三个以上的参数时,就需要考虑封装了,封装成对象昂

动词与关键字

writeFiled(name),说明name是个field

无副作用

分隔指令与询问

  1. 函数要么做什么事,要么回答什么事,二者不能一起来
  2. 例如

     public boolean set(String attribute,String value);
     if(set("userName","unclebob")//这种写法是做了两件事了
    

使用异常替代返回错误码

  1. 使用异常来代替错误码的返回,错误处理就能从主路径代码中分离出来

抽离trycatch代码块

  1. try catch丑陋不堪,需要抽离

处理错误就只干一件事

别重复自己

  1. 代码尽量不要重复

结构化编程

  1. 每个代码块都应该有一个入口和一个出口
  2. 循环中不应该出现break或者continue,goto更不能出现

如何写出这样的函数

  1. 写函数一开始都冗长而复杂
  2. 打磨代码,分解函数、修改名称、消除重复
  3. 从一开按照规则来写,很难做到
  4. 即便没有时间打磨代码也要自己挤出时间来打磨

results matching ""

    No results matching ""