1、关于数据库表的设计:
避免歧义性。一般对于基础数据和对基础数据所产生的行为操作,可以使用基础数据表保存基础数据;而对基础数据进行一些操作(比如审核或者其他的),则可以使用操作流水表。这样既满足第一范式,而且还能很好的支持上层业务扩展,且避免耦合。
2、对于接口设计:
(1)单个接口提供单独的服务。
(2)不论是在controller应用或者service应用,都可以将接口进行抽象设计。
在每一层,我们应该遵循金字塔原则,底层提供大量的基础服务。比如基础数据,最基本的需要提供CURD服务;而对于业务动作,需要针对底层的业务动作表提供相应的基础服务。然后在service层再对这些基础服务进行组装,然后最上层,只需要做完一些校验,然后调用底层的服务即可。
例如:rpc层封装调用底层接口服务的各个操作;service层封装rpc层的各个操作;controller层进行参数校验及执行业务服务调用。
(3)接口的设计需要保证可重用性。
3、接口设计遵循由底向上的设计原则。呈金字塔形对外提供服务。