项目简介
- 从查票、下单、付钱、通知的主流程
- 抽象商品、订单、支付的核心模型
- 处理票务异常和日志
- 了解架构设计背后的方法论
需求分析
伪需求:没有调研、没有目标、没有逻辑的无脑需求
权力需求:老板或者是强势业务方的需求
需求
1.乘客通过网站注册登录
2.实名认证通过mock实现
3.铁路部门管理员有如下功能
- 车次、车厢、经停站、时刻表的增删改查
- 用户管理:用户增删改查,黑名单管理,为角色分配相应功能
- 菜单管理:菜单增删改查
4.定时任务:生成火车票
5.普通用户拥有以下功能
- 修改信息:密码,住址,电话,邮箱等
- 代购功能:录入其他乘客信息,合并下单支付
- 余票查询:可以通过车次、出发站、到达站、日期等条件查询
- 购买车票下单:选择车次,选择乘车人,座位类型后下单
- 订单支付:第三方支付,支付宝支付、微信支付
6.支付成功后系统通知用户
七大设计原则
1.单一职责:高内聚、低耦合
2.里氏代换原则:父类能出现的地方,子类一定能出现;而子类出现的地方,用父类代替,一眼都有问题
3.接口隔离原则:接口粒度尽可能小,同一接口的方法强内聚于同一特征
4.组合复用原则:松散的合作关系
5.依赖倒置关系:细节依赖抽象,底层依赖于高层
6.迪米特原则:不要和陌生人说话
7.开闭原则:对扩展开放,对修改关闭
架构
什么是架构图
水平的业务单元+垂直的技术单元组成的逻辑结构图