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