软件设计能力提升之设计匠艺
简介
课程将高效率的软件项目质量管理、UML、重构设计与功能实现、单元测试几个课程合而为一,我们称之为设计匠艺。这几个课程当然可以分开来讲,但是如果把他们组织在一起,将会形成一个有效的开发闭环。事实上,在实际的开发过程中,它们本身就是一个整体,无法分解。我们称之为开发部曲。
课程体系结构图
一、好的设计
“球不是这么踢的”
让目标指导行动
设计已死?
足够好的软件
化整为零,个个击破
先实现后设计
二、别废话,动手!
从你的场景开始
获取需求
场景驱动与故事划分
从测试开始
驱动设计
实现
重构
再设计
结对编程
来,别看着,动手!
三、设计的原本
角色、职责、协作
再看封装、抽象与多态
职责的封装
重构与设计模式是一种封装技术
桩对象
重构技术的变种
TDD、重构导向模式
四、用例驱动设计
用例与功能
用例场景
健壮性分析图
时序图
协作图
类图
包图
逻辑框架和层
模型-视图分离原则
五、领域驱动设计
何为“领域驱动设计”
通用语言
模型驱动设计
面向深层理解的重构
保持模型一致性
六、职责驱动设计
GRASP是什么?
创建者
信息专家
低耦合
控制器
高内聚
多态
纯虚构
间接性
防止变异
七、测试驱动开发
保持节奏:红色、绿色、重构、模式
用ATDD满足客户需求
正确地做事:TDD
做正确的事:ATDD
增量式开发
重构以保持代码的健康
下士!保持绿色!
八、设计模式
设计模式与变迁
行为型模式
创建型模式
结构型模式
九、设计原则
开闭原则
里氏科夫替换原则
单一职责原则
接口隔离原则
依赖倒置原则
不要重复你自己原则
你不需要它原则
KISS原则
十、开发部曲
计划游戏
简单设计
测试驱动开发
重构
团队协作
持续构建
迭代
反思改进
以上大纲仅用于罗列课程中的知识点,在实际授课时将会穿插在实际案例里,并非按时间顺序讲解。
讲师介绍
姜志辉
Jobs,中科院计算所培训中心 高级讲师
国家863项目(国家数字油田)专家,首席架构师
敏捷中国团队持有人;2005年IBM开发者大会最佳讲师、最佳讲义获得者;人民银行技术顾问;国家质量认证中心技术顾问;总参某部技术顾问;国家安全局技术顾问;大庆油田技术顾问;胜利油田技术顾问;鲁能集团技术顾问;2007年度开源项目之一AgileUML的主架设计师。
更重要的是他是一位快乐的实用主义软件工程专家。虽然他热衷于软件开发技术与敏捷开发实践。但是能真正吸引他的是程序与使用者交流和沟通的能力。Jobs是实用开发的“永久消费者”,几乎在任何地方,都可以找到软件开发哲学的灵感.