V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
jiankangxin
V2EX  ›  问与答

如何让自己的变量命名更优雅

  •  
  •   jiankangxin · 2014-12-11 14:02:19 +08:00 · 6154 次点击
    这是一个创建于 3637 天前的主题,其中的信息可能已经有所发展或是发生改变。
    总是写不了一些优雅的代码,个人总是感觉 变量命名是个大坑 谁有相关资料,求分享呀

    方向重点是python
    52 条回复    2018-08-08 00:51:57 +08:00
    jamesxu
        1
    jamesxu  
       2014-12-11 14:10:37 +08:00   ❤️ 1
    学好英文
    invsbelephant
        2
    invsbelephant  
       2014-12-11 14:14:07 +08:00
    个人坚持一种风格就行了吧,我是习惯骆驼。
    liyaoxinchifan
        3
    liyaoxinchifan  
       2014-12-11 14:14:23 +08:00
    写代码时打开《英文常用名大全》~~
    MeirLin
        4
    MeirLin  
       2014-12-11 14:16:47 +08:00
    看过一人代码,喜欢用百家姓来命名 -。-
    chmlai
        5
    chmlai  
       2014-12-11 14:18:28 +08:00
    用拼音吧
    baichi
        6
    baichi  
       2014-12-11 14:18:32 +08:00
    苹果鸭梨橘子香蕉……老虎狮子小猫小狗……
    mornlight
        7
    mornlight  
       2014-12-11 14:20:55 +08:00
    有些名称我不知道英文名,就随手打开有道词典找找翻译。一般都使名字易懂,长度可以不简洁。
    mhycy
        8
    mhycy  
       2014-12-11 14:21:02 +08:00
    @liyaoxinchifan
    @MeirLin
    @chmlai
    @baichi
    要坑了维护者么...
    USCONAN
        9
    USCONAN  
       2014-12-11 14:24:32 +08:00
    utor lingua latīna dē liber。
    Tink
        10
    Tink  
       2014-12-11 14:24:57 +08:00
    拼音
    ffffwh
        11
    ffffwh  
       2014-12-11 14:27:21 +08:00
    大型Python IDE如PyCharm对重构之重命名支持程度如何?很靠谱/还是关系一复杂就要人工干预?
    zhouquanbest
        12
    zhouquanbest  
       2014-12-11 14:32:34 +08:00
    比如Exception部分加女友名前缀?
    typcn
        13
    typcn  
       2014-12-11 14:39:05 +08:00
    拼音+英文混合

    XiaZaiFiles

    取首字母

    XZF

    哈哈哈哈
    tabris17
        14
    tabris17  
       2014-12-11 14:40:29 +08:00
    用蔬菜水果命名
    xjliao
        15
    xjliao  
       2014-12-11 14:41:40 +08:00
    真的 看过一个公司的 不管类名 变量名 方法名 都用拼音或者拼音的缩写
    zachgenius
        16
    zachgenius  
       2014-12-11 14:48:04 +08:00   ❤️ 2
    学好英文,以OC的风格,把方法名,变量名,类名写成句子。我就这么干的。大部分方法名没少于20个字符,几乎完全不用注释
    roychan
        17
    roychan  
       2014-12-11 14:49:53 +08:00
    拉丁文
    staticor
        18
    staticor  
       2014-12-11 14:50:55 +08:00
    learn_some_english_make_better_life = 1.0

    vs

    LearnSomeEnglishMakeBetterLife = 1.0

    vs

    haohaoxuexitiantianxiangshang = 1.0

    vs

    a = 1.0 ; kanbudongbazhejiuduile = 1.0

    看自己喜欢哪个?
    24
        19
    24  
       2014-12-11 14:56:11 +08:00
    代码大全 第十一章,专门讲这个的。
    kobe1941
        20
    kobe1941  
       2014-12-11 14:56:19 +08:00
    Google翻译
    Esay
        21
    Esay  
       2014-12-11 15:02:02 +08:00
    推荐个薄薄的小册子——《编写可读代码的艺术》
    jacob
        22
    jacob  
       2014-12-11 15:04:20 +08:00
    foo,bar,baz,qux,titi,tata,xyzzy,garply,
    mjar
        24
    mjar  
       2014-12-11 15:15:12 +08:00
    把编辑器字体改成“静蕾体”就会优雅很多了。
    after1990s
        25
    after1990s  
       2014-12-11 15:25:52 +08:00   ❤️ 1
    const int iFive = 4;
    happywowwow
        26
    happywowwow  
       2014-12-11 15:28:29 +08:00
    elegant_args = 1
    more_elegant_args = 2
    more_and_more_elegant_args = 3
    supergrubby
        27
    supergrubby  
       2014-12-11 15:38:05 +08:00
    use ubiquitous language
    keniusahdu
        28
    keniusahdu  
       2014-12-11 15:43:18 +08:00
    @after1990s five=4 够狠!
    lsmgeb89
        29
    lsmgeb89  
       2014-12-11 15:45:03 +08:00
    You may read and study the google style guide which includes several mainstream programming languages, and eventually form your own style in your project.

    https://code.google.com/p/google-styleguide/
    yopming
        30
    yopming  
       2014-12-11 16:00:28 +08:00
    看来我还是太仁慈了
    我只是找了些精灵语昆雅字母来替代first second A B之类的
    Kilerd
        31
    Kilerd  
       2014-12-11 16:08:58 +08:00 via Android
    int num => int iNum
    char string => cString

    这种命名方法好像有名字的,好像挺出名的。
    lifanxi
        32
    lifanxi  
       2014-12-11 16:25:54 +08:00
    @Kilerd 这叫匈牙利命名法,以前在Windows下比较常用。
    qianlifeng
        33
    qianlifeng  
       2014-12-11 16:29:42 +08:00
    1. 尽量使用该语言的惯用命名法
    2. 命名一定要跟相关且容易理解。方法一般动词开头,变量一般名词
    caoyue
        34
    caoyue  
       2014-12-11 16:29:52 +08:00   ❤️ 3
    不要怕名字长
    比如:
    com.sun.java.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowNotFocusedState
    pi1ot
        35
    pi1ot  
       2014-12-11 16:31:39 +08:00
    多看看gnu风格的常用缩写
    zhuzhichao
        36
    zhuzhichao  
       2014-12-11 17:11:15 +08:00
    tiānQì xìngBíe niánLìng dìQū chángDù
    BGLL
        37
    BGLL  
       2014-12-11 17:44:51 +08:00
    学好拼音
    Kilerd
        38
    Kilerd  
       2014-12-11 19:05:04 +08:00 via Android
    @lifanxi 个人觉得这种方法不错,特别是在需要定义变量类型的语言中。
    lifanxi
        39
    lifanxi  
       2014-12-11 19:17:35 +08:00 via Android
    @Kilerd 有优点也有缺点。缺点包括但不限于:重构代码改数据类型时还得跟着改变量名。抽象类型会造成程序员造出各种各样五花八门的变量名前缀。
    Kilerd
        40
    Kilerd  
       2014-12-11 19:20:48 +08:00
    @lifanxi 也是,不過這種東西就看個人是否喜愛了。
    gno23x
        41
    gno23x  
       2014-12-11 19:32:07 +08:00
    @pi1ot 请问你这个是指看代码吗?还是有相关规范?
    loading
        42
    loading  
       2014-12-11 21:37:20 +08:00 via Android
    把a1命名为:YouYa_a1
    wezzard
        43
    wezzard  
       2014-12-11 22:22:13 +08:00
    let aNumberi: Int = 1
    let aNumberf: Double = 1.0

    後面的i和f是跟 OpenGL 學的。
    guokwei
        44
    guokwei  
       2014-12-11 23:03:46 +08:00
    如果实在没有好的名字,那就尽可能把变量名写的清楚点,就是“什么的按钮”、“做什么的集合”,等等,可读性很好,或许下次读到瞬间就会有一个好名字浮现,但是如果不知道这个变量的命名是什么意思的时候就费脑筋了,长名字变短容易,读明白才是首要。希望有用。
    tinymao
        45
    tinymao  
       2014-12-12 00:35:13 +08:00 via iPad
    接手一个项目里面有个 PdUtils,刚才恍然大悟,前面那孙子名字缩写 pd。
    ChanneW
        46
    ChanneW  
       2014-12-12 00:40:20 +08:00
    雇个秘书专门起名字
    Tink
        47
    Tink  
       2014-12-12 00:46:47 +08:00
    @tinymao 笑尿了
    tuimaochang
        48
    tuimaochang  
       2014-12-12 02:17:27 +08:00
    youya_cupListCount
    yeelone
        49
    yeelone  
       2014-12-12 07:00:00 +08:00
    最近被单位叫去研究一个人事软件,我一看就傻了,数据库字段名都是拼音首字母组成。猜也猜不透
    anytk
        50
    anytk  
       2014-12-12 10:00:34 +08:00
    看一些比较好的库的API命名,资料可以看PEP7、PEP8,Ruby源码命名、Lua源码命名,libSDL的命令也很不错,gtk命名规范也可以参考
    thedevil5032
        51
    thedevil5032  
       2014-12-12 11:03:45 +08:00
    Clean Code, Chapter 2. Meaningful Names
    xuanwu
        52
    xuanwu  
       2018-08-08 00:51:57 +08:00
    Python3 的话可以考虑中文命名, 如: https://zhuanlan.zhihu.com/p/34386229
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3374 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 12:01 · PVG 20:01 · LAX 04:01 · JFK 07:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.