本人非科班出身 现在在一家公司开发 碰到一段代码 本人可能研究不太透彻 所以 想让大家看看有没有什么问题
代码: https://gist.github.com/liangtengyu/249b3c3142de2e907aaa8f86ac98b47a
1 srs1995 OP |
![]() | 2 b821025551b 2020-04-26 10:15:09 +08:00 所以问题是什么? |
3 yesterdaysun 2020-04-26 10:20:25 +08:00 我感觉没什么问题, 就是一个辅助生成 api 参数的类, 用 treemap 保证参数顺序, 生成签名, 除了代码有稍微点冗余繁琐, 命名有点别扭之外, 就是常规操作 |
![]() | 4 anteros 2020-04-26 10:36:35 +08:00 我也是野路子,之前看过一段时间 java,没看出啥问题。。。 |
![]() | 5 guyeu 2020-04-26 10:46:59 +08:00 你如果看这段代码不顺眼,就重构它直到顺眼呗。。。挂在 v 站找人一起批判么。。 |
![]() | 6 jerrry 2020-04-26 12:00:55 +08:00 类名命名不合理,CarRequestPayLoad 更好一点 |
7 siteshen 2020-04-26 12:14:41 +08:00 代码没什么问题,不过倒是 signature 的算法和一般的不一样。 一般是这种: 输入是: {"a": 123, "c": 292, "b": 299} 签名的字符串是:a=123&b=299&c=292 很少会要求 JSON 的 key 是「有序」的。这通常意味着要么依赖内置的排序(不同语言的排序方式可能不一样),要么手动对 JSON 的 key 排序(麻烦,某些语言甚至只能用拼接字符串的方式实现所谓的 JSON encode )。 |
![]() | 8 tt0411 2020-04-26 12:28:50 +08:00 代码风格比较差, 确实比较野路子 |
![]() | 9 dallaslu 2020-04-26 12:36:10 +08:00 就是个排序签名的包装类嘛 |
10 yeqizhang 2020-04-26 12:47:02 +08:00 via Android 代码没贴全…… 只能看出代码不够简洁的样子,不知道那个里面的赋值操作的意义…… 其它没啥问题 |
11 yeqizhang 2020-04-26 13:00:06 +08:00 via Android 还有,他这个应该用了静态变量……线程不安全…… 然后一个工具类方法内部处理直接 return 就完事的东西不知道为什么这么写 |
12 vitoliu 2020-04-26 13:14:41 +08:00 一个排序能做到的事,手动 new 个 map 再依次声明顺序的 put...感觉是脱裤子放屁 |
![]() | 13 NeinChn 2020-04-26 13:26:30 +08:00 |
![]() | 15 woscaizi 2020-04-26 14:11:10 +08:00 public TreeMap getTreeMap(){ return this.treeMap; } 1. treeMap 没看到定义在哪了。 2. 如果只是为了传 TreeMap,加入别的内容, 这么写看起来确实不太“好看”。 |
16 srs1995 OP @woscaizi 调用的位置在这里 @Override public String refund(String plateNum, final String OrderId, Integer amount) throws Exception { TreeMap<String, Object> treeMap = new TreeMap<>(); //新建空的 treemap treeMap.put("refundId", System.currentTimeMillis() + "refund"); //组织参数 treeMap.put("plateNumber", plateNum);//组织参数 treeMap.put("refundAmount", amount);//组织参数 treeMap.put("orderId", OrderId);//组织参数 RefundInfo carOutRequestInfo = new RefundInfo(treeMap); String post = UrlConnectUtil.post( Constant.baseUrl + "/refund/bill", carOutRequestInfo.getTreeMap()); if (StringUtils.isNotBlank(post)) { xxx } |
18 MaxTan 2020-04-26 16:16:39 +08:00 代码没格式化 |