面试题答案
一键面试从业务流程识别业务边界
- 梳理业务流程:对整个业务进行详细的流程梳理,例如电商业务,从用户下单、支付、库存扣减、物流配送等环节进行逐一分析。通过绘制流程图,清晰呈现每个步骤的输入、输出以及涉及的操作。
- 确定独立业务环节:在业务流程中,寻找可以独立运行、不依赖其他环节完整执行的部分。比如在电商业务里,支付环节相对独立,它接收订单信息进行支付处理,可作为一个独立业务环节。
- 识别环节间交互:明确各业务环节之间的交互方式和频率。高频交互的环节可考虑合并在同一服务,低频交互的环节则倾向于拆分为不同服务。例如库存扣减和物流配送交互频率较低,可拆分服务。
从数据模型识别业务边界
- 分析数据关联:研究数据之间的关联关系,比如数据库表之间的外键关联。在社交平台中,用户表和好友关系表紧密关联,而用户表和系统配置表关联较弱。
- 确定数据聚合:将紧密关联的数据聚合在一起,作为一个服务的数据基础。如在电商中,订单数据、订单详情数据聚合在订单服务,形成一个数据整体。
- 考虑数据一致性:对于需要强数据一致性的部分,应放在同一服务。例如银行转账业务中,转出账户和转入账户的金额变动需在同一服务保证一致性。
从用户需求识别业务边界
- 收集用户需求:通过用户调研、市场反馈等方式,获取不同用户群体的需求。例如企业级软件,不同部门(销售、财务、生产)有不同需求。
- 分类需求:按照需求的功能特性、使用场景等进行分类。如电商中,C端用户关注商品浏览、购买,B端商家关注商品管理、订单处理,这是不同类别的需求。
- 基于需求拆分:以满足某一类特定需求为目标拆分服务。比如针对C端用户需求拆分为商品展示服务、购物车服务等,满足其商品浏览和购物需求。