本人非科班出身 现在在一家公司开发 碰到一段代码 本人可能研究不太透彻 所以 想让大家看看有没有什么问题
代码: 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
php01 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
代码没格式化
|