你们会不会在同一个程序中用两种代码风格,我好分裂 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
refresh
V2EX    程序员

你们会不会在同一个程序中用两种代码风格,我好分裂

  •  
  •   refresh 2014-04-26 13:59:05 +08:00 7073 次点击
    这是一个创建于 4193 天前的主题,其中的信息可能已经有所发展或是发生改变。
    主要是命名,有时候我用firstName,可有时候突然又觉得first_name好,就这样,一个程序有两种命名风格了。
    51 条回复    2014-04-29 17:36:58 +08:00
    notcome
        1
    notcome  
       2014-04-26 14:03:59 +08:00
    我也一样诶好分裂……
    最近突然爱上了下划线风格但是在用 Node.js
    fityme
        2
    fityme  
       2014-04-26 14:13:45 +08:00
    中枪。
    不过现在已经完全改成下划线风格了。
    wickila
        3
    wickila  
       2014-04-26 14:16:01 +08:00
    在几种语言中不停切换到时候会.比如java,python,js之间就会这样.不过不要在意这种细节:)
    refresh
        4
    refresh  
    OP
       2014-04-26 14:17:09 +08:00
    @fityme
    @notcome

    我靠,原来不只是我一个人分裂,有时候会受到一些项目的影响,我在数据库命名的时候,喜欢用下划线,然后又把这个习惯带到代码中,js以前一直是用小驼峰的,为了跟数据库的字段匹配,又想改为下划线,看着好纠结
    snowhs
        5
    snowhs  
       2014-04-26 14:17:33 +08:00
    鼓起勇气适应一下就好啦。我们现在不就挺好的~
    refresh
        6
    refresh  
    OP
       2014-04-26 14:17:58 +08:00
    @wickila 主要是看着不爽,就想统一风格,强迫症是一种病,得治
    dong3580
        7
    dong3580  
       2014-04-26 14:18:32 +08:00
    一般情况,我变量名都会第一个字母小写,第二个单词首字母大写:firstName;
    方法名:FirstName
    在js里面这种请看不复存在,有时候大写有时候全小写。
    refresh
        8
    refresh  
    OP
       2014-04-26 14:20:46 +08:00
    @dong3580 node.js中,我FirstName一般是类名,全大小表示全局,_name表示require的,我准备在mongodb中用小驼峰算了。
    jakwings
        9
    jakwings  
       2014-04-26 14:25:09 +08:00
    反正全局变量一定要有它的特点。
    ericls
        10
    ericls  
       2014-04-26 14:32:08 +08:00 via Android
    自己是全部用的underscore 但是发现django里面有render_to_response HttpResponse HttpResponseRedirect
    SErHo
        11
    SErHo  
       2014-04-26 14:40:54 +08:00
    @ericls 类名和函数、变量名是不同的风格。
    Ever
        12
    Ever  
       2014-04-26 14:42:50 +08:00
    @ericls django那个正常, render_to_response是函数, HttpResponse和HttpResponseRedirect是类名, python程序一般都是这种风格。
    S1ahs3r
        13
    S1ahs3r  
       2014-04-26 15:06:08 +08:00
    hitsmaxft
        14
    hitsmaxft  
       2014-04-26 15:22:37 +08:00
    我觉得一般会考虑组件的组织和业务流程是否合理, 代码风格这种都是小事情, 跟结果无关, 也就是, 别浪费时间
    konakona
        15
    konakona  
       2014-04-26 15:24:10 +08:00
    偶尔会,这是因为不同电脑上的IDE的配置不同。
    lazyphp
        16
    lazyphp  
       2014-04-26 15:35:35 +08:00
    alt + shift +f 风格再也不分裂。
    lazyphp
        17
    lazyphp  
       2014-04-26 15:36:55 +08:00
    原来命名风格。没看内容。哈哈~~
    这个问题。习惯就好了。反正IDE会帮你读取,只要不是太凌乱,几乎不会有太大问题的。、
    kodango
        18
    kodango  
       2014-04-26 15:43:11 +08:00
    会有,比如不同的语言,python 我喜欢用 unix 风格的下划线,Javascript 就用驼峰风格。有时候改写现有的代码,一把也是忍着适合已有的风格。
    ericls
        19
    ericls  
       2014-04-26 16:18:25 +08:00
    @SErHo

    @Ever

    长姿势了。。
    因为平时都是像函数一样调用 所以没注意
    chmlai
        20
    chmlai  
       2014-04-26 16:19:01 +08:00
    最起码同一份文件要保持一种风格吧
    xx314327475
        21
    xx314327475  
       2014-04-26 16:35:40 +08:00
    @chmlai 我也是这么认为
    sethverlo
        22
    sethverlo  
       2014-04-26 16:40:34 +08:00
    我就 'foo' 和 "foo" 会混着用…
    robertlyc
        23
    robertlyc  
       2014-04-26 16:53:29 +08:00
    ruby风格
    jsonline
        24
    jsonline  
       2014-04-26 17:01:07 +08:00
    JSHint + Grunt
    lyragosa
        25
    lyragosa  
       2014-04-26 17:07:44 +08:00
    php习惯下划线取名

    js随便乱用
    thanksir
        26
    thanksir  
       2014-04-26 17:19:09 +08:00
    以前还英文加拼音,我更分裂,后来改了
    missdeer
        27
    missdeer  
       2014-04-26 19:45:36 +08:00
    C++用户表示随便引入2个第三方库就会引入2种代码风格。。。
    baocaixiong
        28
    baocaixiong  
       2014-04-26 19:57:49 +08:00 via Android
    以前写php,都是驼峰的,后来写python,为了不让pycharm有波浪线,我开始写下划线,但是python项目里面都是以前程序员的驼峰,然后各种不协调开始了。。直到现在,一边写php一边写python,直要疯了。唉。
    evererr
        29
    evererr  
       2014-04-26 20:04:33 +08:00
    这不是强迫症。。。是你连命名都还没能力统一。。。loser...
    scarlex
        30
    scarlex  
       2014-04-26 20:23:47 +08:00
    我看别人的开源项目的时候也会遇到这种情况,譬如现在在学习的这个: https://github.com/madhums/node-express-mongoose-demo/blob/master/server.js#L46
    他绝大多数情况下都是用驼峰,结果这里出现了下划线....
    wxm4ever
        31
    wxm4ever  
       2014-04-26 20:47:30 +08:00
    毕竟好多project不是一个人完成的。
    superbear
        32
    superbear  
       2014-04-26 21:40:23 +08:00
    偶尔会,@baocaixiong 切换不过来。。。
    ksc010
        33
    ksc010  
       2014-04-26 21:42:48 +08:00
    有时候会 看怎么顺手就用什么
    一般是下划线
    但是太长了的话就用驼峰
    也分语言
    java驼峰
    php下划线
    js 混合
    python 混合
    refresh
        34
    refresh  
    OP
       2014-04-26 21:58:50 +08:00
    @evererr winner晒一下代码让大家景仰一下嘛

    @ksc010 多语言切换时候最容易出现不统一的问题,我数据库一般习惯用下划线,应该是以前mssql留下来的习惯,而且有些二逼数据库大小写读出来的字段全是小写
    @sethverlo 中枪,我有时候会强迫自己去改
    banbanchs
        35
    banbanchs  
       2014-04-26 22:26:58 +08:00
    beautifulsoup4 也是有两种风格的命名风格呢(驼峰和下划线,为了兼容)
    Sunyanzi
        36
    Sunyanzi  
       2014-04-26 22:38:39 +08:00
    只要参与我的项目 ... 就按我的规矩来 ... 我不管你之前是什么风格都给我改 ...

    同理如果是别人的项目 ... 需要我遵守什么条条框框我就遵守什么 ...

    当然如果规范定的特别过分 ... 比如要求大括号换行 ... 抱歉我做不到 ... 请另找高明 ...

    作为一只半吊子的架构师 ... 从技术层面统筹整个项目才是我的本职 ...

    参与项目的人一旦多起来就必须强权 ... 这个事情没办法民主 ...
    tangzx
        37
    tangzx  
       2014-04-26 23:02:17 +08:00 via iPhone   1
    不要在意这些细节
    nor
        38
    nor  
       2014-04-26 23:17:25 +08:00
    多人合作的项目,为了后续维护的方便,我觉得还是按照规范来好吧。确定是用驼峰还是下划线亦或是混合。
    我在工作中,参与的项目基本都是一人维护,JS部分使用驼峰,css中的className为了美观,一般用下划线去定义。
    如果你快被这个问题害到人格分裂了,可以看下《编写可读代码的艺术》,我猜能缓解一下你的痛楚,至少能缓解一点点点点。
    yibuyisheng
        39
    yibuyisheng  
       2014-04-26 23:28:04 +08:00
    客户端js话,我还是坚持用驼峰的形式,因为会少掉下划线这个字符,虽然说js可以压缩,但是很多项目由于赶进度其实根本没有做压缩这个工作的
    zts1993
        40
    zts1993  
       2014-04-26 23:42:13 +08:00
    会。。。但是相同模块肯定相同。。。
    Green
        41
    Green  
       2014-04-26 23:44:07 +08:00   2
    最痛苦的事不是看翔一样的代码,而是要在翔一样的代码上加功能,为了保持一致性,还要把代码模仿出翔的模样。

    最近在weibo上看到的一句话。
    exoticknight
        42
    exoticknight  
       2014-04-27 00:02:51 +08:00
    python和qt一下用的那会也是差不多
    aurorawu
        43
    aurorawu  
       2014-04-27 00:14:28 +08:00
    在java里面就是完全驼峰命名,python主要是下划线
    lbj96347
        44
    lbj96347  
       2014-04-27 00:27:30 +08:00
    真要做到面面俱到挺难的,尤其好像前面有人说的多种语言切换的时候。前段时间,Javascript,Objective-C,Python...思维一下子切换不过来。直接在JS中写:if shit is fuck ...
    lm902
        45
    lm902  
       2014-04-27 00:39:49 +08:00
    我表示一般都是这样
    HttpWebRequest Request = new HttpWebRequest(RequestUri)
    单词头大写
    madao
        46
    madao  
       2014-04-27 03:21:58 +08:00
    iOS Ruby Javascript 同时推进的表示换着写的摸鱼久点就能自如切换。
    ldehai
        47
    ldehai  
       2014-04-27 10:07:16 +08:00
    @Green 精辟!新人写代码一般参照老人写的,如果老人写的是翔一样的代码,那么整个项目就是一坨翔
    mengzhuo
        48
    mengzhuo  
       2014-04-27 10:57:36 +08:00
    js python 切换,表示人格早已分裂了
    xuming
        49
    xuming  
       2014-04-27 21:45:11 +08:00
    常年在多种语言下切换,早就分裂了;不再勉强。
    FrankHB
        50
    FrankHB  
       2014-04-29 16:20:19 +08:00
    就算是同一个语言,如果用到了不同风格的依赖,不得不分裂。
    趁早约定好convention。
    MaiCong
        51
    MaiCong  
       2014-04-29 17:36:58 +08:00
    看来大家都被搞得分裂了
    关于     帮助文档     自助推广系统     博客     API   span class="snow">   FAQ     Solana     2689 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 14:18 PVG 22:18 LAX 07:18 JFK 10:18
    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