V2EX 首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Android

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

  •  1
     
  •   GuLuDaDuiZhang · 8 天前 · 2418 次点击
    在谷歌 checks 规则里是不建变量用匈牙利命名法,但我看的 android 源码里私有变量几乎都是前缀加 m。

    前缀加 m 代码提示感觉稍顺一点,不过我初出茅庐用不用感觉也差不多。目前我的代码都是前缀加 m 表面类型,现在琢磨着要不要改过来,于是想了解一下有这种习惯的开发者多不多。
    29 回复  |  直到 2018-01-09 12:48:39 +08:00
        1
    neoblackcap   8 天前
    IDE 本身可以提示私有不私有,我是不加的
        2
    Icezers   8 天前
    成员变量前面加_ ,局部变量前面加 m,

    有和我一样的吗?



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

    代码整洁之道里面也推荐不加,说它是废话。
        25
    Sypher   8 天前
    加上的话,ide 会有个波浪线,不爽,不加
        26
    afpro   8 天前
    m 开头应该是 member 的意思?我猜的。
    我加 m 是为了不和 getter 方法重名
        27
    aminic   7 天前 via Android
    加了也不错,语义更明确
        28
    20015jjw   7 天前 via Android
        29
    vjnjc   7 天前
    新项目的话大家商量一下定个规矩,
    老项目的话看上下文的代码,尽量风格一致
    DigitalOcean
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   691 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.0 · 37ms · UTC 18:57 · PVG 02:57 · LAX 10:57 · JFK 13:57
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1