Home > Archives > 领域驱动设计(DDD)的认知与理解

领域驱动设计(DDD)的认知与理解

Publish:

领域驱动设计(DDD)的认知与理解

从现实世界到IT系统

我们为什么需要IT系统?IT信息系统或者数字化可以为我们提供两个重要的价值。首先是精细化管理,我们可以通过IT系统将操作过程中的每个细节都记录下来,并对细节进行优化。其次是可以通过较低的成本实现规模化,而不用支付更多的成本。

总的来说,大多数IT系统是通过降本增效的方式来创造价值。

如果一个公司自身规模较小,实际上有没有数字化并没有太大的差异,纸质表格或者Excel解决问题,要远比建立一个IT系统来的方便。

现实世界充满的复杂性,主要有以下几个方面的重要原因。第一个是个体人的复杂性。第二个是组织行为的复杂性,第三个是外在环境的复杂性。

人的复杂性受到哪些因素影响

  1. 遗传和基因: 个体的基因组可以影响他们的生理和心理特征,包括性格、智力、遗传性疾病等。
  2. 社会文化背景: 个体所处的文化、社会和家庭环境对其行为有着深刻的影响,包括价值观、信仰、习惯和行为模式。
  3. 认知能力和思维过程: 个体的认知能力、思考方式和解决问题的方式会影响他们的行为。这包括记忆、决策制定、学习和思维风格。
  4. 情感和情绪: 个体的情感状态和情绪可以对他们的行为产生重大影响。情感可以包括愉快、焦虑、愤怒、悲伤等。
  5. 社会影响: 家庭、朋友、同事和社会群体的影响对个体的行为有很大作用。这包括社会支持、压力、群体压力等。
  6. 经济状况: 个体的财务状况和社会经济地位可以塑造他们的行为,包括消费、储蓄、投资和职业选择。
  7. 教育和学习经历: 教育程度、学习经历和培训可以塑造个体的技能、知识和职业选择。
  8. 健康和生理状态: 个体的健康状况、身体疾病、慢性病和药物使用都会影响他们的行为。
  9. 个体目标和动机: 个体的目标、动机和愿望会驱动他们的行为,包括追求成功、满足基本需求、寻求快乐等。
  10. 环境和外部条件: 个体所处的物理环境、社会环境和政治环境也会影响他们的行为,包括可用资源、法律法规和社会制度。

组织的复杂性受到哪些因素的影响

  1. 组织规模和结构: 组织的规模、层次结构和内部组织形式会显著影响其复杂性。大型组织通常比小型组织更复杂。
  2. 组织目标和战略: 组织的使命、目标和战略决定了其运作方式,不同的战略可能需要不同的资源和流程。
  3. 内部流程和程序: 组织的内部业务流程、政策和程序对其复杂性有很大影响。复杂的流程和程序可能导致效率低下。
  4. 员工多样性: 组织的员工多样性包括文化、技能、背景和经验的多样性。这会影响沟通、协作和决策制定的复杂性。
  5. 技术和信息系统: 组织采用的技术和信息系统可以显著增加复杂性,尤其是在数字化时代。
  6. 市场竞争和外部环境: 外部市场的竞争、法规变化、消费者需求变化等因素会影响组织的战略和运营,增加了复杂性。
  7. 领导和管理风格: 领导者的管理风格和决策方式可以影响组织的文化和工作氛围,从而影响复杂性。
  8. 法律法规和合规性要求: 组织必须遵守各种法律法规和合规性要求,这些要求可以增加组织的复杂性。
  9. 资源管理: 资源的分配和管理,包括资金、人力资源和物资,会影响组织的运作和复杂性。
  10. 变革管理和创新: 组织的能力适应变化和采纳创新也是一个重要因素,因为它们可以影响组织的灵活性和适应性,也可能增加复杂性。

外部环境的复杂性受到哪些因素的影响

  1. 全球化: 全球化使各种国际关系和经济交流更加复杂,包括国际贸易、跨境投资和全球供应链。
  2. 技术进步: 技术的不断演进和创新对外部环境产生深远影响,包括数字化、自动化、人工智能等。
  3. 市场竞争: 全球市场上的竞争激烈,各种新兴竞争者和创新产品的涌现增加了复杂性。
  4. 政治和法律环境: 不同国家和地区的政治和法律环境不断变化,涉及税收政策、贸易法规、合规性要求等。
  5. 社会文化因素: 消费者需求、价值观和文化因素对产品和服务的需求产生重大影响,对市场策略和品牌形象有影响。
  6. 环境可持续性和气候变化: 环境问题和气候变化对许多行业和组织的运营产生了新的挑战和法规。
  7. 金融市场: 金融市场的波动、汇率变化和利率政策会对企业的财务状况和决策产生重要影响。
  8. 自然灾害和突发事件: 自然灾害、流行病、政治危机等突发事件可以迅速改变外部环境,对组织造成不确定性。
  9. 人口变化: 人口的增长、老龄化和移民等因素会影响市场规模和劳动力供应。
  10. 科学和技术突破: 科学研究和技术突破可能导致新产品、新市场和新竞争者的涌现,改变外部环境。

