[关闭]
@zhangever 2017-01-04T22:55:07.000000Z 字数 495 阅读 927

服务开发原则

开发原则


  1. 向上兼容 如无特殊需求,接口设计时,尽量不修改已有接口入参与返回结果结构,而是新增接口处理。
  2. 无状态服务(stateless service) 对单次请求的处理,不依赖其他请求,也就是说,处理一次请求所需的全部信息,要么都包含在这个请求里,要么可以从外部获取到(比如说数据库),服务器本身不存储任何信息
  3. 领域层次分明 数据领域层次分明,朝着稳定的方向进行依赖,底层领域数据不依赖上层领域,底层领域冗余上层数据。如:订单领域数据不依赖优惠券、现货通等领域,订单领域通过冗余的优惠券和相关的现货通信息进行订单内部处理。
  4. 消除冗余数据 由于service的远程调用开销很高,所以在它的输入参数和返回结果中,还要尽量避免携带当前业务用例不需要的冗余的字段,来减少序列化和传输的开销。同时,去掉冗余字段也可以简化接口,避免给外部用户带来不必要的业务困惑。
  5. 粗粒度契约 service的外部使用者对特定业务流程的了解也比不上组织内部的人,所以service的契约(接口)通常需要是粗粒度的,其中的一个操作就可能对应到一个完整的业务用例或者业务流程,这样既能减少远程调用次数,同时又降低学习成本和耦合度。
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注