想问下大家工作中有没有私有成员变量前缀加 m 的习惯

2018-01-08 11:00:53 +08:00
 GuLuDaDuiZhang
在谷歌 checks 规则里是不建变量用匈牙利命名法,但我看的 android 源码里私有变量几乎都是前缀加 m。

前缀加 m 代码提示感觉稍顺一点,不过我初出茅庐用不用感觉也差不多。目前我的代码都是前缀加 m 表面类型,现在琢磨着要不要改过来,于是想了解一下有这种习惯的开发者多不多。
13626 次点击
所在节点    Android
29 条回复
neoblackcap
2018-01-08 11:05:53 +08:00
IDE 本身可以提示私有不私有,我是不加的
Icezers
2018-01-08 11:11:10 +08:00
成员变量前面加_ ,局部变量前面加 m,

有和我一样的吗?



然后写起兴来了就什么都不管了
hsuan
2018-01-08 11:17:52 +08:00
加 m 是 AOSP 的规定: https://source.android.com/setup/code-style#follow-field-naming-conventions
如果你不是向 AOSP 提交代码的话,完全可以不加。
而且,这种做法几乎遭到多数人的反对, 更何况,google 自己的 java style guide 里都并不赞同这种做法。
所以我的建议是: 不加
x7395759
2018-01-08 11:25:06 +08:00
没有
pinocc
2018-01-08 11:26:05 +08:00
没有, 嫌烦
GuLuDaDuiZhang
2018-01-08 11:26:35 +08:00
@hsuan 原来如此。这规定算是历史遗留问题吧。
GuLuDaDuiZhang
2018-01-08 11:28:55 +08:00
@Icezers 团队开发还是要遵循一套标准的好,不然每个人风格迥异互看代码时那酸爽。
Icezers
2018-01-08 11:29:39 +08:00
@GuLuDaDuiZhang 没事 我定标准就行了 → →
oxoxoxox
2018-01-08 11:29:54 +08:00
我们公司规定 C++的成员变量前面都要加上 m 不论是否是 private 虽然我们都不是写 android 代码的
我们公司大部分人都是使用 SublimeText 没有提示功能 命名上做好区分后更方便看代码
各种 style guide 也都是为了使代码更整洁 让大家更容易查看和分析 这个没有唯一的标准
GuLuDaDuiZhang
2018-01-08 11:30:55 +08:00
@Icezers 大佬,跪拜
zhaohui318
2018-01-08 11:34:35 +08:00
Icezers
2018-01-08 11:35:45 +08:00
@GuLuDaDuiZhang 我的想法是成员变量加了_防止 IDE 代码提示的时候提示错,新人喜欢全部写成成员变量甚至静态变量,这样可以增加调用成本,防止出错。函数局部变量加 m,区分类名和变量名
Icezers
2018-01-08 11:36:15 +08:00
@GuLuDaDuiZhang 只是我自己的一点想法,不一定是对的
GuLuDaDuiZhang
2018-01-08 11:49:49 +08:00
@oxoxoxox 确实,我看 c/c++开发者很多都是这种命名方式。
我真佩服你们写代码用文本编辑器,我用时没有提示写起来好难受。
嘛,我司主业不是开发,团队很年轻还没有技术骨干来引导,基本上大家都是各写各的。但我想写一手易看的代码,就只好自己给自己定规范。
GuLuDaDuiZhang
2018-01-08 11:57:53 +08:00
@Icezers 加_原因居然是这个。我加 m 只是学着别人,区分类名和变量名没想到。说的有道理。
lihongjie0209
2018-01-08 11:59:56 +08:00
不加. 除非你不用 IDE, 类似于文本编辑器只能用正则匹配来提示.
nicevar
2018-01-08 12:01:06 +08:00
写 c++的时候一定会加,要不然头疼,写 java 原来会加,现在不加了,主要是不利于跟 ide 配合
zachgenius
2018-01-08 12:01:19 +08:00
习惯了用 m, 不加个标识符每次要多加一个 this.xxxxxx 很烦
muziki
2018-01-08 12:02:31 +08:00
这种方式在 clean code 里不提倡
hyyou2010
2018-01-08 13:28:20 +08:00
觉得没必要

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

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

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

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

© 2021 V2EX