把 Java 写成动态语言了,越改越崩溃。

2021-08-23 14:29:12 +08:00
 hahaFck
各种 map,前台数据传到后台转换成 map 或者 list<Map>,数据库查询返回 list<Map>,方法调用传参数也是 Map,现在改个东西,完全不知道会影响到哪里,因为都是 Map 参数,方法签名一般都不变,但是 Map 里面的数据不仔细看根本不读知道都有什么,真是越改越崩溃。
另外 map 取数也是各种类型转换,各种 null 判断。
及其 ugly 的代码。
3930 次点击
所在节点    Java
39 条回复
qaz168000
2021-08-23 15:15:10 +08:00
不是做 java 的,但是感觉这其实也是一种趋势,数据结构和内容其实也只有输入端和接收端才会关心,最多也就加个 filter 会关注
ztcaoll222
2021-08-23 16:05:21 +08:00
那么问题来了,一开始为什么要这么做
Chaitanya
2021-08-23 16:34:41 +08:00
开发一时爽,维护火葬场
thtznet
2021-08-23 16:54:59 +08:00
动态一时爽...
egfegdfr
2021-08-23 17:04:52 +08:00
我们隔壁组也这么些,有几次和他们一次查问题,查到奔溃。所以 自己这边严格控制 map 的使用(具体看业务情况),看到不合理的 会让大家改了。 这个还是看第一版的开发人员习惯吧
liaojl
2021-08-23 19:14:02 +08:00
我们组也是一样,入参各种 map,出参一律 object,有时想知道这个 return 的 object 是什么类型的,跟到代码里面才发现,其实也是一个 map,崩溃...
golangLover
2021-08-23 23:05:21 +08:00
一开始就不允许这样写啊。。。
wangsongyan
2021-08-23 23:33:30 +08:00
之前帮其他项目组救急接触过类似的代码,mybatis 参数、返回值全是 Map,我滴个乖乖,现在还有阴影
q447643445
2021-08-24 02:22:38 +08:00
现在代码都生成还有这问题?
msg7086
2021-08-24 06:17:55 +08:00
我甚至开始怀疑是不是 Java 圈子里就流行这么做。
手里拿到的组里的代码也是,组件之间全都是 Map<String,String>传参……
实在不知道为什么不做一个静态类型 POJO 的输入。
kingfalse
2021-08-24 07:34:44 +08:00
现在还是不能在少定义一些 bean 的方面有什么好的解决办法
bthulu
2021-08-24 08:48:08 +08:00
这是 mybatis 带的好头
xjlnjut730
2021-08-24 08:57:12 +08:00
不允许用 Map 做出入参就可以了。
我反正项目里从来不用,多定义点 Bean,我觉得都比 Map 好太多。维护性完全不是一个级别的。
shellic
2021-08-24 09:10:09 +08:00
可能是为了赶工期吧,毕竟老板觉得这个也简单那个也简单,所以小公司小老板用 PHP 这种语言是最合适的
XieQing0428
2021-08-24 09:28:34 +08:00
之前问了下说是开发灵活..
darrenfang
2021-08-24 09:49:41 +08:00
之前维护的一个 10 多年前的项目就是这样的
aeiou520
2021-08-24 10:08:02 +08:00
这个算好..我遇到过,用查库用 jdbc,没有 bean,全 map,接口可以在后台配置,代码存数据库,动态调用.维护怕了
zhangxh1023
2021-08-24 11:31:35 +08:00
各种 JSONObject 满天飞的表示也差不多这种感觉。。。
James369
2021-08-24 11:45:59 +08:00
javascript 不经常这么做么,java 不是 javascript 的缩写么
seakingii
2021-08-24 12:25:47 +08:00
可以这么做,也可不这么做,那么问题来了,为什么一定要用 MAP 传参?

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

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

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

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

© 2021 V2EX