在谷歌 checks 规则里是不建变量用匈牙利命名法,但我看的 android 源码里私有变量几乎都是前缀加 m。
前缀加 m 代码提示感觉稍顺一点,不过我初出茅庐用不用感觉也差不多。目前我的代码都是前缀加 m 表面类型,现在琢磨着要不要改过来,于是想了解一下有这种习惯的开发者多不多。
前缀加 m 代码提示感觉稍顺一点,不过我初出茅庐用不用感觉也差不多。目前我的代码都是前缀加 m 表面类型,现在琢磨着要不要改过来,于是想了解一下有这种习惯的开发者多不多。
|
neoblackcapJan 8, 2018
1
IDE 本身可以提示私有不私有,我是不加的
|
|
IcezersJan 8, 2018
2
成员变量前面加_ ,局部变量前面加 m,
有和我一样的吗? 然后写起兴来了就什么都不管了 |
|
3
加 m 是 AOSP 的规定: https://source.android.com/setup/code-style#follow-field-naming-conventions
如果你不是向 AOSP 提交代码的话,完全可以不加。 而且,这种做法几乎遭到多数人的反对, 更何况,google 自己的 java style guide 里都并不赞同这种做法。 所以我的建议是: 不加 |
|
quickmaJan 8, 2018
4
没有
|
|
pinoccJan 8, 2018
5
没有, 嫌烦
|
|
6
@hsuan 原来如此。这规定算是历史遗留问题吧。
|
|
7
@Icezers 团队开发还是要遵循一套标准的好,不然每个人风格迥异互看代码时那酸爽。
|
|
IcezersJan 8, 2018
8
@GuLuDaDuiZhang 没事 我定标准就行了 → →
|
|
oxoxoxoxJan 8, 2018
9
我们公司规定 C++的成员变量前面都要加上 m 不论是否是 private 虽然我们都不是写 android 代码的
我们公司大部分人都是使用 SublimeText 没有提示功能 命名上做好区分后更方便看代码 各种 style guide 也都是为了使代码更整洁 让大家更容易查看和分析 这个没有唯一的标准 |
|
10
@Icezers 大佬,跪拜
|
|
11
|
|
12
@GuLuDaDuiZhang 我的想法是成员变量加了_防止 IDE 代码提示的时候提示错,新人喜欢全部写成成员变量甚至静态变量,这样可以增加调用成本,防止出错。函数局部变量加 m,区分类名和变量名
|
|
IcezersJan 8, 2018
13
@GuLuDaDuiZhang 只是我自己的一点想法,不一定是对的
|
|
14
@oxoxoxox 确实,我看 c/c++开发者很多都是这种命名方式。
我真佩服你们写代码用文本编辑器,我用时没有提示写起来好难受。 嘛,我司主业不是开发,团队很年轻还没有技术骨干来引导,基本上大家都是各写各的。但我想写一手易看的代码,就只好自己给自己定规范。 |
|
15
@Icezers 加_原因居然是这个。我加 m 只是学着别人,区分类名和变量名没想到。说的有道理。
|
|
lihongjie0209Jan 8, 2018
16
不加. 除非你不用 IDE, 类似于文本编辑器只能用正则匹配来提示.
|
|
nicevarJan 8, 2018
17
写 c++的时候一定会加,要不然头疼,写 java 原来会加,现在不加了,主要是不利于跟 ide 配合
|
|
zachgeniusJan 8, 2018
18
习惯了用 m, 不加个标识符每次要多加一个 this.xxxxxx 很烦
|
|
muzikiJan 8, 2018 via iPhone
19
这种方式在 clean code 里不提倡
|
|
hyyou2010Jan 8, 2018
20
觉得没必要
|
|
dbddJan 8, 2018
21
没有
|
|
aristotllJan 8, 2018
22
这种做法基本等同说废话
可以和 interface 前面加 I 实现命名后面加 impl 并列 |
|
doubleflowerJan 8, 2018
23
觉得应该强制加 this. 前缀
|
|
SypherJan 8, 2018
25
加上的话,ide 会有个波浪线,不爽,不加
|
|
afproJan 9, 2018
26
m 开头应该是 member 的意思?我猜的。
我加 m 是为了不和 getter 方法重名 |
|
aminicJan 9, 2018 via Android
27
加了也不错,语义更明确
|
|
20015jjwJan 9, 2018 via Android
28
加
|
|
vjnjcJan 9, 2018
29
新项目的话大家商量一下定个规矩,
老项目的话看上下文的代码,尽量风格一致 |