V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
refresh
V2EX  ›  程序员

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

  •  
  •   refresh · 2014-04-26 13:59:05 +08:00 · 6673 次点击
    这是一个创建于 3871 天前的主题,其中的信息可能已经有所发展或是发生改变。
    主要是命名,有时候我用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   ·   FAQ   ·   实用小工具   ·   1940 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 00:32 · PVG 08:32 · LAX 16:32 · JFK 19:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.