专栏名称: 程序员之家
程序员第一自媒体,与你探讨码农人生路上遇到的各类泛技术话题,定期为你推荐码农人生思考、感悟以及启迪!
目录
相关文章推荐
码农翻身  ·  今年后端这薪资是认真的吗? ·  12 小时前  
程序员小灰  ·  以后是彻彻底底的小生意时代 ·  昨天  
阿里云云栖号  ·  一周AI大事件 ·  昨天  
稀土掘金技术社区  ·  前端如何实现图片伪防盗链,保护页面图片 ·  昨天  
稀土掘金技术社区  ·  做了个渐变边框的input输入框,领导和客户 ... ·  3 天前  
51好读  ›  专栏  ›  程序员之家

如何给变量取个简短且无歧义的名字

程序员之家  · 公众号  · 程序员  · 2017-04-16 22:06

正文

请到「今天看啥」查看全文



命名中无需含有表示变量或参数类型的单词


如果使用如Java之类的静态类型语言, 开发者通常知道变量的类型. 由于方法的实现一般都比较简短, 所以即便是在查看一个需要推断才知道类型的本地变量, 或者在code review等静态分析器不可用的情况下, 我们也可以通过多看很少的几行代码就能知道变量的类型.


所以将类型说明加入到变量名中是多余的. 我们应该舍弃匈牙利命名法,如下:


// 不好的:

String nameString;

DockableModelessWindow dockableModelessWindow;


// 改进:

String name;

DockableModelessWindow window;


特别是对于集合来说,最好使用名词的复数形式来描述其内容, 而不是使用名词的单数形式来描述. 如果开发者更在乎集合中存储的内容, 那么变量命名应当反映这一点。


// 不好的:

List holidayDateList;

Map employeeRoleHashMap;


// 改进:

List holidays;

Map employeeRoles;


这一点也同样适用于方法的命名。方法名不需要描述它的参数及参数的类型–参数列表已经说明了这些。


// 不好的:

mergeTableCells(List cells)

sortEventsUsingComparator(List events,

Comparator comparator)


// 改进:

merge(List cells)

sort(List events, Comparator comparator)


这样可以帮助调用者更好的阅读:


mergeTableCells(tableCells);

sortEventsUsingComparator(events, comparator);


当然,这只是我个人的看法,欢迎大家一起讨论~~


省略命名中不是用来消除歧义的单词







请到「今天看啥」查看全文