代码怎么用 代码怎么用手机打开


代码怎么用 代码怎么用手机打开


在软件中随处可见命名:要给变量、函数、参数、类和封包命名,还要给源代码及源代码所在目录命名,甚至还有jar文件、war文件和ear文件命名 。
但是,看似简单的命名,也是让不少程序员头疼的问题 。有一些小伙伴,在进行变量命名的时候 , 对于自己熟悉的英文,可能还会用英文命名一下,如果需要命名的部分不会用英文表达,或许就直接用拼音了 。
有的童鞋一下想不起来怎么命名 , 直接用拼音直接用aa , bb等这样没有任何代表意义的字母来命名,可读性非常差,可能自己今天写的,一个星期后回来再看,也忘记其具体代表的含义了 。
因此,许多人在写代码之前 , 总会在想啊想啊,用什么命名法好呢?对于经常在C++、Java、Python等主流语言上切换的强迫症来说,换个语言换种命名风格简直不要太混乱 。

既然有这么多命名要做 , 不妨做好它 。本期内容中 , 异步君为大家带来了起个好名字应遵从的几条简单规则,一起来看看吧
— 01 —
名副其实
名副其实说起来简单 。我们想要强调 , 这事很严肃 。选个好名字要花时间,但省下来的时间比花掉的多 。注意命名,而且一旦发现有更好的名称 , 就换掉旧的 。这么做,读你代码的人(包括你自己)都会更开心 。
变量、函数或类的名称应该已经答复了所有的大问题 。它该告诉你,它为什么会存在,它做什么事,应该怎么用 。如果名称需要注释来补充,那就不算是名副其实 。
int d;// elapsed time in days
名称d什么也没说明 。它没有引起读者对时间消逝的感觉,更别说以日计了 。我们应该选择指明了计量对象和计量单位的名称:
int elapsedTimeInDays;int daysSinceCreation;int daysSinceModification;int fileAgeInDays;
选择体现本意的名称能让人更容易理解和修改代码 。下列代码的目的何在?
public List<int[]> getThem() {List<int[]> list1 = new ArrayList<int[]>();for (int[] x : theList)if (x[0] == 4)list1.add(x);return list1;}
为什么难以说明上述代码要做什么事?里面并没有复杂的表达式,空格和缩进中规中矩 , 只用到三个变量和两个常量,甚至没有涉及任何其他类或多态方法,只是(或者看起来是)一个数组的列表而已 。
问题不在于代码的简洁度,而在于代码的模糊度:即上下文在代码中未被明确体现的程度 。上述代码要求我们了解类似以下问题的答案:
(1)theList中是什么类型的东西?
(2)theList零下标条目的意义是什么?
(3)值4的意义是什么?
(4)我怎么使用返回的列表?
问题的答案没体现在代码段中,可代码段就是它们该在的地方 。比方说,我们在开发一种扫雷游戏,我们发现,盘面是名为theList的单元格列表,那就将其名称改为gameBoard 。
盘面上每个单元格都用一个简单数组表示 。我们还发现 , 零下标条目是一种状态值,而该种状态值为4表示“已标记” 。只要改为有意义的名称,代码就会得到相当程度的改进:
public List<int[]> getFlaggedCells(){List<int[]> flaggedCells = new ArrayList<int[]>();for (int[] cell : gameBoard)if (cell[STATUS_VALUE] == FLAGGED)flaggedCells.add(cell);return flaggedCells;}
注意 , 代码的简洁性并未被触及 。运算符和常量的数量全然保持不变,嵌套数量也全然保持不变,但代码变得明确多了 。

推荐阅读