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

url 传值的 key 名,用_(下划线)还是-(横杠)呢?

  •  
  •   kmvan · 2014-09-02 16:49:59 +08:00 · 16823 次点击
    这是一个创建于 3737 天前的主题,其中的信息可能已经有所发展或是发生改变。
    http://xx.com/?my_book=xx
    http://xx.com/?my-book=xx

    上面两个情况,挺纠结的,感觉挺难选择的。如果配合 css 的命名方式,应该 xx-xx 横杠看起来比较统一吧。但如果配合 PHP 或 JS 的变量名,那就是 xx_xx 比较好。

    大家是怎么选择风格统一的方案?
    21 条回复    2014-09-03 19:52:28 +08:00
    rrfeng
        1
    rrfeng  
       2014-09-02 16:53:44 +08:00
    都不要最好
    nashsu
        2
    nashsu  
       2014-09-02 16:57:04 +08:00
    下划线吧
    seki
        3
    seki  
       2014-09-02 16:57:59 +08:00
    我觉得都不要最好

    Google 表示他们用 sourceid 这样子的,也用 es_sm 这样子的
    kmvan
        4
    kmvan  
    OP
       2014-09-02 17:03:16 +08:00
    @rrfeng 不要分隔符的话,那就不符合 css 命名规范了。从 HTML 的角度来看,data 属性例如:<div data-post-id="xxx"> ,这个 data 属性的命名方式,是 w3 规范来的,但它对应的 JQ 方法居然是这样: jQuery('div').data('postId'),XX症病人看着就略微蛋疼啊。
    seki
        5
    seki  
       2014-09-02 17:07:59 +08:00
    @kmvan url 的规范不是应该去看看 HTTP 的吗,和 HTML 关系不大吧
    kmvan
        6
    kmvan  
    OP
       2014-09-02 17:11:37 +08:00
    @seki HTTP规范没推荐中划线还是下划线呢,那 HTML 来说,只是为了配合 html 的写法而已。纠结啊
    bayuwei2010
        7
    bayuwei2010  
       2014-09-02 17:41:51 +08:00
    用下划线吧,更像 identifier 一些。
    感觉到处用都把握一些。
    ffffwh
        8
    ffffwh  
       2014-09-02 17:48:37 +08:00
    -杠好输入嘛。lisp都是-。
    tychio
        9
    tychio  
       2014-09-02 17:56:32 +08:00
    双击一下就会发现,下划线等于一个词,横杠等于两个词,个人理解,横杠连接变量,而下划线在变量内连接英文单词,相当于空格。所以建议使用下划线吧
    XadillaX
        10
    XadillaX  
       2014-09-02 18:27:51 +08:00
    js 我用的都是小驼峰。
    gihnius
        11
    gihnius  
       2014-09-02 18:59:32 +08:00
    URL 里面避免使用下划线!http://blog.woorank.com/2013/04/underscores-in-urls-why-are-they-not-recommended/ 没有足够说服力,但个人觉得 "-" 比 "_" 好些
    cbsw
        12
    cbsw  
       2014-09-02 20:46:37 +08:00
    横杠比较好,url 是给所有人看的,普通大众应该更容易看横杠连接的词,另外好多大站都是用横杠,例如 stack overflow
    rrfeng
        14
    rrfeng  
       2014-09-02 21:18:40 +08:00
    按我见的话,- 比较多,_ 少。相对而言。

    确实也不知道有什么相关文档推荐,但是 domain 里是明确不用 _ 的……
    kmvan
        15
    kmvan  
    OP
       2014-09-02 21:39:07 +08:00
    @tychio 这个应该是编辑器软件的问题。就算不是编辑器,在ff上,双击带下划线的url,也只能选中被下划线分隔的单词。而且编辑器的话,能调整双击忽略横杠的哦~

    总结各位朋友的结论:url使用横杠,比下划线体验好,看起来没这么显眼,比下划线舒服。
    RoshanWu
        16
    RoshanWu  
       2014-09-03 00:02:48 +08:00
    关注一下,我也一直在纠结。还有文件与文件夹的命名,是下划线好好是横杠好的?
    举例:
    下划线:bower_components node_modules ...
    横杠:grunt-contrib-clean sublime-jekyll ...
    20150517
        17
    20150517  
       2014-09-03 02:36:08 +08:00 via Android
    不要用,url不是给人看的,是给程序看的,html,css是给前台读的,所以要有易读性
    yfdyh000
        18
    yfdyh000  
       2014-09-03 07:50:01 +08:00
    下划线比较好。
    我认为下划线是空格的占位符(连接和避开特殊用途),而横杠是英文中的连字号(标记合成词)。

    用驼峰或者纯小写也都可以,只要看着顺畅。
    不过我觉得驼峰会过于吸引注意力,而纯小写的前提是参数名别太长。
    Honwhy
        19
    Honwhy  
       2014-09-03 09:09:02 +08:00
    http://get.jobdeer.com/343.get
    这篇HTTP API设计指南建议使用短折。
    nanpuyue
        20
    nanpuyue  
       2014-09-03 11:02:10 +08:00
    貌似都有道理,感觉都可以,只要前后统一就好。
    siteshen
        21
    siteshen  
       2014-09-03 19:52:28 +08:00
    @kmvan 下划线还是减号,这个其实是API命名规范的问题,和html/csss本身没有什么关系,所以更多时候要参考后端的意见。
    我个人而言,是会用下划线的。form中,只有name需要用下划线,与css的class,id之类使用减号并不冲突(与我的强迫症属性也不冲突……)。
    <input name="source_id">

    即使是要处理data属性也没问题的:
    <div class="source-id" data-source-id="1024">关注</div>

    // js
    var source_id = $('.source-id').data('source-id');
    $.post(url, {'source_id': source_id}, function() {});
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3334 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 12:30 · PVG 20:30 · LAX 04:30 · JFK 07:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.