背景
首先,关于这篇文章为何取名为设计一个糅合系统的设计,所谓的糅合系统,是指这个系统的用户群体没有那么纯粹,比如,是一个既有c端用户,又有b端用户的使用场景的系统,起初在设计这样一个系统之初,我思考过这样的一个系统会有几个问题:
- 逻辑混杂,到时候会出现这个c端是这个样子的,b端为了兼容而妥协,折中出来的并不是一个好的方案,对两类用户来说都不够简洁。
- if/else糅合的代码可理解性比较差,随着迭代的推进,后续会越来越来维护。
- b端更加注重功能体验,他们要的是功能能不能满足他日常运营,而且不同类的b其功能是不同的,用户端更加注重操作体验体验是否好,当然b端也注重操作体验,但相对没c端这么匠心。
- 不同的b端可能需要的主体风格不同,是考虑一个b一套代码,还是一套代码配置不同的b,还是一套b的框架下组合不同的工具。
- 分离/b-part/c-part之后,如何复用公共逻辑,减少重复开发工作,公共逻辑包括哪些,下层的规则是什么,该放在何处。
- 假如让一个新手加入进来,他怎么快速找到相应的业务的代码逻辑在何处,如何新增,修改代码已实现需求。 基于以上这些点的思考,我首先走出了一个设计的雏形。