类似 dto、vo、bo 这些类的命名后缀是大写还是驼峰?比如: UserDto 或者 UserDTO?

2022-01-13 09:20:09 +08:00
 7911364440
9529 次点击
所在节点    Java
56 条回复
chtcrack
2022-01-13 16:34:31 +08:00
我都乱来,哪怕你函数名叫 A 也没关系,但是函数和关键地方注释一定要有..
superchijinpeng
2022-01-13 16:36:24 +08:00
都可以
hailiang88
2022-01-13 16:55:43 +08:00
这些都是正常写法,我们所有的命名全是中文拼音第一个字母,变量,方法,类,包,文件,文件夹,数据库字段,已经吐槽了很久了,现在想想很可能是涉密原因吧。
dcsuibian
2022-01-13 16:55:48 +08:00
我之前也纠结过,现在认为针对这种缩写形式,可能看成一个单词更好。
参考 Url ( Uniform Resource Locator )、Id ( Identity )、Http ( Hyper Text Transfer Prtcl ),虽然是缩写,但含义已经极其明确,你全大写和首字母大写都可以。
个人感觉 Dto 、Vo 、Bo 的形式比较合理。(在一定上下文环境中省略前缀后)变量就是 dto 、vo 、bo (这里要特别吐槽一下阿里的 DO ,如果全小写会变成关键字 do ,所以我用对应的 PO ),要不然变量叫 dTO 、vO 、bO ,总感觉怪怪的。
写到这里,回去看了一下自己的项目,发现目前用的是 UserVO 这种写法,一般对应的变量直接叫 vo ,如果多个 VO 同时出现,那么会写成 userVo ,感觉也挺舒服。。。
hun2008hun
2022-01-13 18:23:39 +08:00
都可以,看该项目规范,要统一
lux182
2022-01-13 19:16:50 +08:00
新项目还用这些东西命名吗,太丑陋了
Wuuuu
2022-01-13 20:22:20 +08:00
我记得.net 的规范是 小于等于 3 个字符,全大写,例如 DTO ,VO ,大于 3 个字符就驼峰,例如:Http ; GO 的规范是全驼峰。
shayuvpn0001
2022-01-13 22:23:41 +08:00
@eronekogin #25 标准库的 java.net 的 HttpURLConnection 类应该改成 hyperTextTransferProtocolUniformResourceLocatorConnection
agagega
2022-01-13 22:42:32 +08:00
railgun
2022-01-13 23:01:48 +08:00
我习惯全驼峰,这样命名函数的时候看着没那么累。比如 ConvertDTOToItem ,就会容易看成 DTOT
est
2022-01-13 23:39:19 +08:00
所以从这一点来看,还是下划线比较好。
jim9606
2022-01-14 00:06:16 +08:00
一般将缩写当普通单词比较普适,也就是 HttpClient 。
考虑在 golang 里的命名规范,首字母大小写区分公私有成员,私有成员 httpClient ,公有成员 HttpClient ,如果全大写就会搞出 hTTPClient 这样不伦不类的命名。
zpf124
2022-01-14 00:08:39 +08:00
就是一个标准统一就好,我个人更喜欢驼峰。
虽然阿里巴巴的标准是全大写,并且目前我们项目领导也要求这样,我也遵守了这样的规范。

DTO 和 HTTP 、URL 、SQL 、NBA 、NASA 、API 、GUI 、REST 一样都是一类专有名词缩写,针对于驼峰命名法而言,我的理解是按照驼峰结构修改,和普通单词一样,按照驼峰方式拼写。
QueryUrl 、UpdateSql 、NbaList 、FakeApi 、Rest 、UserDto 、UserVo 。

而 DTO 、VO 、DAO 这类东西和前面其他专有名词缩写有一点不一样的地方在于它在名字中是存在特定编程含义的,而其他专有名词在技术层面没有任何意义。
NbaList 、CnCity 、这类缩写对于某个新加入项目的人而言与 AList 、BObject 并无区别理解代码改造代码的时候无需了解这个缩写的含义; DTO 和 VO 你看到他们的时候你就知道这个类的用途。

所以我可以理解为什么有人认为该保持全大写,但我个人更倾向于统一用驼峰,不能因为它表达的含义不同就专门例外。
zxjunz
2022-01-14 11:41:49 +08:00
起码谷歌工程师都是用驼峰的,比如安卓中有个 DnsResolver
eronekogin
2022-01-17 10:55:42 +08:00
@shayuvpn0001 对啊,这不是 java 特色之一么,超过 50 个字符长度的类名不是分分钟 XD
wxyrrcj
2022-03-31 08:00:05 +08:00
整个项目统一就行

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

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

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

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

© 2021 V2EX