如何缩短 dao 层命名,selectAllListIdAndUpdateHashAndStateByTaskIdAndUpdateGroupAndStateList

2023-11-17 12:37:12 +08:00
 dnjat

(1)select(2)AllList(3)IdAndUpdateHashAndState By (4)TaskIdAndUpdateGroupAndStateList

  1. 动作

  2. 返回所有匹配. 如果是分页,为 PageList

  3. 返回字段

  4. 条件字段

各位对 dao 层的命名,有什么好的方案吗.🤣

8146 次点击
所在节点    程序员
59 条回复
cbythe434
2023-11-17 14:52:19 +08:00
select1
dnjat
2023-11-17 14:54:25 +08:00
@subframe75361 是个好想法. 缩短肯定要省去一些信息.转移阵地.
dnjat
2023-11-17 14:55:47 +08:00
@lsry 用的 mybatis,可能是看别人的博文,无形中吸取了 jpa 精华.😅
dnjat
2023-11-17 15:01:20 +08:00
@Martens
@LeegoYih
@wanguorui123
@titanhw 如果没有什么别的好的方法,只能这样缩短了.反正是要截掉一部份信息.
dnjat
2023-11-17 15:04:43 +08:00
@ChoateYao
@dif
@duron600 用业务名也是可以,只是很多参数就固定了.比如状态. 各个状态都要对应的业务名. 对简单的用全名,复杂的用业务名,是一个很好的方法.
dnjat
2023-11-17 15:07:06 +08:00
@mengdodo 嘿嘿,是这样,有的逻辑一样,外部装饰,内部自己处理参数,然后丢进机器里面
dnjat
2023-11-17 15:07:35 +08:00
@cbythe434 扑通,扑通..
THESDZ
2023-11-17 15:07:40 +08:00
长有问题吗?我觉得表意明确才是最重要的
duron600
2023-11-17 15:10:15 +08:00
那就留着这个方法,在这个方法之上再封装一层,不同的状态用不同的名字。

比如:

```
def 吃饭
selectAllListIdAndUpdateHashAndStateByTaskIdAndUpdateGroupAndStateList(状态=1)
end

def 睡觉
selectAllListIdAndUpdateHashAndStateByTaskIdAndUpdateGroupAndStateList(状态=2)
end

def 打豆豆
selectAllListIdAndUpdateHashAndStateByTaskIdAndUpdateGroupAndStateList(状态=3)
end
```

吃饭、睡觉、打豆豆很容易就能看明白了,这样就不用再纠结 `selectAllListIdAndUpdateHashAndStateByTaskIdAndUpdateGroupAndStateList` 这个方法的名字,不是问题。
walle1530
2023-11-17 15:14:32 +08:00
selectBy 吧
looo
2023-11-17 15:28:50 +08:00
我觉得没必要写那么长,建议:findXXXByCondition()

1. 超过 3 个参数我都是 findXXXByCondition()
2. 都到 mapper.xml 了,看这个代码的人肯定会去看你的条件是什么而不是看你的方法名称。
3. 还有 selectAllList 也没必要,因为你的返回类型就知道你是单个还是列表了。
Akiya
2023-11-17 16:40:40 +08:00
用返回类型和参数类型就可以取代函数名的大部分内容吧
List<IdAndUpdateHashAndState> select(int taskId, UpdateGroup updateGroup, List<State> states)
luzemin
2023-11-17 16:41:32 +08:00
不要动,这才是正宗的 Java
Aloento
2023-11-17 16:45:43 +08:00
对味了!
.NET 路过表示震惊
28Sv0ngQfIE7Yloe
2023-11-17 16:49:40 +08:00
JPA 味太浓了
FrankAdler
2023-11-17 17:13:52 +08:00
参数里有的字段没必要写到方法名上,就跟 user 表的主键 id 没必要写 user_id 而是直接用 id 一样
getUserByXX 这种也是,想知道 by 什么看参数定义,想知道拿到的数据看返回定义,不用全写名字上
Richared
2023-11-17 17:21:24 +08:00
如果是 jpa 可以理解,mybatis 图啥呢? byCondition 参数用实体不更清楚么。
Richared
2023-11-17 17:22:57 +08:00
或者业务强关联,直接写业务名称写毛的具体查的啥,反正别人也不能用。你写成这样目的是为了别人用的时候知道这个。但是没人用,你写他干嘛呢。
@Richared
hancai
2023-11-17 17:25:59 +08:00
函数名写 sql
xiaochong
2023-11-17 17:29:01 +08:00
看成如何 缩短 diao 😂

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

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

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

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

© 2021 V2EX