Closed cuixiaorui closed 4 years ago
测试坏境和生产坏境是可以有不同的标准的
遵循一个测试一个概念
快速(Fast):测试应该能快速运行
独立(Independent :测试应该相互独立,不可以互相依赖
可重复(Repeatable):测试应当可在任何坏境中重复通过
自足验证(Self-Validating):测试应该有布尔值输出
及时(Timely):测试应该及时编写(TDD)
要想代码可复用、可读、可扩展 ,那么就需要测试
而怎么写好测试,让测试覆盖率高呢? 用 TDD
先写测试后写实现会很容易的写出可测试的代码
所以 TDD 是值得每一个有追求的程序员去学习的
static public variable
static pirivate variable
public variable
private variable
public method
被 public method 调用的私有函数
衡量方法:类的权责
将系统的构造与使用分开
初始化和运行时分开
无论是设计系统或单独的模块,别忘了使用大概可工作的最简单方案
没必要先做大设计
系统的架构应该是跟随着业务需求慢慢演化的
我们只需要保证架构在演进的过程中不会被破坏
如何保证不被破坏,只能是拥有足够的测试
延迟决策至最后一刻也是好手段
即拥有了大量信息
依赖倒转原则
细节应当依赖于抽象,抽象不应当依赖于细节
单一职责原则
它规定一个类应该只有一个发生变化的原因
就是只有一条加以修改的理由
需要遵循几个点就可以保持简单原则
测试 - 可以驱动出简单的设计,还可以消除重构代码会破坏代码的恐惧
不可重复 - 重复代码是拥有良好设计系统的大敌
表达力 - 良好的命名 类和函数越小越容易命名
类和方法应该竟可能的少(优先级最低,这是为了防止教条式。来制约 第三条原则的)
代码整洁之道
函数
注释
边界
测试
TDD 三定律
保持测试整洁
整洁的测试
三要素
三个环节
双重标准
测试坏境和生产坏境是可以有不同的标准的
单个测试中的断言数量应该最小化
遵循一个测试一个概念
FIRST
快速(Fast):测试应该能快速运行
独立(Independent :测试应该相互独立,不可以互相依赖
可重复(Repeatable):测试应当可在任何坏境中重复通过
自足验证(Self-Validating):测试应该有布尔值输出
及时(Timely):测试应该及时编写(TDD)
总结
要想代码可复用、可读、可扩展 ,那么就需要测试
而怎么写好测试,让测试覆盖率高呢? 用 TDD
先写测试后写实现会很容易的写出可测试的代码
所以 TDD 是值得每一个有追求的程序员去学习的
类
类的组织
static public variable
static pirivate variable
public variable
private variable
public method
被 public method 调用的私有函数
类应该短小
衡量方法:类的权责
原则
系统
分离
将系统的构造与使用分开
初始化和运行时分开
方法
简单原则
无论是设计系统或单独的模块,别忘了使用大概可工作的最简单方案
测试驱动系统架构
没必要先做大设计
系统的架构应该是跟随着业务需求慢慢演化的
我们只需要保证架构在演进的过程中不会被破坏
如何保证不被破坏,只能是拥有足够的测试
延迟决策
延迟决策至最后一刻也是好手段
即拥有了大量信息
设计原则
DIP
依赖倒转原则
细节应当依赖于抽象,抽象不应当依赖于细节
SRP
单一职责原则
它规定一个类应该只有一个发生变化的原因
就是只有一条加以修改的理由
代码保持简单整洁的原则
需要遵循几个点就可以保持简单原则
测试 - 可以驱动出简单的设计,还可以消除重构代码会破坏代码的恐惧
不可重复 - 重复代码是拥有良好设计系统的大敌
表达力 - 良好的命名 类和函数越小越容易命名
类和方法应该竟可能的少(优先级最低,这是为了防止教条式。来制约 第三条原则的)
一句话