代码审计至少包含两个方面首先要确定代码的目的或功能;另外就是检查代码的可读性,即是否更利于理解和维护。
或许你审计过很多代码,太长的变量名确实很让人抓狂。不仅影响了代码的清晰度,而且过长的变量让你的代码难以扫描,迫使更多的换行。
如何给变量或方法取个好名字
首先你要知道这个命名想要表达什么;另外你应该知道这个命名跟什么是无关的。 除此之外,所有的命名中所有的字符串都是多余的。
(1)省略变量的参数类型
如果是静态类型的语言,你是会知道变量的类型或方法返回值类型,再在命名上加上类型就是多余了
// Bad:
String nameString;
DockableModelessWindow dockableModelessWindow;
// Better:
String name;
DockableModelessWindow window;
可用复数代替某些类型
// Bad:
List
Map
// Better:
List
Map
方法名不应该描述参数或其类型
// Bad:
mergeTableCells(List
sortEventsUsingComparator(List
Comparator
// Better:
merge(List
sort(List
(2)省略命名中的歧义描述
当你看到这个变量名recentlyUpdatedAnnualSalesBid你是不是在想
有没有年度销售报价不是最近的?
最近的年销售报加有没有没更新的?
有没有最近更新的销售报价不是年度的?
...
请去掉这些无关的描述吧,何况你可以加注释嘛。
// Bad:
finalBattleMostDangerousBossMonster;
weaklingFirstEncounterMonster;
// Better:
boss;
firstMonster;
(3)去掉上下文已知的内容
比如说当class描述了某个内容,方法名就不需要再重复了
// Bad:
class AnnualHolidaySale {
int _annualSaleRebate;
void promoteHolidaySale() { ... }
}
// Better:
class AnnualHolidaySale {
int _rebate;
void promote() { ... }
}
(4)省略掉无意义的信息
很多人喜欢命名基于产品的很多商业名词,比如data, state, amount, value, manager,engine, object, entity, and instance.这些词是否存在没有意义。
看下面一个联系
class DeliciousBelgianWaffleObject {
void garnishDeliciousBelgianWaffle(
List
}
简化成这样是不是很爽
class Waffle {
void garnish(List
}
茶杯头甜蜜终章dlc 官方手机版v1.0.0.3
下载火柴人传说暗影格斗内置菜单 最新版v3.0.1
下载荒野乱斗测试服 安卓版v61.10.3
下载荒野乱斗彩虹服 安卓版v61.10.3
下载寒霜启示录 安卓版v1.25.10
寒霜启示录是一款生存模拟游戏,不少玩家可能对于末日都有着自己
末日城堡免广告版 安卓最新版v0.7.1
末日城堡免广告版是一款非常好玩的模拟经营类游戏,内部可以不看
甜蜜人生模拟器 最新版v1.4.5
甜蜜人生模拟器是一款非常好玩的模拟恋爱手游,玩家在这里能够对
武器锻造师内置功能菜单 v10.4
武器锻造师内置菜单版是游戏的破解版本,在该版本中为玩家提供了
开放空间overfield 安卓版v1.0.5
开放空间Overfield是一款箱庭养成经营手游,让你在广阔