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

2021-09-28 10:49:51 +08:00
 vevlins

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

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

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

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

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

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

代码里用啥主要看习惯,有些人是因为尽可能少按键才用小驼峰。另外我个人会习惯在代码里用全大写+下划线来做常量名的格式,这个只要团队达成一致的标准就行,毕竟是给人看的。
AllenHua
2021-09-28 12:17:37 +08:00
@chendy #5 真的是看习惯了使然
ctro15547
2021-09-28 12:40:25 +08:00
习惯下划线分开清清楚楚明明白白
zvl0reqglvd
2021-09-28 13:52:31 +08:00
喜欢下划线,有间距分割,看的很清楚。驼峰真的看起来不美观,而且不够清晰明了。
bwangel
2021-09-28 13:52:49 +08:00
域名不区分大小写,不支持下划线,只支持中划线。
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
2021-09-28 14:15:02 +08:00
我见过开发规范要求数据库字段命名是特么大驼峰的 离谱
wangkun025
2021-09-28 14:19:39 +08:00
我是后端,用的是下划线。
dqzcwxb
2021-09-28 14:23:56 +08:00
能用驼峰用驼峰,不能驼峰再用下划线
一般开发语言都区分大小写所以用驼峰
数据库比如 mysql 不区分大小写所以用下划线
qbhy
2021-09-28 15:14:02 +08:00
运行在服务端的东西得考虑 windows 和 linux 的区别
loading
2021-09-28 15:34:14 +08:00
数据库相关的 SQL 和很多数据库列名都不区分大小写的,你在不区分大小写的环境用驼峰?
yuhangch
2021-09-28 15:41:35 +08:00
我喜欢下划线!
7gugu
2021-09-28 15:54:09 +08:00
约定俗成的规范吧,大家都爱用,用的人也很多,自然而然形成的规则。
zhuangzhuang1988
2021-09-28 16:08:27 +08:00
随便用
imycc
2021-09-28 17:44:56 +08:00
除了大小写敏感之外,不同语言推荐的写法也不太一样。
python 里的变量比较多使用下划线,typescript 用小驼峰,偶尔兼职写写 php,看着历史代码不同风格的变量名要吐了。

PS:url 里有不少小驼峰式的命名(应该是沿袭以前 cgi 时候的),不过我个人比较喜欢用连字符,就像 stackoverflow 那样

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/804827

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX