1,以业务规则为纲,而不是业务实体
2,在思考和设计业务规则的时候,以业务核心为纲,什么是业务核心,定义为,当前你最关注的,当前最不确定的那一部分。
所以我现在不喜欢领域驱动,我喜欢业务驱动 其实可能二者是一码事
那么我这里所说的业务驱动要怎么驱动法呢?
就先以上面两条为起头,然后再来说,业务规则,以找到一个唯一主干为纲,
接下来,在主干上,进行充实,就是拉伸,和细节化,梳理出分支
主干一般就是 有一个时间的开始,和结束,然后有一系列的状态流转
流转中包含业务细节,规则,和计算,状态中包含结构化定义存储实体和非结构化资源。
示例:
public class Biz { IBiz biz; /* * 业务主干 * 建订单=》 * 分析订单=》任务单 * 任务单去匹配开发人员, * 启动项目 * 评价项目结果 */ /// <summary> /// 需要说明,价格,和时间,买家,验证方式 /// </summary> /// <returns></returns> public Order BuildOrder() { var o = new Order(); //分类别:是产品,还是接活,先走产品这条路进行内部训练和做商用产品,然后再考虑接客户订单 switch (o.Type) { case string i1 when i1== Str.Order_Customer: break; case string i2 when i2 == Str.Order_Product: break; } return o; } /// <summary> /// 确认交易 /// </summary> /// <remarks> /// 1,需要与代理人,或客户,进行多回合的交流,记录在案 /// 2,在交流的过程中要产生验收合同 /// 3,验收合同,需要图形化描述,可以考虑3种图形 /// 3-1,原型图 /// 3-2,效果图 /// 3-3,uml 相关的意义图描述 /// </remarks> public void ConfirmTransaction() { } public TaskSet ParseOrder(Order order) { throw new NotImplementedException(); } public void PublishTask(TaskSet tset) { } public void StartProject() { } public void EvaluateProject() { } /* * 支线:开发者成长系统 */ }