张一鸣打造“抖音”等现象级产品的秘密:技术深度融合业务,引爆产品创新!| IDCF
作者| Mr.K
编辑| Emma
来源| 技术领导力(ID:jishulingdaoli)
作者简介:K,知名电商公司技术老K级人物。文出过畅销书,武做过CTO,若不是生活所迫,谁愿意一身才华。
技术如何融合业务,引领企业创新?
如何实现实现“产品-市场匹配”?
如何使用DDD进行领域建模?
以一种领域专家、设计人员、开发人员都能理解的“通用语言”作为相互交流的工具,在不断交流的过程中发现和挖出一些主要的领域概念,然后将这些概念设计成一个领域模型。 由领域模型驱动软件设计,用代码来表现该领域模型。领域需求的最初细节,在功能层面通过领域专家的讨论得出。
根据需求建立一个初步的领域模型,识别出一些明显的领域概念以及它们的关联。关联可以简单用“1对多”、“多对多”等方式描述;可以用文字精确的没有歧义的描述出每个领域概念的涵义以及包含的主要信息。 分析主要的软件应用程序功能,识别出主要的应用层的类。这样有助于及早发现哪些是应用层的职责,哪些是领域层的职责。 进一步分析领域模型,识别出哪些是实体,哪些是值对象,哪些是领域服务。通过这一步,你将得到一个更精细的领域模型,为下一步分析工作理清逻辑。 分析关联。通过对业务的更深入分析,以及各种软件设计原则及性能方面的权衡,明确关联的方向或者去掉一些不需要的关联。 找出聚合边界及聚合根。在分析的过程中往往会碰到很多模棱两可的难以清晰判断的选择问题,需要我们平时一些分析经验的积累才能找出正确的聚合根。 为聚合根配备仓储。一般情况下是为一个聚合分配一个仓储,此时只要设计好仓储的接口即可。 走查场景,确定我们设计的领域模型能够有效地解决业务需求。通过更多的业务场景覆盖,帮助我们反向验证领域模型的合理性。 考虑如何创建领域实体或值对象。是通过工厂还是直接通过构造函数。 重构模型。寻找模型中觉得有些疑问或者是蹩脚的地方,比如思考一些对象应该通过关联导航得到还是应该从仓储获取?聚合设计的是否正确?考虑模型的性能怎样,等等。
本文内容小结
第一步:建立用户画像。 第二步:在现实生活中同你的理想用户交谈,找到价值点。 第三步:理解你的用户现在的和未来的产品需要。 第四步:专注于一个具体的价值主张。 第五步:建立品牌可信度。
以一种领域专家、设计人员、开发人员都能理解的“通用语言”作为相互交流的工具,在不断交流的过程中发现和挖出一些主要的领域概念,然后将这些概念设计成一个领域模型。 由领域模型驱动软件设计,用代码来表现该领域模型。领域需求的最初细节,在功能层面通过领域专家的讨论得出。
《领域驱动设计》、《实现领域驱动设计》,Vernon 《如何在 5 步之内找到你的 PMF》,余鹏,GrowingIO
评论