文章标题、就是我最近一直在思考的问题,确实一直在困扰我。接下来就单方面的谈谈自己的一点看法。
不知道你在第一眼看到 我写的 我写的 我写的 这句代码(OC)的时候是什么感觉:
会不会感觉这个命名很屌丝,主要的原因是中间带了两个数字 00,结构就是 title + 00 + Label,翻译就是标题标签控件, 疑惑是为什么中间待两个莫名其妙的数字 00。
那么问题来了,当别人第一次看到这样的代码时,会有什么的反应呢?换个方式来问:如果你看到别人这样写,你会有什么反应?
是不是,马上吐槽这代码真垃圾、真 low,等等负面印象。
其实我在思考这个问题的时候,我也在思考另外一个问题:当我们在写代码的时候,一定要写出别人一看就知道其真实含义的代码吗?
这个话题并非 凭空出世,是本周的时候,同事直接给截图说看不懂。我遇到这种情况,不会去问为什么看不懂,但是我清楚其意思就是:为啥要加数字。我只能回复:我调整一下。
因为我清楚他 看不懂 有两种情况:第一种情况是没有去我定义的地方看我的注释,第二种情况是去看了我的注释之后还是看不懂。不管是哪种情况都很难与他解释的。与其解释,还不如噼里啪啦的改一下。
我的备注是这样的:
看完注释,应该就更能明白我不解释的原因。因为我一直认为这样命名是没有什么问题,通过注释能看出这个命名(属性)是在一个基类中定义的,并且这个基类对我而言在整个项目中 95% 都是会使用到的。当时要将这个 titleLabel 的属性中间加 两个 00,正如注释所提示,防止子类中也需要再定义一个类似 标题 的控件, 故而中间添加两个 00 作为区分。
我在变量中添加数字作为命名的一部分,也担心别人误解,所以将注释写得这么详细。但是还是被说这样的代码看不懂,事情不大,但是带来的却是很多的思考,自己也更应该 自省。
在实际的开发中,我是很反感使用待数字的命名的,但是有的时候确实是会使用一下。比如 2 与 8,2 可以代替 To、毕竟英文是 Two,读法一样。这个并非我首创,很多大神都在使用,比如闲鱼技术出品的 UI2Code。对于这个 8 估计是我的首创,8 与 & 很像、这个 & 在编程中有 And 的意思,所以在想使用 And 的时候,为了减少长度会直接选择使用 8 来代替。但是 2 与 8 这样的写法不到关键特殊情况,我是不会使用的。在一个项目中,最多出现三个地方。当然,上面提到 00 命名,在项目中仅出现两个,另一个是并行的 line00View, 所以就因为别人的一句看不懂,我也一起调整了。
那么、核心问题又来了:在开发中我们是否应该使用数字来作为命名的一部分? 其实每个程序员都很清楚,大家呼吁的不要使用数字作为变量的命名应该是这样的(为了获取 *TabBarController 中的tab 导航控制器,尽然定义了四个变量):
但是,有谁能想到:写这样代码的,尽然会说看不懂 title00Label。
总之:在变量名中使用数字,风险性还是有的,建议尽量不要使用,除了让别人看不懂,应该很容易产生误导。
这个周末去北京晃荡了两天,今天(周日)在北京与小伙伴们小聚一下聊聊目前的现状。回到天津很累,但是不想睡觉,所以就来简书牢骚一下。