设计匠艺训练营

一步行动,胜过千万专家的意见

关于训练营

  • 面向对象分析设计明显地分为两个阵营:

Rational。强调建模,推崇UML和形式化方法。这些人最初使用ADA为军方开发软件,系统本身并不复杂。软件正确性非常重要,因此重视对设计的评审.

Tektronics,一家电子设备测试工具制造商。强调示波器的可插拔性。使用新的编程语言Smalltalk,因为它的灵活性。这支团队中涌现了Ward Cunningham、Kent Beck、Sam Adams等敏捷世界的大师。使用Smalltalk,他们在设计和编码之间快速切换,这也是现在Agile的基本工作方式。

本课程结合Tektronics和Rational,将高效率的可视化团队协作、UML建模、测试驱动开发、重构、设计模式等多个技能合而为一,统称为编程匠艺。在实际的开发过程中,它们本身就是一个整体,无法分解。我们称之为开发部曲。

  • 本课程采用苏格拉底式教学法,简单说就是学员自己教自己。我们会用问题来引导你,但不会手把手地教你正确答案。你会受阻,但这是好事。正如Fred Brooks所说:“好的判断来自经验,而经验来自糟糕的判断。”记住受阻的时刻,并从中学习,这些经验会成为未来良好判断的基础。

  • 本课程以分组的方式进行,预计有1/3的时间在可视的环境下完成互动;1/4的时间是通过Code Kata的方式来传递设计的原则与实践。很酷!不是吗?

Kata

可视化设计

视觉力量

Visual meeting
准备好工具
你也能画
八种简单的开始方法
故事板与MVP
用例或用户故事

场景驱动

场景驱动与故事划分
最简单的设计
我的Design Canvas
给大家讲个故事
6个W
设计草案

用例驱动设计

用例图
健壮性分析图
时序图
协作图
类图
包图
角色、职责、协作
职责的封装

一看设计:从上至下的设计

动手做出来的设计

我其实是个瓦匠

瓦匠是怎么工作的?
我们是豆腐渣工程制造者
从你的场景开始
场景驱动与故事划分
代码未动,测试先行
单元测试不是测试

测试驱动开发

保持节奏:红色、绿色、重构、模式
用ATDD满足客户需求
正确地做事:TDD
做正确的事:ATDD
增量式开发
重构以保持代码的健康
下士!保持绿色!

意图导向编程

代码的质量
更好的设计
降低复杂性
方法的内聚
代码的可读与表达
调试
重构
更易修改和扩展
在代码中发现模式

二看设计:自下而上的设计

解构设计

设计的切口

迪米特法则
耦合
职责
封装
分离不同的视图
代码质量病理学
设计过度与不足
干净整洁的代码

设计原本

角色、职责、协作
再看封装、抽象与多态
职责的封装
协作的解耦
共性和可变性分析
多态是一种解耦技术
编写易于修改的代码

设计原则

开闭原则
里氏科夫替换原则
单一职责原则
接口隔离原则
依赖倒置原则
不要重复你自己原则
你不需要它原则
KISS原则

设计模式

设计模式与变迁
行为型模式
创建型模式
结构型模式
重构与设计模式是一种封装技术
桩对象
重构技术的变种
TDD、重构导向模式

设计是个圈