其中在人的本质中,最重要的一点是利己思维,就是每一件事情,都会去考虑一下对自己是否有利,如果有利他才会有动力去做,如果是有害的,他会想尽办法去阻挠事情的发展,从而确保自身的利益不受影响。

在上述复杂性的基础之上,我们应该如何去构建一个数字化系统,并让系统去承载业务。

无论我们是否去做业务系统,业务本身就在哪里,我们可以通过各种方式去收集需求,并通过设计进行编码,最终变成一个数字化系统。

首先可以通过原型图去描述业务系统。

  1. 线框图(Wireframes): 线框图是最基本的原型类型,通常以黑白简化的形式展示页面或屏幕上的布局、元素和基本结构,而不考虑颜色、字体或细节。
  2. 低保真原型(Low-Fidelity Prototypes): 这种原型通常包括简单的线框图,用于展示用户界面的基本布局和交互元素,但不包括详细的设计或视觉效果。
  3. 高保真原型(High-Fidelity Prototypes): 高保真原型包括更多的细节和设计元素,通常包括颜色、字体、图像和更精细的交互效果,以更准确地模拟最终产品的外观和感觉。
  4. 互动原型(Interactive Prototypes): 互动原型允许用户模拟产品的实际使用体验,包括可以点击、滚动和与之交互的元素,以便测试和验证功能。
  5. 纸质原型(Paper Prototypes): 纸质原型是通过手工绘制或剪贴的方式创建的原型,通常用于快速的初步设计和用户测试。
  6. 数字原型(Digital Prototypes): 数字原型使用原型工具或设计软件创建,可以更轻松地共享和修改,并允许添加互动和动画效果。
  7. 移动应用原型(Mobile App Prototypes): 这种原型是专门为移动应用程序设计的,通常包括对手机或平板电脑上的交互和布局进行建模。
  8. 桌面应用原型(Desktop App Prototypes): 这种原型适用于桌面应用程序,通常涵盖桌面操作系统上的用户界面和功能。
  9. Web 应用原型(Web App Prototypes): 专为Web应用程序设计的原型,通常模拟网页上的布局、导航和交互。
  10. 三维原型(3D Prototypes): 这种原型用于建模和演示三维产品或环境,例如虚拟现实(VR)或增强现实(AR)应用程序。

也可以通过一些流程图去描述系统。

  1. 基本流程图(Flowchart): 基本流程图是最常见的类型,用于展示一系列步骤或决策,通常使用标准的流程图符号。
  2. 数据流图(Data Flow Diagram,DFD): DFD图用于显示系统、应用程序或业务过程中数据的流动和处理方式,突出数据输入、输出和处理的关系。
  3. 活动图(Activity Diagram): 活动图是用于可视化业务流程、系统交互和工作流程的UML图,通常用于软件开发和系统建模。
  4. 状态图(Statechart Diagram): 状态图描述了对象或系统在不同状态之间的转换和行为,通常用于建模有限状态机。
  5. 程序逻辑图(Program Logic Diagram): 这种图用于表示编程逻辑,通常用于软件开发和算法设计。
  6. 价值流图(Value Stream Map): 价值流图用于分析和改进价值流程,特别是在精益生产和持续改进领域中使用。
  7. 时间线(Timeline): 时间线图用于显示一系列事件或任务的时间顺序和持续时间。
  8. 甘特图(Gantt Chart): 甘特图用于项目管理,显示任务的时间表、依赖关系和进度。
  9. 结构图(Structure Chart): 结构图通常用于软件设计,用于显示模块、子程序和函数之间的层次结构和调用关系。
  10. 管道和仪表图(Piping and Instrumentation Diagram,P&ID): P&ID图用于显示工厂和处理工程中的管道、仪器和控制系统。
  11. 组织图(Organizational Chart): 组织图显示组织中不同部门、职位和层次之间的关系和层次结构。
  12. 网络图(Network Diagram): 网络图用于显示项目的任务、依赖关系和关键路径,通常与项目管理一起使用。

  13. 现实世界开展的业务流程
  14. 业务系统的泳道图
  15. 业务系统的流程图
  16. 业务系统的线框图(原型图)
  17. 业务系统的

在通常人们的认知中,现实世界是充满趣味的、复杂的、难以理解的。尤其是加入了个体的很多特性,比如自私、贪婪等会增加这个世界的复杂程度。

声明: 本文采用 BY-NC-SA 授权。转载请注明转自: Ding Bao Guo