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

无聊的问题,为什么接口/数据库一般采用下划线分割,前后端代码采用小驼峰

  •  1
     
  •   vevlins · 2021-09-28 10:49:51 +08:00 · 5077 次点击
    这是一个创建于 1145 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这是我的错误认识还是业界实际?

    话说为什么要搞两套风格,来回转换很烦啊。

    29 条回复    2021-09-29 16:05:34 +08:00
    XCFOX
        1
    XCFOX  
       2021-09-28 10:52:47 +08:00   ❤️ 6
    代码里小驼峰更美观,但是 url 、git 、部分数据库 不区分大小写 只能下划线
    xsm1890
        2
    xsm1890  
       2021-09-28 10:55:19 +08:00
    数据库来答一下。主要还是规范,但是也有比如 mysql 默认不区分大小写,mongo 默认对象区分大小写,如果数据在这之间同步的话会比较乱,等等吧
    2i2Re2PLMaDnghL
        3
    2i2Re2PLMaDnghL  
       2021-09-28 11:18:56 +08:00
    我倒是奇怪很少有地方用 kebab-case,果然还是与减号歧义吗

    VB 比较神奇,不区分大小写,但是 camelCase
    工具层面上将所有标识符都自动转换为定义处的大小写。
    clf
        4
    clf  
       2021-09-28 11:20:12 +08:00
    关系型数据库里很多默认不区分大小写,所以用下划线区分。

    MongoDB 等文档类的会保持和代码里的字段一致。

    一般由 ORM 框架去解决自己定义的类和数据库存储对象的字段转换,自己不需要操心。
    chendy
        5
    chendy  
       2021-09-28 11:21:11 +08:00
    说来奇怪,代码里看驼峰舒服,数据库看下划线舒服
    哦,单元测试也是下划线舒服,没啥道理
    来回转换其实没啥,都是工具做的
    libook
        6
    libook  
       2021-09-28 11:45:55 +08:00
    兼容大小写不敏感的场景。

    代码里用啥主要看习惯,有些人是因为尽可能少按键才用小驼峰。另外我个人会习惯在代码里用全大写+下划线来做常量名的格式,这个只要团队达成一致的标准就行,毕竟是给人看的。
    AllenHua
        7
    AllenHua  
       2021-09-28 12:17:37 +08:00 via iPhone
    @chendy #5 真的是看习惯了使然
    ctro15547
        8
    ctro15547  
       2021-09-28 12:40:25 +08:00
    习惯下划线分开清清楚楚明明白白
    zvl0reqglvd
        9
    zvl0reqglvd  
       2021-09-28 13:52:31 +08:00
    喜欢下划线,有间距分割,看的很清楚。驼峰真的看起来不美观,而且不够清晰明了。
    bwangel
        10
    bwangel  
       2021-09-28 13:52:49 +08:00
    域名不区分大小写,不支持下划线,只支持中划线。
    bwangel
        11
    bwangel  
       2021-09-28 13:57:40 +08:00
    @bwangel #10

    github page 的默认域名是以用户名命名的,因为这个原因,github 的用户名不支持下划线

    Username may only contain alphanumeric characters or single hyphens, and cannot begin or end with a hyphen.
    way2create
        12
    way2create  
       2021-09-28 14:15:02 +08:00
    我见过开发规范要求数据库字段命名是特么大驼峰的 离谱
    wangkun025
        13
    wangkun025  
       2021-09-28 14:19:39 +08:00
    我是后端,用的是下划线。
    dqzcwxb
        14
    dqzcwxb  
       2021-09-28 14:23:56 +08:00
    能用驼峰用驼峰,不能驼峰再用下划线
    一般开发语言都区分大小写所以用驼峰
    数据库比如 mysql 不区分大小写所以用下划线
    qbhy
        15
    qbhy  
       2021-09-28 15:14:02 +08:00
    运行在服务端的东西得考虑 windows 和 linux 的区别
    loading
        16
    loading  
       2021-09-28 15:34:14 +08:00
    数据库相关的 SQL 和很多数据库列名都不区分大小写的,你在不区分大小写的环境用驼峰?
    yuhangch
        17
    yuhangch  
       2021-09-28 15:41:35 +08:00
    我喜欢下划线!
    7gugu
        18
    7gugu  
       2021-09-28 15:54:09 +08:00
    约定俗成的规范吧,大家都爱用,用的人也很多,自然而然形成的规则。
    zhuangzhuang1988
        19
    zhuangzhuang1988  
       2021-09-28 16:08:27 +08:00
    随便用
    imycc
        20
    imycc  
       2021-09-28 17:44:56 +08:00
    除了大小写敏感之外,不同语言推荐的写法也不太一样。
    python 里的变量比较多使用下划线,typescript 用小驼峰,偶尔兼职写写 php,看着历史代码不同风格的变量名要吐了。

    PS:url 里有不少小驼峰式的命名(应该是沿袭以前 cgi 时候的),不过我个人比较喜欢用连字符,就像 stackoverflow 那样
    MarioLuo
        21
    MarioLuo  
       2021-09-28 18:48:41 +08:00
    数据库用蛇形命名,不过感觉用小驼峰保持实体一致,挺好的
    GuangXiN
        22
    GuangXiN  
       2021-09-28 21:03:03 +08:00 via Android
    @2i2Re2PLMaDnghL 磕巴 case,😄😄
    puras
        23
    puras  
       2021-09-28 21:07:35 +08:00
    @2i2Re2PLMaDnghL CSS 用 kebab-case,哈
    sakura1
        24
    sakura1  
       2021-09-28 21:09:56 +08:00
    有可能当初都是下划线,但是 java 诞生后小驼峰也诞生,大家开始用小驼峰,但是数据库一般由于历史原因不会重刷,久而久之就变成现在这样了。
    bojackhorseman
        25
    bojackhorseman  
       2021-09-28 21:10:08 +08:00 via iPhone   ❤️ 1
    解答了我对于后台返回数据经常是下划线连接的疑问
    lrvinye
        26
    lrvinye  
       2021-09-29 00:32:32 +08:00 via iPhone
    pgsql 字段名大小写就不敏感,只能用下划线了
    SHF
        27
    SHF  
       2021-09-29 00:33:58 +08:00
    下划线 yyds
    SHF
        28
    SHF  
       2021-09-29 00:38:13 +08:00
    写代码小驼峰太丑了,第一个字母小写破坏了整个单词的美感;大驼峰还行,挺好的;最好看的是下划线命名法,清晰美观。我写代码都用下划线命名。
    url 或者文件路径这种全小写然后中划线分割
    zhea55
        29
    zhea55  
       2021-09-29 16:05:34 +08:00
    自己动手,丰衣足食。

    前端拿到后台下划线的属性,全部统一转驼峰。

    另外,后台的数据还会有明明是数字,给的是字符串。明明是 boolean,给的是 0,1.

    有些人,觉得 js 没有类型。时间、日期能给时间戳,真的是要感天动地。


    貌似很多人以为前端要时间,就是 YYYY-MM-DD 。他们区分不了,什么是数据,什么是视图展现。


    如果需求变了,他们还要改接口,烦死个人。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2680 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:47 · PVG 19:47 · LAX 03:47 · JFK 06:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.