![]() | 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 ![]() 开发一时爽,维护火葬场 |
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 ![]() 我们组也是一样,入参各种 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,其他场景都是可以用强类型替代的 |