
如果你的组员,用 controller 直接调用 mapper ,是不是可以直接 fire 了
1 superchijinpeng 2025 年 6 月 27 日 就问你能不能用? |
2 sumarker PRO |
3 bsulike 2025 年 6 月 27 日 嘿,有的接口没啥逻辑,我就直接调 mapper |
4 irrigate2554 2025 年 6 月 27 日 用 cursor 写有的时候会出现这种情况 |
5 carrotliang 2025 年 6 月 27 日 @sumarker 把 mapping 写在 mapper 里,不让 controller 赚差价~ |
6 clf 2025 年 6 月 27 日 没给你直接调用数据库就已经算不错了(来自对有些实习生的怨念) |
7 Vaspike 2025 年 6 月 27 日 听起来很离谱, 但仔细想没啥问题, op 可能纠结的是数据隔离? |
8 EliStone 2025 年 6 月 27 日 ?我现在接手的代码,逻辑啥的都在 controller 里面,不是新加的功能我都懒得创建 service... |
9 spritecn 2025 年 6 月 27 日 大部分情况下,你的组员不归你控制。。哈哈 |
10 SoviaPhilo 2025 年 6 月 27 日 fire 不 fire 得看项目是否长远, 项目结构是否妥善划分,以及团队约定 如果是仅查询的孤立逻辑 controller 直接调 mapper 其实我觉得挺正常的 |
11 binge921 2025 年 6 月 27 日 这个不至于吧,代码逻辑少,懒得创建 service |
12 xiangyuecn 2025 年 6 月 27 日 不但调,mapper 还返回 list<map<string,object>> |
13 asmoker 2025 年 6 月 27 日 via Android @xiangyuecn 入参也是 map<string,object> |
14 SvenWong 2025 年 6 月 27 日 @xiangyuecn #12 +1 我经常这么干,有些没写过 service 的操作直接调用 mapper ,等后面再有相同的操作再重构不就得了,大家都是草台班子,较真干嘛 |
15 a33291 2025 年 6 月 27 日 那种过 service 透一层但没有额外逻辑的行为,就教条主义而已 |
16 CodeCodeStudy 2025 年 6 月 27 日 逻辑不复用的话有什么要紧?如果 controller 的作用仅仅是调用 service 的话,那么要 controller 还有什么作用? |
17 hwdq0012 2025 年 6 月 27 日 这不是他的黑历史,是他来时的路 |
18 jackOff 2025 年 6 月 27 日 桌面单体应用可以,web 应用只允许项目启动的系统配置这样子搞,其他情况一律打回去重写,或者立马开除 |
19 NoDataNoBB 2025 年 6 月 27 日 这种想法等同于“不喝就是看不起我” |
20 helloworldgo 2025 年 6 月 27 日 |
21 zhouxiaoxiao OP 无规矩不成方圆,你这样做,他那样做,不就是个乱字可以形容,后续的麻烦不知道有多少; 不管是对个人而言,还是对公司而言,要有规矩才成方圆,才走的远。 |
22 gadfly3173 2025 年 6 月 27 日 via Android 我们公司连 controller 和 mapper 都没有,接口通过自有框架直接在 service 上声明,数据库通过框架包了一层的 jooq/mongoclient 等调用,完全没有 mapper/repository 的参与 |
23 Narcissu5 2025 年 6 月 27 日 我现在就是直接在 controller 里面写各种代码。 MVC 时代 controller 是用来控制渲染的,现在都是 restful 接口,根本不需要什么渲染,很多 controller 的方法就一行代码调服务,脱了裤子放屁。 很多 javaer 就是相当教条主义,也难怪别人黑 |
24 ybz PRO 见识到 java 的恐怖了 |
25 Roan 2025 年 6 月 27 日 是 |
26 mikasyou 2025 年 6 月 27 日 分读写类型吧。 只读的 Controller-Action ,怎么方便怎么来,直接原生 SQL 都无所谓、一般都是 SQL DSL 。 但要是牵扯写的操作,还是通过 Service 、领域(业务)对象来处理比较好。 |
27 CodersZzz 2025 年 6 月 27 日 为什么一些规范要求变成了 javaer 的吐槽点呢。难道其他语言没有类似的?比如 python 的__xx__? |
28 woniu7 2025 年 6 月 27 日 我只能说以我的经验来看,让代码变成屎山的不是规矩,而是需求和开发者本身以及他们的迭代。 |
29 yzqn 2025 年 6 月 27 日 又不是不能用,刚开始写代码我也是需要各种分类,各种抽象,其实对大部分业务只是脱裤子放屁。一个 controller 一把梭,业务在一个地方的代码从上到下走完简单清晰 |
30 nealHuang 2025 年 6 月 27 日 @irrigate2554 要定好规则,弄好后从没出现过 |
31 Asuka0947 2025 年 6 月 27 日 1.工资决定写在哪里 2.公司代码与我无关 3.方便后续优化 |
32 zhouxiaoxiao OP @woniu7 开发者没有觉悟,没有意识,现实中有很多。无奈。 |
33 kanepan19 2025 年 6 月 27 日 个人可以这么搞,公司项目尽量不要。 当然,能跑就行。doge |
34 weixind 2025 年 6 月 27 日 你可以尝试跟你的 +1 、 + 2 和 HRBP 说你要用这个原因把你的组员开掉。 看看会怎么样,嘿嘿。 |
35 fffq 2025 年 6 月 27 日 你就说能不能跑吧 |
36 nvksie 2025 年 6 月 27 日 via iPhone 话不要太绝对,有些 hello world 级别的组件,有人也硬要套得里三层外三层的,老板把他 fire 了,我重写总共不到 200 行 |
37 hsymlg 2025 年 6 月 27 日 要看公司有没有规范,没有这方面规范,那人家怎么写是他的自由。不过相对而言 java 项目真的比较喜欢分层,不管是公司级别的还是开源项目,面向对象都玩出花儿来了,spring 和 tomcat 代码真的看得想吐。像 redis 或者 etcd 这种代码都是一个文件写完一整块儿的逻辑,看起来真的丝滑~ |
38 meteor957 2025 年 6 月 27 日 javaer 都这么吓人的吗 |
39 kerwin1874 2025 年 6 月 27 日 我一开始也是一层包一层,后来发现其他人都是 controller 一把梭,我吭哧吭哧搞半天还不如加入,反正都是草台,我自己一个人做的项目才分一分层。 |
40 hidemyself 2025 年 6 月 27 日 你的组员,用 controller 直接调用 mapper 是你的问题,而不是他的问题。 |
41 EastLord 2025 年 6 月 27 日 我有同事就这样写,我也没办法 |
42 chrosing 2025 年 6 月 27 日 以前 controller iservice serviceimpl mapper 现在 controller service mapper |
43 chocotan 2025 年 6 月 27 日 不会 我之前看 spring boot 官方的视频教程就是 controller 直接调用 repository |
44 dushixiang 2025 年 6 月 27 日 不管有没有多个实现,service 层必须要写 interface ,不写的话开除。 不管业务是否复杂,maven modules 必须上,拆分成数十个模块,不会搞的开除。 不管多大的项目,SpringCloud 、注册中心、配置管理、redis 集群、消息队列必须安排,不安排的话开除。 别问我并发有多高,我要一台 64 核,256G 内存的机器,没有的话开除甲方。 |
45 sevenDu 2025 年 6 月 27 日 这多大规模的项目啊,要这么严格 |
46 mcfog 2025 年 6 月 27 日 如果我的 leader 根据单独某个技术做法(就算确实很糟)就让我 fire 一个人,我会把这个 leader 换了 |
47 pxllong 2025 年 6 月 27 日 引用下 《投名状》 好奇 你们几个人儿? |
48 jingrui 2025 年 6 月 27 日 我们简单逻辑,直接在 controller 中用 orm 来调用数据库。。。 |
49 irrigate2554 2025 年 6 月 27 日 @nealHuang 嗯,我说没提需求默认配置的情况下偶尔出现 |
50 123zouwen 2025 年 6 月 27 日 这不只是一个 controller 调用 mapper 的问题 首先你们有没有制定好规范? 所有的乱写一是因为人, 二是因为规范 如果没有规范,而且允许人乱写,每个人都有各自的写法 项目混乱很快 |
51 COOOOOOde 2025 年 6 月 27 日 很多项目基本只有一个 Service 实现, 还是要搞个 interface 真是恶心 |
52 sean250031 2025 年 6 月 27 日 还有另一外一种过分“守规矩”的,明明自己的 service 抽象的一点都不通用,永远都不会有多个实现,非得一对一的都搞成 interface+impl |
53 sean250031 2025 年 6 月 27 日 @COOOOOOde 撞回复了 |
54 fengpan567 2025 年 6 月 27 日 又不是不能用 |
55 z1111h 2025 年 6 月 27 日 写 java 写的目光呆滞思维僵化 |
56 pkoukk 2025 年 6 月 27 日 @sean250031 #52 不打算给单元测试留个口子了? |
57 coderzhangsan 2025 年 6 月 27 日 没什么业务逻辑的,这么写也没什么问题,毕竟这东西也不会产生什么 bug ,可以跟组员提建议和要求,但不要过于注重此类问题,甚至阴阳苛责,毕竟制定团队技术规范目标是协同开发,尽量避免 bug 产生,不要舍本逐末,过于注重代码洁癖,应该多注重逻辑思维能力,毕竟逻辑思维能力决定了业务 bug 的下限。 |
58 hay0577 2025 年 6 月 27 日 @sean250031 #52 合理,非得自己再套一层裹脚布,又臭又长。 |
59 Rat3 2025 年 6 月 27 日 如果只是单纯的数据库操作,没啥问题,如果是组合的数据库操作,还有可能复用的话,我会写到 service 里,这没啥的 人多维护就按照大家的习惯来,自己维护的项目就按照优雅的方式来 动不动上升到 javaer 怎么怎么样也挺无聊的.. |
60 karmaisbitch 2025 年 6 月 27 日 via iPhone java 仔最近写 python ,感觉那叫一个自由 |
61 rookie4show 2025 年 6 月 27 日 要么你代码检查自动拦截,要么你人工 review 拒绝合并。 公司有没有规范?公司接不接受你的执行成本?落实力度怎么样? |
62 zgsi 2025 年 6 月 27 日 有什么问题? |
63 89adc64 2025 年 6 月 27 日 |
65 linyi090744 2025 年 6 月 27 日 你的问题更大点!你的组员菜归菜,要是你劝导过,屡教不改,那 fire 没问题。人家菜,你不想着拉一把,想着丢人家饭碗。真恶毒啊。都是牛马,谁也别看不起谁,今天你嫌他菜,明天在大佬眼里你何尝不是一只菜鸡。 |
66 version 2025 年 6 月 27 日 没必要这样。主打微服务。监控只要每个接口响应速度达标就可以呢。你爱咋玩都行.有 docker 玩新的技术都行。 规规矩矩的。实际上一套老框架。不进则退。上个班还没自己练手新框架。新脚手架。公司都倒闭了 你觉得部门要长远。但是压抑成员的学习能力也不好。上班哪家公司能撑个 5 年 10 年的 成员只要用自己最擅长。最高效完成任务就好。但是现实中还是很多老大各种条条框框的。拿着 N 年前的技术在玩。手动更新服务器代码都大有人在 |
67 AEDaydreamer 2025 年 6 月 27 日 没什么可不可以的, 规范和最佳实践很多都是在前提背景下产生的. 你觉得不可以只要你有领导权你制定规则就好了. |
68 xinzhanghello 2025 年 6 月 27 日 很多简单的业务怎么写没啥问题,但是有 AI 了,可以一开始就分开写。 又不会麻烦。 写进 Promt 里就好 |
69 me1onsoda 2025 年 6 月 27 日 可能无关的回复.javaer 里有没有可能男比较多,挺容易被规训成 |
70 zcljy 2025 年 6 月 27 日 @zhouxiaoxiao 我现在接手的项目都是这么写的 而且是拼音首字母命名 世界真是草台班子 已经想跑路了。。 |
71 flytsuki 2025 年 6 月 27 日 |
72 shen13176101 2025 年 6 月 27 日 serviceimpl 是为了写业务实现的,如果没什么业务,只是一个单独的查询,我觉得直接调 mapper 没问题,如果硬说 以后会增加业务,我无话可说 |
73 smilenceX 2025 年 6 月 27 日 取决于项目本身的规范程度。 |
74 chaoshui 2025 年 6 月 27 日 就我司而言,是实行 CQRS 规范的 仅查询数据,没有副作用的,走 Rpc Service -> Query -> DB 这个路径,有时甚至不用 ORM 直接写 sql 除此以外,需要写入/更新数据,或者有副作用的,走 Rpc Service -> Command -> Domain Service -> Repo, 并且每一层之间必须定义接口 |
75 zgzhang 2025 年 6 月 27 日 过度封装就是强行给自己喂屎,完全没必要,代码是为了易读、健壮,不是为了践行茴香豆必须怎么吃 |
76 aaronzhang404 2025 年 6 月 27 日 controller 里一行 serice 调用才垃圾,没有二十年脑血栓写不出这样的代码 |
77 liqingyou2093 2025 年 6 月 27 日 那咋了 |
78 zsl199512101234 2025 年 6 月 27 日 能跑就行,之前有 Entity 的 get 方法里面调 dubbo |
79 BenHunDun 2025 年 6 月 27 日 controller 调 service, 很大程度是为了可以弹性扩展 service 吧. |
80 Jimmy2Angel 2025 年 6 月 27 日 @asmoker 要是 map<string,object>我都谢天谢地了,我接手代码定义一个变量是这样的: Quartet<org.javatuples.Pair<Map<String,List<Pair<Query, Update>>>, Map<String,List<Pair<Query, Update>>>>, org.javatuples.Pair<Set<XXXDTO>, Set<XXXDTO>>, List<XXXEntity<DDDEntity>>,XXXValidate> quartet = null; |
81 darksword21 PRO 谢谢,本来就烦 java ,现在更烦了 |
82 lscexpress 2025 年 6 月 27 日 if 你有权 fire and 想 fire: fire 呗 else: 搁这儿问了也没用 |
83 mayooot 2025 年 6 月 27 日 魔怔 |
84 wangtian2020 2025 年 6 月 27 日 符合我对 javaboy 的刻板印象,你平时是不是还非常推崇 java 阿里编码规范 |
85 make115 2025 年 6 月 27 日 无所谓了, 我甚至 service 接口都不写, 直接 serviceimpl 写实现 |
86 cslive 2025 年 6 月 27 日 |
87 woniu7 2025 年 6 月 27 日 |
88 buffzty 2025 年 6 月 27 日 组员把 sql 写在 jsp 中 阁下如何应对 |
89 0x663 2025 年 6 月 27 日 @zhouxiaoxiao #21 差不多得了,一般情况都是公司先比代码走。 |
90 breadykidliu 2025 年 6 月 27 日 我还遇到过同时 controller 调 controller 的,劝说无效还被白眼,祝他安好 |
91 runlongyao2 2025 年 6 月 27 日 在逻辑不复杂和没复用的情况下,为啥一定要写 service 。实在搞不懂。 |
92 ryougifujino 2025 年 6 月 27 日 还得是我们 Next.js ,直接在 UI 代码里写 sql |
93 irisdev 2025 年 6 月 27 日 这既不是水平问题,也不是不服管理屡教不改态度问题,谈何 fire |
94 runlongyao2 2025 年 6 月 27 日 @Narcissu5 他们现在就是为了分类而分类 |
95 sodesga 2025 年 6 月 27 日 java 刚开始封 everything is object 为圭臬,直到函数流式大行其道。 能跑就行,要求不要太多。 |
96 jeffh 2025 年 6 月 27 日 @Narcissu5 是的,我就是直接 controller 写实现,我以前也是 javaer 还有搞 service 和 serviceImpl ,然后 controller 就写一行代码,真 tm 烦 |
97 softliumin110 2025 年 6 月 27 日 好搞笑! |
98 runlongyao2 2025 年 6 月 27 日 @chocotan 因为代码的清晰度和你分几层没关系,分层唯一的作用是复用。如果不存在复用,那就是一种累赘。国内太多人学歪了 |
99 q447643445 2025 年 6 月 27 日 可能这就是 java 味吧 |
100 iseki 2025 年 6 月 27 日 via Android 病得不轻,你既然强调规矩,先问问你提前讲过所谓的规矩吗?其次 CQRS 情况下这么干很正常的。 |