首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
iOS 开发实用书单
iPhone App Development: The Missing Manual
Cocoa and Objective-C: Up and Running
Cocoa Programming for Mac OS X
深入浅出设计模式 Head First Design Patterns
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
V2EX  ›  iDev

变量名起名缩写的习惯

  •  
  •   Joyreece · 253 天前 · 2974 次点击
    这是一个创建于 253 天前的主题,其中的信息可能已经有所发展或是发生改变。
    算是个日经话题吧,请问前辈们,你们在起变量名的时候会把 View Controller 所写成 VC (例如:resetPasswordVC = xxx )、Text Field 所写成 TF (例如:articleTitleTF = xxx )的这种形式么?

    我纠结的在于想保持代码的可读性和简洁干净,但是在实例化一些类的时候起名有的时候犹豫不决是写成 VC 这种缩写还是写全了。参考过原声 SDK 一些头文件露出来的方法,看苹果也是有的直接写成 viewController 也有是 vc。

    所以想看看哪种风格更好一些呢?
    36 回复  |  直到 2017-10-19 18:11:03 +08:00
        1
    linxl   253 天前
    我是尽量不用缩写, 可读性在我这里排第一位.
        2
    Immortal   253 天前
    能缩就缩 但是不能影响可读 ViewController 缩成 VC 就太过分了...这种情况不如不缩
        3
    sudoz   253 天前   ♥ 3
    约定俗成的可以写,我不喜欢太长的变量名或方法名
    比如 message -> msg, result -> res,context-> ctx
        4
    TuringGunner   253 天前
    你这缩的都认不出是什么了

    缩写不能影响理解
        5
    laoyur   253 天前
    VC 党路过,但对 TF 的缩写感觉无法认同,要缩也是在合理范围内缩。
        6
    Vitta   252 天前   ♥ 1
    ViewController 一般我是写 VC, 类的话写 ViewController
    textField 个人不写 TF, 每次想写 TF 的时候就老想起来钩子
        7
    xiaoc19   252 天前 via iPhone
    从不缩写,代码写来看的,看起来像读一篇文章的感觉挺好
        8
    flyingghost   252 天前   ♥ 5
    开发圈有哪些约定俗成的常见缩写?

    req = request
    resp = response
    res = resource
    app = application
    auth = authorization/authentication 这点非常不认可,同一个常见缩写居然能代表两个不同的词。
    dev = develop
    env = environment
    db = database
    pkg = package
    svr = server
    i18n = internationalization
    cert = certificate
    msg = message
    addr = address
    tmp/temp = temporary
    var/def = variable/define 其实 var/def 已经是很多语言的关键字了
    calc = calculate/calculation
    src = source
    dest = destination
    min/max = minimum/maximum 应该已经不算了吧。。。
    doc = document
    dir = directory


    foo/bar = 不知道该起什么名字好


    未完待续。
        9
    noe132   252 天前 via Android
    缩写干嘛。。反正不都是按几个键 tab 一下就出来了,为什么要降低可读性
        10
    gclove   252 天前
    必须缩写啊, 缩写可以提高可读性, 看起来更加简洁

    而且, 一般的缩写都是大家约定的, 比如 res, req, resp, db
        11
    Joyreece   252 天前
    看了楼上前辈们的观点,个人决定还是写全了。
    之前又顾虑是因为想尽量保持单行不超过 120 个字符,但是某些情况下 ViewController 和 TextField 的变量名字会越来越长,特蛋疼~
        12
    newtype0092   252 天前
    @sudoz 为什么我碰见的都是 ret->result, res->resource ...
        13
    linus3389   252 天前
    缩啥啊,自动补完这么强大....
        14
    blackfire   252 天前
    我一般看变量长度,尽量保持可读性,如果前边的比较长一串才能描述完整,一般会缩写 VC,尽量不去缩写 TF。特别长的都会缩写,如果比较短就不缩写
    ——是的,我是混着用的。

    感觉不降低阅读性,没啥歧义,我是赞成缩写的
        15
    Lucups   252 天前
    缩写是有规则的,据我观察,至少有以下 3 种:

    一种是取开头几个(一般是 3、4 个)字母的,如 binary => bin, application => app,resource => res,楼上有很多例子
    一种是去掉元音字母的,如 source => src, message => msg, text => txt 等等
    还有一些是约定俗成的,如 internationalization => i18n, database => db 等等

    感谢 @flyingghost 提供的例子~

    欢迎补充~
        16
    RorschachZZZ   252 天前
    很少缩写。看懂为主,简洁为辅。
        17
    cigarzh   252 天前 via Android
    viewCtrl
        18
    fy   252 天前
    @sudoz result -> ret 这才是约定俗成吧
        19
    AngelCriss   252 天前 via Android
    @newtype0092 resource 不是 rsc 吗
        20
    AngelCriss   252 天前 via Android
    @fy ret 是 return 啊
        21
    geelaw   252 天前 via iPhone
    @fy
    @newtype0092

    ret = return (value)
        22
    fy   252 天前
    @AngelCriss
    @geelaw

    哦对啊 ret 是 return。

    不过这个变量使用场景和 result 基本相同就是了。
        23
    ssynhtn   252 天前 via Android   ♥ 1
    我越是局部的代码越用缩写,类的成员变量用完整的单词
        24
    alexgor   252 天前 via Android
    额……驼峰啊
        25
    ExploreWay   252 天前
    我觉得大家说的很好,这个变量命名一定要讲究可读性。上面提到的一些约定熟成的东西,是可以写缩写的,当然你也可以选择全写。(注:本人平时也没有注意这个问题,缩写的比较严重,今后也要多注意这个问题)
        26
    carlclone   252 天前 via Android
    什么年代了还缩写,自动完成一个 tab 的事情,以前没有还能理解
        27
    Sapp   252 天前
    如果大家都理解,就缩写,比如 xxxBtn、el、msg、req、res 否则还是写全。
        28
    dsg001   252 天前   ♥ 1
    遵循一个原则,变量范围越大变量名越长
        29
    mcfog   252 天前
    一个是看 scope,另一个是看是否 ambiguous,比如 ret res 这种坚决不缩写

    result response resource return 傻傻分不清楚
        30
    gamexg   252 天前 via Android
    跟 go 标准库学的,短函数内部变量敢用单字母变量名。
    对外的就继续长变量名。
        31
    beimenjun   252 天前   ♥ 1
    既然你发在 iDev 节点里,个人认为,ViewController 缩写成 VC,在 iOS 这个部分是一种很常见的写法,至于你说的 TF,就太偏了。

    既然常见到可以约定俗成的,又不是啥洪水猛兽,为啥不选择缩写呢?
        32
    Meli55a   252 天前
    @flyingghost @ssynhtn @beimenjun 认同,我很推崇规范的东西,看着舒服,很不喜欢取名随意的代码,看着难受,已经都有点偏激了
        33
    newtype0092   249 天前
    @AngelCriss 我是做客户端的,很多模版工程里都有 src(source)和 res(resource),从没有见过 rsc,这个和 src 放在一起一看就懵逼了吧。。。ret 确实也可以看作 return,不过 return 和 result 其实没啥区别,return 的当然就是 result 了~
        34
    shawndev   240 天前
    除非类名会长到 xcode 左侧文件导航栏折叠内容否则不缩写,变量名不缩写,可以看一下代码整洁之道。
        35
    iwpz   225 天前
    ProfileViewController *pvc = [[ProfileViewController alloc] init];
    [nav pushvc:pvc];

    对 vc 的调用不就只有 push pop 那么几行吗,挨着很近,都能看见。
    所以我是这么写的。

    ShopViewController *svc
    MainViewController *mvc
        36
    Obelly   218 天前
    短函数内(<20 行),爱怎么来怎么来,ijklnm 单字母都没人管,暴露接口,怎么长怎么来……
    话说一定要把类型带到命名里面么?
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   1805 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 17ms · UTC 06:28 · PVG 14:28 · LAX 23:28 · JFK 02:28
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1