如何做项目

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() {

        }
        /*
         * 支线:开发者成长系统
         */

    }
原文地址:https://www.cnblogs.com/ProjectDD/p/9604678.html