学习可以给你带来两种本领,一是洞察问题的本领;二是解决问题的本领。很多人,很努力,却得不到希望的结果;很多事,有态度,却茫然于拿不出解决问题的方法。这就是需要学习的根本原因,参加孤尽老师T31训练营,一方面为了学习一个完整项目从需求、技术、规范的落地,另一方面其实更是为了这么多年工作的一个内心反刍。
第二节课,更多的是谈方法论,围绕用户需求、技术架构、产品价值三者之间的理想与现状。
一、总体内容
1. 用户需求:核心是以人为本。把握住需求边界、用户故事和用户路径;
2. 技术架构:水平业务单元+垂直的技术单元,架构设计,需要遵守七大原则:单一职责、里氏替换、接口隔离、组合复用(组合与聚合搞清楚)、依赖倒置(细节依赖抽象防止)、开闭原则(谈扩展性)、熵增定律。
3. 产品价值:这点在课程中未体现,但企业中,更关注这一点!
二、架构设计
1. 架构设计概念:架构是一种能力,而不是一个职位;【更新了我的过往认知】
架构 = 组成(模块结构+关系) + 决策(约束+设计原则+演化方向)
2. 架构设计目的: 确认边界,解决做与不做的问题;
模块间输入输出关系的确认和表达;
后续方便扩展;
3. 画架构图(重点学会三种):类图(6大关系)、时序图、架构图 。
4. 设计模式:孤尽老师推荐了个很好的方法,先把名字记下来,单独写个helloworld出来,以后在实际项目中用:
Factory(工厂模式), 手写Demo待补充....
Builder(建造模式),
Factory Method(工厂方法模式),
Prototype(原始模型模式),
Singleton(单例模式),
Facade(门面模式),
Adapter(适配器模式),
Bridge(桥梁模式),
Composite(合成模式),
Decorator(装饰模式),
Flyweight(享元模式),
Proxy(代理模式),
Command(命令模式),
Interpreter(解释器模式),
Visitor(访问者模式),
Iterator(迭代子模式),
Mediator(调停者模式),
Memento(备忘录模式),
Observer(观察者模式),
State(状态模式),
Strategy(策略模式),
Template Method(模板方法模式),
Chain Of Responsibleity(责任链模式)
三、课程作业(购票系统的需求与设计实现)
零). 购票系统需求分析
1. 用户通过网站注册并且登录
2. 车次、车厢、经停站、时刻表的CRUD
3. 修改个人信息
4. 乘客管理
5. 余票查询
6. 创建订单(票)
7. 第三方支付(微信、支付宝、银行卡。。。)
8. 支付成功通知消息(MOCK):邮件、短信、App消息、微信公众号。。。
一). 购票系统用例图
购票系统用例图1
二). 用户模块类图
三). 订单模块类图
四). 订单的状态图
五). 购买车票活动图
六). 购买车票时序图
七). 车票改签协作图
八). 购票系统部署图