技术随笔
给变量起名的苦
2 分钟
程序员一生只做两件事:写代码,和给代码起名。
写代码是体力活,起名是哲学活。你盯着屏幕,想给一个"临时存储用户上次滚动位置的数字"起名:pos?太短。lastScrollPosition?太长。position?太普通。
最后你起了 p,注释里写:// 位置。三个月后打开,你对着 p 陷入沉思:这是什么?哪里的位置?怎么用?
还有更经典的:data、temp、result、temp2、tempFinal、tempFinal2、tempFinalReal。
网上有个说法:写代码 30% 时间在想逻辑,70% 时间在给变量起名,而 50% 的起名时间,花在后悔上一个名字上。
我的经验是:名字要起得"能读出来"。isLoading 比 load 好,totalMinutes 比 tm 好。因为代码会被读很多遍,写只有一遍。
当然,实在起不出来的时候,我还有终极方案:foo。foo 是程序员的"万能钥匙",也是最后的尊严。