(1)select(2)AllList(3)IdAndUpdateHashAndState By (4)TaskIdAndUpdateGroupAndStateList
-
动作
-
返回所有匹配. 如果是分页,为 PageList
-
返回字段
-
条件字段
各位对 dao 层的命名,有什么好的方案吗.🤣
(1)select(2)AllList(3)IdAndUpdateHashAndState By (4)TaskIdAndUpdateGroupAndStateList
动作
返回所有匹配. 如果是分页,为 PageList
返回字段
条件字段
各位对 dao 层的命名,有什么好的方案吗.🤣
|
beneoNov 17, 2023
1
JPA 逆向来一个
|
|
2
总感觉有苹果那味了。。
|
|
securityCodingNov 17, 2023
3
别用 namequery,手写 sql 吧
|
|
ufan0Nov 17, 2023
4
条件字段没必要的,对于形参列表查看定义的时候一目了然
|
|
5
要逆出什么来😅
|
|
8
@securityCoding 是手写,mybatis id 名就是这么长.😅
|
|
subframe75361Nov 17, 2023
10
4 写注释里?
|
|
lsryNov 17, 2023
11
jpa 是这样的
|
|
MartensNov 17, 2023
12
ListBy(a,b,c,d,e)
|
|
LeegoYihNov 17, 2023
13
findByParams
动态 SQL |
|
14
LoadAll
LoadByXXX GetByXXX DeleteByXXX UpdateByXXX 入参太多直接忽略 By |
|
15
按场景命名,不要按参数命名。
比如 会员订单搜索:memberOrderSearch() |
|
uhNov 17, 2023
16
将( 4 )封装到一个 Condition 类是不是会好一点?
|
|
KMpAn8Obw1QhPoEPNov 17, 2023 via Android
17
我靠太对味了😅
|
|
difNov 17, 2023
18
如果你得查询条件就 2-4 个,那就按名字 findXXByxxAndXXX 如果参数长,那就按照业务来 find{{Service}}Data()
|
|
19
要总结一个干了很多事情的方法,得用业务意义上的名词,而不是直接描述底层细节。
吃饭不要写成“哺乳动物通过蛋白质摄取能量” |
|
mengdodoNov 17, 2023
20
层层下去,结果发现是个 sum 函数
|
|
cbythe434Nov 17, 2023
21
select1
|
|
22
@subframe75361 是个好想法. 缩短肯定要省去一些信息.转移阵地.
|
|
24
|
|
25
|
|
THESDZNov 17, 2023
28
长有问题吗?我觉得表意明确才是最重要的
|
|
duron600Nov 17, 2023
29
那就留着这个方法,在这个方法之上再封装一层,不同的状态用不同的名字。
比如: ``` def 吃饭 selectAllListIdAndUpdateHashAndStateByTaskIdAndUpdateGroupAndStateList(状态=1) end def 睡觉 selectAllListIdAndUpdateHashAndStateByTaskIdAndUpdateGroupAndStateList(状态=2) end def 打豆豆 selectAllListIdAndUpdateHashAndStateByTaskIdAndUpdateGroupAndStateList(状态=3) end ``` 吃饭、睡觉、打豆豆很容易就能看明白了,这样就不用再纠结 `selectAllListIdAndUpdateHashAndStateByTaskIdAndUpdateGroupAndStateList` 这个方法的名字,不是问题。 |
|
walle1530Nov 17, 2023
30
selectBy 吧
|
|
31
我觉得没必要写那么长,建议:findXXXByCondition()
1. 超过 3 个参数我都是 findXXXByCondition() 2. 都到 mapper.xml 了,看这个代码的人肯定会去看你的条件是什么而不是看你的方法名称。 3. 还有 selectAllList 也没必要,因为你的返回类型就知道你是单个还是列表了。 |
|
AkiyaNov 17, 2023
32
用返回类型和参数类型就可以取代函数名的大部分内容吧
List<IdAndUpdateHashAndState> select(int taskId, UpdateGroup updateGroup, List<State> states) |
|
33
不要动,这才是正宗的 Java
|
|
AloentoNov 17, 2023
34
对味了!
.NET 路过表示震惊 |
|
28Sv0ngQfIE7YloeNov 17, 2023
35
JPA 味太浓了
|
|
FrankAdlerNov 17, 2023 via Android
36
参数里有的字段没必要写到方法名上,就跟 user 表的主键 id 没必要写 user_id 而是直接用 id 一样
getUserByXX 这种也是,想知道 by 什么看参数定义,想知道拿到的数据看返回定义,不用全写名字上 |
|
CruzzNov 17, 2023
37
如果是 jpa 可以理解,mybatis 图啥呢? byCondition 参数用实体不更清楚么。
|
|
hancaiNov 17, 2023
39
函数名写 sql
|
|
xiaochongNov 17, 2023
40
看成如何 缩短 diao 😂
|
|
lovelylainNov 17, 2023 via Android
41
c++重载函数统一命名 query
|
|
aragakiyuiiNov 17, 2023 via iPhone
42
jpa 有 specification
mybatis plus 有 querywrapper |
|
lanlanyeNov 17, 2023
43
不用 Java ,几个不知道是否可行的建议:
1. 用 QueryObject 包装条件,避免筛选条件直接放到方法名里。 2. 用 Statement Builder 之类的东西拆分查询逻辑,一次调用只添加一种条件。 |
|
44
能不能拆成函数组合?另外 dao 是靠近 sql 层面还是靠近业务层的,如果靠近 sql 层就是 crud 吧,靠近业务层的话……
我一直喜欢的一句话:复杂度只能搬移,不能消除。 而且函数组合的话感觉也有问题,比如会不会遇到 n+1 呢。 |
|
LightofHevenNov 17, 2023
45
用 @Select 写个 sql 吧 dao 名字简单的 selectByCondition(queryCondition)
|
|
EricccccccccNov 18, 2023
46
也不易读啊
|
|
uxstoneNov 18, 2023
47
不要太相信类名,后期业务需求变动,往往会偷懒不改动类名,导致类名和实际功能不符。
|
|
B1ankCatNov 18, 2023
48
使用这世界上最完美的查表法,名字就叫 Ili1lii11llii11 ,然后每次开发在外面文档查表获取真实名称和功能
|
|
50
|
|
51
|
|
52
|
|
nexoNov 18, 2023
57
一个函数干这么多事情 也不是什么好函数吧
|
|
EricccccccccNov 18, 2023
58
@dnjat 感觉是一种社区形成的习惯(比如 spring 源码里很多很长的, 大家会互相模仿)
对比起来 go 里面很多源码就很简单(包括官方也提倡简单), 那自然大家写出来的代码就会简单 但这并不一定是好事, go 里面很多缩写莫名其妙还不如写全称 |
|
siweipanccNov 18, 2023
59
最整洁的代码就是自解释的(doge
你可以 loadAll 然后内存过滤, 服务器的 CPU 也比数据库的高效不是(doge |