[收铜币] 什么时候变量起名长一点好?什么时候短一点好?

2017-11-01 01:02:57 +08:00
 noli

我觉得有些时候起短一点好,例如写一些非常像数学中的函数的代码的时候。

例如像

var product = 
    from x in alst
    from y in blst
    select x * y ;
product = [x * y for y in blst for x in alst]

但有些时候,你又恨不得名字越清晰越明确越好。 例如据某位大 v 说他最近在搞一些 Windows 内核的代码,所有变量名都是辅音字母完全没有元音,

例如(随便乱编的 ) wwMgrCtxKSz => windowsManagerContextKeySize

集思广益,说说你现在写的代码大概是什么领域的,喜欢起名长一点还是短一点?

4055 次点击
所在节点    程序员
36 条回复
AscenZ
2017-11-01 09:58:19 +08:00
外面写长的,能顾名思义的
一些代码块里面的可以写短的,例如 for 循环里面可以用单字母都行
感觉和#19 差不多
microhz
2017-11-01 10:27:43 +08:00
长一点无所谓,意思一定要明确合理
sorra
2017-11-01 11:00:55 +08:00
需要设定一些合适的概括性的名字,一词顶五词,以解决变量名膨胀的问题。
xa0082249956
2017-11-01 12:09:07 +08:00
作为一名 OIer 我发现我周围的人变量名 /函数名都是 x, y, z, a, b, c …而我都是… FindBestAns 什么的……但是或许这种时候短一点比较好?但是短一点我自己容易乱…
saran
2017-11-01 12:12:38 +08:00
随心情
wweir
2017-11-01 13:21:52 +08:00
很多时候看到名字过长,需要的并不是缩写,而是从架构、功能等角度做一个更高层次的抽象。
比如 #4,可能给我起名的话,会叫做 get_new_accounts_activity_counts,然后在隔壁加个注释,表明具体的内容。
一直坚持,函数(变量)名是用来快速找到他的一个标识,用来表明它是做什么的,而不是要表明它具体做了什么

缩写的话,很小的 scope 内使用的变量名,爱怎么缩写怎么缩写。作用域越大,变量名越要起好,避免缩写。
jswh
2017-11-01 14:14:40 +08:00
个人觉得变量名 /函数名在遵循团队规范的情况下,只有一个原则,如果你是第一次读这段代码,在不用注释的情况下能不能最大程度地理解要实现的功能。
msg7086
2017-11-01 14:30:19 +08:00
逻辑复杂的时候我还会把一段逻辑直接扔进一个方法里,用方法调用代替变量名。
siyang1982
2017-11-01 14:45:17 +08:00
有 IDE,项目接触人多,不熟,或时间跨度长但接触频率不高的,可以长些。
主要是为搜起来方便。
siyang1982
2017-11-01 14:49:40 +08:00
短的最大优点是,选择恰当的词有难度,在绞尽脑汁取名时,对其作用进行更深的思考。
chenyu8674
2017-11-01 15:28:17 +08:00
局部变量 ijkxyz 漫天飞也无所谓,全局和函数名尽量做到通过名称能直接看出意义
不然俩月后自己都不知道自己写的啥,别问我怎么知道的
shenhongbang
2017-11-01 16:32:07 +08:00
长短应该和作用域成正比吧
zjsxwc
2017-11-01 16:39:50 +08:00
写能让一年后的自己看得懂得变量名
Easzz
2017-11-01 16:55:05 +08:00
我觉得长一点没关系吧,最重要的知道这个变量是什么意思。好的命名是自解释的,而不需要注释。
woscaizi
2017-11-06 13:28:22 +08:00
@laoyur 我们都驼峰。
ShineSmile
2018-06-21 13:26:49 +08:00
参见变量作用域。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/402448

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX