如何让自己的变量命名更优雅 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jiankangxin
V2EX    问与答

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

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

    方向重点是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  
    PRO
       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  
    PRO
       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     Solana     1039 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 18:35 PVG 02:35 LAX 11:35 JFK 14:35
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86