如何缩短 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 层的命名,有什么好的方案吗.🤣

8150 次点击
所在节点    程序员
59 条回复
lovelylain
2023-11-17 18:10:17 +08:00
c++重载函数统一命名 query
aragakiyuii
2023-11-17 18:45:06 +08:00
jpa 有 specification
mybatis plus 有 querywrapper
lanlanye
2023-11-17 19:10:53 +08:00
不用 Java ,几个不知道是否可行的建议:

1. 用 QueryObject 包装条件,避免筛选条件直接放到方法名里。
2. 用 Statement Builder 之类的东西拆分查询逻辑,一次调用只添加一种条件。
netabare
2023-11-17 19:35:38 +08:00
能不能拆成函数组合?另外 dao 是靠近 sql 层面还是靠近业务层的,如果靠近 sql 层就是 crud 吧,靠近业务层的话……

我一直喜欢的一句话:复杂度只能搬移,不能消除。

而且函数组合的话感觉也有问题,比如会不会遇到 n+1 呢。
LightofHeven
2023-11-17 21:32:13 +08:00
用 @Select 写个 sql 吧 dao 名字简单的 selectByCondition(queryCondition)
Ericcccccccc
2023-11-18 00:37:29 +08:00
也不易读啊
uxstone
2023-11-18 08:38:32 +08:00
不要太相信类名,后期业务需求变动,往往会偷懒不改动类名,导致类名和实际功能不符。
B1ankCat
2023-11-18 09:27:12 +08:00
使用这世界上最完美的查表法,名字就叫 Ili1lii11llii11 ,然后每次开发在外面文档查表获取真实名称和功能
dnjat
2023-11-18 10:00:41 +08:00
@duron600 把最难的留给自己用.😎
dnjat
2023-11-18 10:06:55 +08:00
@looo
@Akiya
@FrankAdler
@Richared 很好的方法,省略掉能在方法签名上已体现的信息.
dnjat
2023-11-18 10:08:32 +08:00
@walle1530
@luzemin
@Aloento
@Morii
@lovelylain
@Ericcccccccc 经常看到,为什么 java 里的名字这么长.
dnjat
2023-11-18 10:13:15 +08:00
@Richared
@lanlanye
@aragakiyuii
@LightofHeven 是的,参数太多,调用时也会再次核对.没必要在方法名上下功夫.
dnjat
2023-11-18 10:14:08 +08:00
@xiaochong 你居然想练成这样的神功.
dnjat
2023-11-18 10:17:56 +08:00
@netabare 有必要是可以再函数组合一下,这样也对关联查询在业务逻辑上做优化.
dnjat
2023-11-18 10:22:00 +08:00
@uxstone 太赶了,根没有时间去考虑这么多.当想到的时候,算了吧,都这么多了.
dnjat
2023-11-18 10:23:08 +08:00
@B1ankCat 再加上 O0
nexo
2023-11-18 12:42:25 +08:00
一个函数干这么多事情 也不是什么好函数吧
Ericcccccccc
2023-11-18 13:41:56 +08:00
@dnjat 感觉是一种社区形成的习惯(比如 spring 源码里很多很长的, 大家会互相模仿)

对比起来 go 里面很多源码就很简单(包括官方也提倡简单), 那自然大家写出来的代码就会简单

但这并不一定是好事, go 里面很多缩写莫名其妙还不如写全称
siweipancc
2023-11-18 16:06:02 +08:00
最整洁的代码就是自解释的(doge

你可以 loadAll 然后内存过滤, 服务器的 CPU 也比数据库的高效不是(doge

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

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

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

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

© 2021 V2EX