最近在纠结这么一个问题,如果一个变量是数组,那么应该命名为 xxxArray,xxxList,xxxs 还是什么其他的,感觉好像从叫法上都说得通,但是不知道有没有什么具体的说道比如某种命名规范?
还有文件夹命名,那种比较通用的方法,应该起一个什么文件夹名,core,common,util,helper....以及文件夹名应不应该加 s......
![]() | 1 debuggerx 2020-12-26 19:10:41 +08:00 ![]() 个人觉得能思考这个问题的就已经是难能可贵的好同志了,统一的规范可能不会有,只要能“讲得通”让大多数人理解就很好了……然后就是开启 IDE 的拼写检查,或者装个拼写检查插件,别写拼错的单词和无意义的变量名,就胜过 90%的同行了 |
![]() | 2 favourstreet 2020-12-26 19:41:29 +08:00 via Android 当不确定别人能不能看懂时,把变量名喂给英翻中软件,如果翻出来的中文看起来还可以,变量名就算不错的了 |
3 renmu123 2020-12-26 19:45:19 +08:00 via Android 看你语言习惯,我觉得都 ok,如果命名成 xxxs,还要想是 xxxes,还有不可数,太麻烦了 |
![]() | 4 eason1874 2020-12-26 19:57:26 +08:00 用 xxxs 多吧,重点在于不用意义不明的缩写,格式统一。 可以学下匈牙利命名法,直接在开头用小写字母表明类型。比如用 s 表示字符串,用 a 表示数组。 |
![]() | 5 jerryrib 2020-12-26 20:06:37 +08:00 |
![]() | 6 zachlhb 2020-12-26 20:11:44 +08:00 via Android 我觉得命名还是要看语言和框架,尽量使用语言和框架的命名规范比较好,这样看着统一,至于变量命名其实都可以,重点是一个项目中从头到尾最好使用一种命名格式 |
7 PeterChu9527 2020-12-26 21:21:18 +08:00 阿里的《 Java 开发手册》值得参考。 |
![]() | 8 gwybiaim 2020-12-26 21:27:13 +08:00 @favourstreet #2 所以为什么不直接用合适的母语词汇进行命名? |
![]() | 9 abersheeran 2020-12-26 21:37:58 +08:00 ![]() 只要够统一,你可以用拼音、用汉字、用日语、用西班牙语都可以。代码规范的重点不在于单个命名是否信达雅,而在于整个项目的命名是否遵循同一种规则,减少阅读时的心智负担。 |
![]() | 10 youla 2020-12-26 21:41:49 +08:00 我因为变量名命名被警告了,老大:你能不能别在变量名上加上自己的名字啊? |
![]() | 11 youla 2020-12-26 21:42:14 +08:00 准确来说还有文件名… |
![]() | 12 elintwenty 2020-12-26 21:43:29 +08:00 简单一点,看《代码整洁之道》,里面有关于命名的章节; 实际一点,如果是 Java,直接看阿里的手册和常见框架的源码,直接看命名风格就行; 有效一点,和身边其他人保持一致; 根本一点,从其他人的角度出发,想一想另一个人能不能看懂你命名的意图就好。 |
13 freebird1994 2020-12-26 21:54:24 +08:00 via Android 可以看看框架源码。命名风格很值得借鉴 |
14 Rache1 2020-12-26 22:05:19 +08:00 代码里面见到过一种,一个产品 ID 的数组,然后看到了 ProductIds 的命名 ,个人比较能接受 ProductsId 的形式。 就是 xxxsId 和 xxxIds 的区别。 |
16 forgottencoast 2020-12-26 23:34:24 +08:00 .Net 有, 《 NET 设计规范:约定、惯用法与模式(第 2 版)》 |
![]() | 17 AllenHua 2020-12-27 00:33:32 +08:00 via iPhone javaer 推崇 阿 li 规范 可阅读性很高 是 map 变量后加 map (比如 userNameMap ) 是 list 就加 list (比如 resultList ) 但是这种代码的确又臭又长 :狗头) |
![]() | 18 iyeatse 2020-12-27 01:34:47 +08:00 说到可数和不可数,就想到项目代码里遍地的 datas 了。。。简直是跟阀值和请稍后一样令人拳头发硬的存在 |
![]() | 19 opei3v1867r0zNrq 2020-12-27 03:30:45 +08:00 个人感觉还是要考虑一下单复数和不可数名词的。比如楼上说的 data 。还有比如 matrices 这种。还有一个令人“拳头发硬的”是 codes 。 |
![]() | 20 kaiki 2020-12-27 05:31:00 +08:00 试试用拼音,可以气死看你代码的人 我反正不敢这么干 |
21 Cbdy 2020-12-27 06:50:17 +08:00 via Android 参考当前语言的标准库的写法,比如 Java 的 JDK 、C 的 C 标准库 |
22 lishen226 2020-12-27 09:57:25 +08:00 建议不要用 s,太不起眼了,很容易遗漏,母语是英语的不会有这个问题,咱们还是别找麻烦了。 经过大量实践,xxxList 是没什么问题的。文件夹的命名可以参考 smart-admin 的规范,我感觉很合理。 https://gitee.com/lab1024/smart-admin/blob/master/%E4%BB%A3%E7%A0%81%E8%A7%84%E8%8C%83/java-standard-guide.md |
23 skys215 2020-12-27 10:44:54 +08:00 我之前还想做起变量名的词典呢 把用户积分写成 integral 也太离谱了,这可是微积分的积分啊 |
![]() | 24 AV1 2020-12-27 12:12:59 +08:00 via Android -s 还要考虑不规则变形的情况,所以应该用 list 。 |
![]() | 25 youla 2020-12-27 14:06:28 +08:00 @raaaaaar 表示这是我改的!!看我厉害吧……其实就是方便自己查找,因为命名太随意了,经常找不到自己改的东西,所以就自己加名字进去,每次搜自己名字就找到了。一般是方法名和文件名。 |
![]() | 26 Sapp 2020-12-27 15:58:53 +08:00 起一个让你组员都能跟你一起做到的,如果搞得太严格,很多人根本不这么做,那么结果毫无意义,这个东西没有一定的,主要还是一起合作的人一起确定一个就行。另外很多时候反倒不要死抠规范,比如有很多单词其实你搞个英文的别人也很难看懂,比如我之前做过一个金融的,变量我翻译一遍还是看不懂什么意思,这种冷门的每个人的翻译不一样,结果就差很多,又没有注释,只能靠着猜,那么你用个拼音+注释反倒更可读,重点还是在让人看得懂,如果实在不确定看不看得懂一定加注释,不然自己翻译个乱七八糟,甚至根本不准的英文,又没有注释,这才是最坑的。 |
![]() | 27 Cr1ck 2020-12-27 16:25:46 +08:00 个人风格 方法形参 f_xxx 局部变量 tmpXxx 数组 xxxs 集合 xxxList 键值对 xxxDic ( C#) 可能为空的 tmpOptionalXxxx |
30 wzzzx 2020-12-27 17:30:10 +08:00 具体也不好说,但是呢,我觉得单复数确实没必要考虑。规则最重要的就是简单 |
![]() | 31 Takamine 2020-12-27 17:36:42 +08:00 via Android 从《代码整洁之道》里得到的建议就是现在不需要用什么匈牙利命名法,也不用一定强调后面固定加什么后缀。 关键在于整个风格的统一和易读。即从当时这个变量集合在你的模块内抽象出来所代表的功能是什么来看,给他一个简洁直观的表述。 |
![]() | 32 ruyu 2020-12-27 17:44:47 +08:00 脸滚键盘即可. |
33 zeroxia 2020-12-27 22:51:53 +08:00 没有完美的命名规则。最重要的是一致的命名规则。 如果自己定不下来,可以参考: 1 、现有代码库,比如 github 上找几个成熟的代码库。 2 、大公司的编码规范,Google 、微软等。 |
34 jzmws 2020-12-27 23:01:26 +08:00 代码规范还是要有的, 后期维护才方便 |
35 nano91 2020-12-28 09:02:27 +08:00 只要能跑,我就永远用下划线做分割 |
![]() | 36 no1xsyzy 2020-12-28 09:35:52 +08:00 能看懂就成 xxx_list lstXxx lxxx xxxl 只要不影响眼 parse,单加个 l 都成。 |