驼峰命名法有什么好处? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
nilai
V2EX    程序员

驼峰命名法有什么好处?

  •  
  •   nilai 2015-06-29 11:59:55 +08:00 14544 次点击
    这是一个创建于 3762 天前的主题,其中的信息可能已经有所发展或是发生改变。
    个人不是很喜欢,大小写切换 太麻烦了。 个人更喜欢下划线分割。欢迎大家讨论!
    62 条回复    2015-07-01 01:10:26 +08:00
    junyuecao
        1
    junyuecao  
       2015-06-29 12:02:25 +08:00   1
    按shift+_和shift + 字母有什么区别吗
    endrollex
        2
    endrollex  
       2015-06-29 12:03:40 +08:00   1
    下划线会多一个字符,越多变量名越长
    knightdf
        3
    knightdf  
       2015-06-29 12:05:18 +08:00
    变量名用下划线还好,类名搞个下划线分割的你用着不觉得恶心吗?驼峰看着干净整齐点。。。
    mogita
        4
    mogita  
       2015-06-29 12:06:39 +08:00 via iPhone   1
    打汉字还会多按空格,选择一个命名规范这件事暂时还烦不到楼主。
    FrankFang128
        5
    FrankFang128  
       2015-06-29 12:06:56 +08:00 via Android
    按shift啊,谁还用 Caps lock?
    CIVITAS
        6
    CIVITAS  
       2015-06-29 12:08:35 +08:00
    Basic 习惯,首字母也大写……
    TMily
        7
    TMily  
       2015-06-29 12:10:11 +08:00
    楼猪不知道按Shift会出大写 鉴定完毕。。。
    awebird
        8
    awebird  
       2015-06-29 12:17:46 +08:00 via Android
    从mysql字段赋值转来转去比较恼火…
    broadliyn
        9
    broadliyn  
       2015-06-29 12:24:03 +08:00   7
    警告:严重要求楼主修改头像,不然直接block
    imswing
        10
    imswing  
       2015-06-29 12:25:23 +08:00 via Android
    @broadliyn 哈哈哈哈
    ericls
        11
    ericls  
       2015-06-29 12:27:24 +08:00
    不喜欢 不直接!
    66beta
        12
    66beta  
       2015-06-29 12:27:42 +08:00   1
    PHP类/方法下划线,JS函数驼峰,CSS类名中划线,图片名下划线
    觉得自己精神分裂了。。。
    imn1
        13
    imn1  
       2015-06-29 12:32:04 +08:00
    每次看这个头像都有拍打屏幕的冲动~
    yangff
        14
    yangff  
       2015-06-29 12:33:14 +08:00
    比较看环境吧, 和@66beta 挺像的...
    victorylau808
        15
    victorylau808  
       2015-06-29 12:40:51 +08:00
    下划线也不是得按shift键。。。
    mhycy
        16
    mhycy  
       2015-06-29 12:42:03 +08:00
    减少一些长度。。
    对我而言按CapsLock远比Shift简单快捷。。。
    9hills
        17
    9hills  
       2015-06-29 13:08:57 +08:00
    好看,不过我喜欢首字母小写的

    enablePanic,感觉挺漂亮。。

    enable_panic 丑
    otakustay
        18
    otakustay  
       2015-06-29 13:26:53 +08:00
    @9hills 无论是camel还是pascal总会有些单词不漂亮,我还特地为此研究了研究单词的outline给人的感觉

    比如xxxId这种就不怎么好看而xxxName就明显要好看一些……但总得来说camel的起伏感确实是最好的,特别是2个单词(xxxName这种)很符合男人最喜欢的胸部的曲线- -
    Pastsong
        19
    Pastsong  
       2015-06-29 13:29:31 +08:00
    学Objective-C的时候看到那一长串的驼峰方法名都要晕了
    9hills
        20
    9hills  
       2015-06-29 13:33:07 +08:00
    @Pastsong
    两个单词是最合适的,4个单词是上限。否则美感全没了
    w88975
        21
    w88975  
       2015-06-29 14:17:30 +08:00
    个人觉得_LOUZHU_SHABI 这种命名法逼格超高 看着就跟系统级API一样..
    sudoz
        22
    sudoz  
       2015-06-29 14:19:12 +08:00
    遵从语言的社区风格
    visonme
        23
    visonme  
       2015-06-29 14:35:35 +08:00
    只是一种命名方式而已,不要太在乎那种nice那种不nice了 ,自己喜欢那种就用那种了,两种基本都不用的人飘过 ,反正人家能直观的看出我的命名就可以了
    visonme
        24
    visonme  
       2015-06-29 14:36:51 +08:00
    但如果你的项目是协作项目或者社区项目那就有必要根据事先的规范走了
    TianTao
        25
    TianTao  
       2015-06-29 14:40:00 +08:00
    写js的时候常用下划线
    blue7wings
        26
    blue7wings  
       2015-06-29 15:38:13 +08:00
    我函数喜欢用驼峰,变量喜欢用下划线,这样是不是不好?
    DaniloSam
        27
    DaniloSam  
       2015-06-29 15:40:34 +08:00
    由于头像太闹心,把LZ给block了
    zachgenius
        28
    zachgenius  
       2015-06-29 15:50:15 +08:00
    真想把LZ给B掉,头像太闹心
    nullcc
        29
    nullcc  
       2015-06-29 15:56:21 +08:00
    Obj-C的惯用命名法可以说几乎把驼峰法发挥到了极致,刚开始可能会不适应,时间久了以后你会发现其实还是很带感的。
    digimoon
        30
    digimoon  
       2015-06-29 16:26:33 +08:00
    喜欢下划线,可读性好很多
    xiHuanXiaHuaXian,keDuXingHaoHenDuo
    moe3000
        31
    moe3000  
       2015-06-29 16:33:10 +08:00
    我是来看头像的
    WildCat
        32
    WildCat  
       2015-06-29 16:52:14 +08:00 via iPhone
    明显是遵从语言的惯例,你 Python Ruby 里面全用驼峰法会被喷的吧
    CRight
        33
    CRight  
       2015-06-29 16:53:48 +08:00 via iPad
    你这头像…我真擦了一下屏幕。
    dallaslu
        34
    dallaslu  
       2015-06-29 17:03:29 +08:00
    都是浮云。「驼峰命名」与「下划线分割」可以很方便的转换。
    abscon
        35
    abscon  
       2015-06-29 17:11:06 +08:00
    @digimoon

    xi_huan->xia_hua_xian+ke_du_xing->hao_hen_duo

    xiHuan->xiaHuaXian+keDuXing->haoHenDuo

    驼峰命名法胜出
    EPr2hh6LADQWqRVH
        36
    EPr2hh6LADQWqRVH  
       2015-06-29 17:13:23 +08:00 via iPhone
    世界上还是有一些东西,是不区分大小写的
    xifangczy
        37
    xifangczy  
       2015-06-29 17:15:36 +08:00
    如果是你一个人写什么方法都无所谓,统一就好。最怕那种服务端用一套 前端的人用另一套命名方法。要疯。
    roychan
        38
    roychan  
       2015-06-29 18:30:06 +08:00
    类大驼峰,函数方法下划线,变量小驼峰…
    Gonster
        39
    Gonster  
       2015-06-29 18:43:35 +08:00 via iPhone
    有些专有名词和缩写本身就是大写的,这时候写在驼峰命名的变量和方法名里会让我很纠结
    bdbai
        40
    bdbai  
       2015-06-29 18:47:37 +08:00 via iPhone
    @WildCat 弱问Python啥习惯?
    neoblackcap
        41
    neoblackcap  
       2015-06-29 18:55:32 +08:00
    @bdbai pep8
    jsq2627
        42
    jsq2627  
       2015-06-29 19:04:03 +08:00
    看看易语言,人家才不纠结这个呢(逃
    ooh
        43
    ooh  
       2015-06-29 19:11:14 +08:00
    好处就是不用纠结
    digimoon
        44
    digimoon  
       2015-06-29 19:31:58 +08:00
    @abscon
    识别率太低不能一眼就认出是单词还是乱打,在平面设计里面这种密度大的一条状文字或图形因为可读性低,所以多是当作一个图形块来处理
    fengyqf
        45
    fengyqf  
       2015-06-29 19:34:27 +08:00
    头像太闹心。。。。
    digimoon
        46
    digimoon  
       2015-06-29 19:40:00 +08:00
    @abscon
    大写字母识别率也比小写的高,我再看了一眼自己打的那串只看到XXHXD这样的标识,不能很快地定义出这串究竟是拼音还是英文还是乱打的字符
    用下划线隔开后很容易就能结合上平时的拼音在头脑中作出处理,因为都是2、3、4这样的字母数量词组,如果数量差距再大点那么大脑就很容易将他作为英文词组来处理,所以识别率很高
    happynohi
        47
    happynohi  
       2015-06-29 20:50:17 +08:00
    喜欢驼峰是因为省字数,但单词很多的时候还是下划线或者中划线更好些。
    遵守社区习惯更重要。
    NovemberEleven
        48
    NovemberEleven  
       2015-06-29 23:08:26 +08:00
    @FrankFang128 我用。。。是不是好low?
    gemini
        49
    gemini  
       2015-06-29 23:26:53 +08:00
    没_有_下_划_线_不_开_心_呀_ ^_^
    abscon
        50
    abscon  
       2015-06-29 23:52:22 +08:00 via iPhone
    @digimoon 不觉得下划线和操作符更类似么,我更关注整体结构上的清晰。密度更大的驼峰变量反而更好看,而且母语是汉语的我表示分词无压力…
    Rocko
        51
    Rocko  
       2015-06-29 23:55:26 +08:00
    我觉得驼峰面向对象,有人有这感觉没~~~
    iyaozhen
        52
    iyaozhen  
       2015-06-30 00:44:41 +08:00
    习惯小驼峰。xiaoTuoFeng
    因为下划线会使得变量很长。

    类的方法名也用驼峰。不过面向过程的时候函数用下划线。function get_user_name()
    liubiantao
        53
    liubiantao  
       2015-06-30 02:29:50 +08:00
    @junyuecao 有区别啊,驼峰只要按两个键,一次搞定,下划线需要按三个键,两次才能搞定。LZ 简直自己打脸。
    cutepig49
        54
    cutepig49  
       2015-06-30 06:38:15 +08:00
    各有各的好处,这更多是个信仰问题,就好象左花括号要不要另起一行一样。
    我喜欢跟着标准库的写法走,标准库是什么写法我就是什么写法,这会让我有一种觉得我的代码与标准库水乳交融不分彼此的欣快感。
    timi
        55
    timi  
       2015-06-30 08:57:50 +08:00
    不喜欢下划线。。。
    along
        56
    along  
       2015-06-30 09:41:27 +08:00
    月经贴。假定完毕!
    PS:其实不管你是用 驼峰命名也好,帕斯卡命名也好,匈牙利命名法也罢,本质没多大区别,无非是为了让你的搭档们或者是继承者们看代码不像看大海……而已,团队约定好了就好……
    话说主张某个命名法,会暴漏常用平台,和启蒙语言的……好像也没什么好暴漏的……
    wizardoz
        57
    wizardoz  
       2015-06-30 09:59:57 +08:00
    习惯问题,Windows的编程和C++大多喜欢驼峰。Linux的编程和C大多喜欢下划线。
    说那种好那种不好都太主观了!
    rundis
        58
    rundis  
       2015-06-30 10:13:39 +08:00 via iPhone
    变量用匈牙利,类名驼峰
    junyuecao
        59
    junyuecao  
       2015-06-30 12:48:02 +08:00
    @liubiantao 为什么下划线需要三个键呢?
    cys
        60
    cys  
       2015-06-30 15:30:33 +08:00
    module_name, package_name, ClassName, method_name, ExceptionName, function_name, GLOBAL_CONSTANT_NAME, global_var_name, instance_var_name, function_parameter_name, local_var_name.
    hitsmaxft
        61
    hitsmaxft  
       2015-06-30 22:10:36 +08:00
    我习惯 function 用下划线,method 或者 property 之类等等其他都用驼峰,主要是加了个下划线现在觉得有点冗长
    liubiantao
        62
    liubiantao  
       2015-07-01 01:10:26 +08:00
    @junyuecao 我的意思不是下划线本身要三个键,还是举个例子吧。
    比如 appleBanana 和 apple_banana,我比较的是 「B」 和「_b」,这样比才公平嘛。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     925 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 19:54 PVG 03:54 LAX 12:54 JFK 15:54
    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