好名字胜却注释万千
表达到位:我的名字会告诉你一切
范例一
int n; //个人统计
n是一个无意义的。它没有任何个数的概念。通过注释,你或许能得到一点信息。但是,如果要通过注释来解释这个变量。那这个变量的名字就是有问题的。
我们应该指明 计量的对象和单位的名称:
int personNumInCompany;
int personNumInAndroidTeam;
范例二
public List<String> getList() {
List<String> list = new ArrayList();
for (String item : oneList) {
if (item.contains("1900") {
list.add(item);
}
}
return list;
}
这段代码很简洁。大概意思就是如果List的item包含字符串1900,就添加到list中,并输出。
这段代码格式没问题、结构没问题,但是,它不清晰,有模糊感。
(1) oneList是什么?
(2) 1900代表什么?
(3) 输出的list能做什么?
这段代码没有给我们答案。那么它的答案自然在它出现的地方。
我们先给这段代码创建一个场景。比如1900是一个歌单中,属于电影the legend of ninteen hundred的歌曲的前缀。比如歌曲The Legend of the Pianist的歌名是:1900-The Legend of the Pianist
那oneList可以改名mPlayList。1900是电影的别称,那么可以改为有意义名称。
public List<String> getPlayListInMovie1900() {
List<String> songListIn1900 = new ArrayList();
for (String name : mPlayList) {
if (name.contains(MOVIE_1900_CONDENSED_NAME) {
songListIn1900.add(item);
}
}
return songListIn1900;
}
其实,只是改了名字,没有结构,数量,嵌套层级,全都没变。但