领域知识的应用形态差异及对策
一、业务差异
这类差异大概有:
- 由于业态不同 - 比如有些是卖这类东西,有些是卖那类东西。
- 由于用户角色不同 - 比如有些是前台职员操作,有些是顾客操作,有些是后台管理者操作。
- 由于UseCase不同 - 比如有些是在配置规则,有些是在使用规则。
- 由于产品策略不同 - 比如有些是精简版,有些是完整版。
- 由于操作渠道的不同 - 比如有些是通过合作系统操作,有些是通过另一个合作系统操作。
这一类的差异是业务的本质。有些不需要领域层面处理,应用层面进行选择就可以了。而有些则需要通过领域逻辑的分支来处理。
业务差异是否有必要在领域层面处理,由领域团队决定。
二、步调差异
由于研发或产品的工作进度造成应用形态差异(不论有意还是无意)。
领域层面通过版本来应对这种差异,比如服务接口的版本。
设计和维护版本之间的兼容性策略是领域团队的责任,而不是应用团队的。
三、技术差异
不同的应用在不同的平台上运行,有可能会出现一些技术限制造成差异。比如有些应用网速不可控,有些应用内存很少等等。这种差异往往是暂时的,根据大家对这个技术限制的认识转化为之前的两种:
- 技术限制将被克服。则转化为步调差异。
- 技术限制将被容忍。则转化为不同的产品策略(业务差异第4点)。