Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

冒昧的问一下?代码为啥要这样写? #27

Open
LiysCAO opened this issue Jul 19, 2019 · 6 comments
Open

冒昧的问一下?代码为啥要这样写? #27

LiysCAO opened this issue Jul 19, 2019 · 6 comments

Comments

@LiysCAO
Copy link

LiysCAO commented Jul 19, 2019

是基于什么来设计的?为啥我感觉很混乱

@samurai00
Copy link
Contributor

不太明白你这个问题的意思。

首先,先确认一下,你是否有看过我们的服务端 API 接口文档
其次,“设计”是根据服务端提供的接口来的,我们的接口大致上是基于 RESTful 设计的,所以就主要是针对“对象资源”的创建查询等等。

至于你说的“为什么要这样写”,“很混乱”,如果你有想法,麻烦清晰表达你想说的东西。这样我们才可以有效的“探讨”。
比如,你认为哪一部分很混乱,哪一个对象哪一个方法写得很奇怪,什么地方不合理,你觉得应该怎么写比较好。

如果你觉得整个结构设计都很混乱,完全不行,没有优化的地方,那么如果你愿意的话,你也可以完全根据你自己的想法,从头开始写一个 SDK,开放出来,提供给其他的用户使用。如果可以话,我们也希望向你的 SDK 借鉴一下。

谢谢。

@onlyGuo
Copy link

onlyGuo commented Jul 24, 2019

确实有点儿乱...我封装了一套基于注解接口的实现类似这样的调用

@PingService
public interface PingOrderService{

    @ApiMethod(value = "orders", method=RequestMethod.POST)
    Order createOrder(Order order);

}

所以我觉得这个"乱"指的是实体类和业务处理混合在一起. 所以将实体类和业务抽离, 重写了所有实体, 并加入了Builder机制, 就像这样:

Order order = Order.newBuilder()
    .amount(100)
    .orderNo("A201901010000001").build();

pingOrderService.createOrder(order);

@samurai00
Copy link
Contributor

@onlyGuo 多谢提出意见。

我们确实把“业务”放一起了,不过本身其实也没什么实际的业务。基本上也就是创建/查询/列表。
另外你这个设计上跟我们的区别就已经很大了,想法倒是可以参考一下。

像你这样有具体建议,提出具体想法优化意见的,我觉得就很好。

@wongoo
Copy link

wongoo commented Jul 24, 2019

贫血模型 vs 富血模型

@onlyGuo
Copy link

onlyGuo commented Jul 25, 2019

贫血模型 vs 富血模型

你这么说, 容易挑起事情的🙂

@Juntin
Copy link
Contributor

Juntin commented Jul 25, 2019

@onlyGuo 多谢提出意见。

我们确实把“业务”放一起了,不过本身其实也没什么实际的业务。基本上也就是创建/查询/列表。
另外你这个设计上跟我们的区别就已经很大了,想法倒是可以参考一下。

像你这样有具体建议,提出具体想法优化意见的,我觉得就很好。

锋酱 ,最后一句话有时候让人觉得挺欠揍的。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants