1
qaz168000 2021-08-23 15:15:10 +08:00
不是做 java 的,但是感觉这其实也是一种趋势,数据结构和内容其实也只有输入端和接收端才会关心,最多也就加个 filter 会关注
|
2
ztcaoll222 2021-08-23 16:05:21 +08:00
那么问题来了,一开始为什么要这么做
|
3
Chaitanya 2021-08-23 16:34:41 +08:00 1
开发一时爽,维护火葬场
|
4
thtznet 2021-08-23 16:54:59 +08:00
动态一时爽...
|
5
egfegdfr 2021-08-23 17:04:52 +08:00
我们隔壁组也这么些,有几次和他们一次查问题,查到奔溃。所以 自己这边严格控制 map 的使用(具体看业务情况),看到不合理的 会让大家改了。 这个还是看第一版的开发人员习惯吧
|
6
liaojl 2021-08-23 19:14:02 +08:00 via iPhone 1
我们组也是一样,入参各种 map,出参一律 object,有时想知道这个 return 的 object 是什么类型的,跟到代码里面才发现,其实也是一个 map,崩溃...
|
7
golangLover 2021-08-23 23:05:21 +08:00 via Android
一开始就不允许这样写啊。。。
|
8
wangsongyan 2021-08-23 23:33:30 +08:00
之前帮其他项目组救急接触过类似的代码,mybatis 参数、返回值全是 Map,我滴个乖乖,现在还有阴影
|
9
q447643445 2021-08-24 02:22:38 +08:00
现在代码都生成还有这问题?
|
10
msg7086 2021-08-24 06:17:55 +08:00
我甚至开始怀疑是不是 Java 圈子里就流行这么做。
手里拿到的组里的代码也是,组件之间全都是 Map<String,String>传参…… 实在不知道为什么不做一个静态类型 POJO 的输入。 |
11
kingfalse 2021-08-24 07:34:44 +08:00 via Android
现在还是不能在少定义一些 bean 的方面有什么好的解决办法
|
12
bthulu 2021-08-24 08:48:08 +08:00
这是 mybatis 带的好头
|
13
xjlnjut730 2021-08-24 08:57:12 +08:00
不允许用 Map 做出入参就可以了。
我反正项目里从来不用,多定义点 Bean,我觉得都比 Map 好太多。维护性完全不是一个级别的。 |
14
shellic 2021-08-24 09:10:09 +08:00
可能是为了赶工期吧,毕竟老板觉得这个也简单那个也简单,所以小公司小老板用 PHP 这种语言是最合适的
|
15
XieQing0428 2021-08-24 09:28:34 +08:00
之前问了下说是开发灵活..
|
16
darrenfang 2021-08-24 09:49:41 +08:00
之前维护的一个 10 多年前的项目就是这样的
|
17
aeiou520 2021-08-24 10:08:02 +08:00
这个算好..我遇到过,用查库用 jdbc,没有 bean,全 map,接口可以在后台配置,代码存数据库,动态调用.维护怕了
|
18
zhangxh1023 2021-08-24 11:31:35 +08:00
各种 JSONObject 满天飞的表示也差不多这种感觉。。。
|
19
James369 2021-08-24 11:45:59 +08:00
javascript 不经常这么做么,java 不是 javascript 的缩写么
|
20
seakingii 2021-08-24 12:25:47 +08:00
可以这么做,也可不这么做,那么问题来了,为什么一定要用 MAP 传参?
|
21
cslive 2021-08-24 12:33:22 +08:00
居然真的有这么干的!!!!
|
23
unco020511 2021-08-24 15:54:42 +08:00
之前维护过一个类似的项目,一度有了离职的想法
|
24
aneostart173 2021-08-24 16:51:09 +08:00
你抛弃了编译器,编译器就抛弃了你。
|
25
ccde8259 2021-08-24 18:43:14 +08:00 via iPhone
前一家一样的问题,二次开发全靠 Debug 看数据。
更可怕的是那些 void func(Map<?,?> map)方法,纯副作用函数…… |
26
122006 2021-08-24 20:24:38 +08:00
偷个懒直接拿到就 jsonobject 转为实际量就算了,在后续逻辑过程中解析的直接火葬场
|
27
kaneg 2021-08-24 22:09:12 +08:00
所以,很多人为了所谓的灵活,并且懒得定义 bean class,结果自己一时爽,😭了后来人。
|
28
tedzhou1221 2021-08-25 09:08:43 +08:00
我都怀疑你是我同事。哈哈
|
29
securityCoding 2021-08-25 09:26:02 +08:00
@bthulu 严格来说是 jdbc 搞出来的玩意
|
30
luzemin 2021-08-25 10:13:26 +08:00
面向对象的语言不面向对象编程,就是原罪
|
31
cco 2021-08-25 10:59:57 +08:00
看场景吧,因为我们的查询来源五花八门,字段也是非常的多,所以 前台 - > 接口 <- DB 都是使用 Map 传参,返回 List<Map>,恶心吗?的确恶心,但是这应该是目前开发场景的最优解。如果把这些都用对象替代,那么光定义对象就得一大堆,并不比 Map 好用。
|
32
a719031256 2021-08-25 11:50:45 +08:00
老代码?
以前遇到过这种情况,那个项目据说是一个人写后端,web 端,安卓端,外加时间短才导致代码很烂 |
33
nanmu42 2021-08-27 12:53:59 +08:00
我一般写 Go,最近有些 Flink 需求学着写一些 Java,感觉是不是因为 Java 里不习惯把 struct(class)当成纯粹的数据载体?以及 Java 里定义 class 比较麻烦?
Go 里如果数据结构是确定好的话,一般是从 JSON 直接解析到 struct (对应 Java 的 POJO ),字段和类型都是固定的,而且 struct 定义比较方便,一般没有这个烦恼。 |
35
liian2019 2021-08-27 18:02:33 +08:00
维护起来不得哭了 方法入参是啥都不知道
|
36
issakchill 2021-08-30 13:02:09 +08:00
曾经在一家银行维护过这样的代码 一个月就跑路了
|
37
hahaFck OP @issakchill 很难想象,银行都写这样的代码。
|
38
seliote 2021-09-05 20:52:11 +08:00
组里也有人这么干,一开始还想管,后面已经懒得管了,不通读代码根本不知道写的是什么玩意
|
39
night98 2021-09-26 17:52:25 +08:00
强制规范不允许使用 map 作为入参和出参啊
动态语言是动态语言的玩法,静态语言是静态语言的玩法,非要强行融合那必然死的很惨 map 仅适用于参数不固定,例如上下文传递这种,或者是模板入参必须 map,其他场景都是可以用强类型替代的 |