有意义的命名

2017-05-07  本文已影响0人  denuth

名副其实

变量名应该告诉你:他为什么会存在,他做什么事,他应该怎么用

如果名称需要注释来补充,那就不算名副其实

public List<int []> getThem() { List<int[]> list1 = new ArrayList<int[]>(); for (int[] x:theList) { if (x[0] == 4) { list1.add(x); } } return list1; }
代码整洁但是模糊,无法通过上下文阅读获取变量的意义
public List[Cell] getFlaggedCells() { List<Cell> flaggedCells = new ArrayList<Cell>(); for (Cell cell : gameBoard) if (cell.isFlagged()) flaggedCells.add(cell); return flaggedCells; }
修改项


避免误导

1 不要使用系统自带的变量名,系统的专用名来命名:hp,aix,sco等
2 不要使用程序语言的数据类型来做变量名的组成部分:accountList,如果这个变量不是个list岂不是雪崩,可以用group,bunchof,加s来代替
3 不要让变量名之间仅有细微的差别,鬼才看得出来
4 最可怕的,不要在变量名中出现小写的l,大写的O,鬼知道是l还是1,是O还是0


做有意义的区分

如果程序员只是为了满足编译器或者解释器的需求写代码,就会制造麻烦。

最终一点命名要提现意义要有所区分,要区分名称,就要以<strong>读者</strong>能鉴别不同之处的方式来区分


使用可搜索的名称

单字母名称和数字敞亮有个问题,就是很难再一大片文字中找出来
名称长短应与其作用于大小相对应


避免使用编码

编码已经太多,无畏自找麻烦
一句话总结:不要要把代码的逻辑扔到变量命名中,变量命名的唯一目的是描述业务,加强业务可读性。


避免思维映射

明确是王道


类名

类名和对象名应该是名词或名词短语


方法名

方法名应该是动词或者动词短语
重载构造器时,使用描述了参数的静态工厂方法名。for 1个sanple:
Complex fulcrumPoint = Complex.FromRealNumber(23.0);
要好于
Complex fulcrumPoint = new Complex(23.0);
FromRealNumber声明成Complex的静态工厂方法,甚至还可以把构造函数声明成private,只能通过工厂方法获取对象


别扮可爱

= =顾名思义 不要有情绪化的 卖萌的命名

上一篇下一篇

猜你喜欢

热点阅读