业务评判
接口清晰度
根据接口和参数,可以清晰的知道接口能力;
数据验证和错误处理
数据校验应该遵循DRY(Don‘t repeat youself),
业务代码清晰度
业务只有业务,没有其他逻辑,
可测性
业务的TC(Test Case)是可控的
DP:domain primitive
将隐性概念显性化
姓名(String),手机号(String),地址(String)
姓名(Name),手机号(Phone),地址(Adress)
不要使用String标示以上信息,要使用对应的VO(View Object)对象,并且手机号等VO对象中应该有对手机号格式等校验的逻辑。
将隐性上下文显性化
给另一个用户转钱;隐式信息是转的是人民币,不是美元,但如果是美元呢,所以需要将币种信息显性化;
封装多对象行为
当夸币种转账时,需要根据本币种和目标币种获取汇率,然后根据汇率计算出转账金额,最后转账。
这里多对象:本币种,目标币种,汇率,转账金额,目标金额五个对象
可以使用汇率对象封装以上计算行为,成为:本币金额,目标金额;