首页 > 其他分享 >学习《领域驱动设计-软件核心复杂性应对之道》的过程随笔

学习《领域驱动设计-软件核心复杂性应对之道》的过程随笔

时间:2024-09-11 20:36:04浏览次数:1  
标签:沟通 模型 复杂性 领域 之道 开发 设计 软件 随笔

本随笔谨用于记录本人学习《领域驱动设计-软件核心复杂性应对之道》的过程和收获,愿与大家共享之

初写于2024.07.24,学习未竟,随笔伴行--

 

本人于工作期间阅读该书,发现很多值得反复学习的方法和思考方式,随笔记录;

兴之所至,兴尽即止---


本文是针对面向对象开发人员所编写的,如不合适,请自行斟酌是否继续阅读---

接下来正文开始:

前言

作者结合自己的开发经验,在书中为作出设计决策提供了一个框架,并为讨论领域设计提供了一个技术词汇库

本书讨论的前提是:

1.大多数项目中,主要的焦点应该是领域和领域逻辑;ps:所谓领域和领域逻辑即项目完成后落地实施时所面向的人群标签,所涉及的人群标签,设备和物流等物理和非物理的实体和概念性实体等以及它们之间的数据流转方向和方式等;

2.复杂的领域设计应该是基于模型;ps:MBD允许客户和工程师模拟和验证在开发早期的设计,即通过早期先设计业务流程的方式?在设计初期确定好业务的流程,至少是大概流程,后续基于此流程进行软件的开发;

 

其次,本书主要是面向“敏捷开发过程”这一新体系:

敏捷开发是一种基于迭代开发的新的开发体系;它倡导极限编程,反对预先设计。尽管体系承认设计决策对软件的重要性,但它更倾向于将精力投入到促进沟通和提高项目快速变更能力的工作中。

因此,在敏捷开发的过程中,开发人员至少更少的设计,每次只利用最简单但能实现目标的方案即可,并在后续的开发中进行不断的重构,最终得到满足客户真正需要的设计

(该思想类似于贪心算法,在每一步都寻求局部最优解,从而获取最终的全局最优解)

但是这样的开发体系也存在一些问题:

1.在寻求局部最优解的过程中,可能会导致最终结果偏离全局最优解,这是所有的贪心算法的通病;

2.敏捷开发的思想要求开发人员每次都使用最简单有效的方案来实现本次设计目标,这可能导致前期的设计不足会影响到后期开发的设计难度;

3.敏捷开发对软件开发人员的设计能力有一定的要求,需要开发人员具有敏锐的设计感和在设计中的缜密思考能力;

 

第一部分 运用领域模型

第一章 消化知识

软件的作用是为了满足业务的使用需求,其核心是帮助用户解决领域相关的问题;这意味着一个软件的设计不应该围绕软件本身,而是要围绕着解决领域中的问题为核心,并且以提升客户的使用体验为宗旨对软件进行优化和改进

1.有效建模的要素:

(1)模型和实现之间的绑定;软件的作用是为了满足业务的需求,所以软件和业务之间是存在天然的联系的,沟通过程中的模型和模型的实现也是存在天然的联系的,沟通和迭代应该是基于他们之间的这种联系的;

(2)建立了一种基于模型的语言;一种基于模型的语言,而不是简单的通过日常语言来沟通。语言是沟通的重要工具,合适的工具能够大幅提升工作效率,沟通也一样,尤其是在软件设计领域的沟通中,使用基于模型的语言既能保证沟通的效率也能保证所有的沟通都是基于模型和实现的绑定关系进行的;

(3)开发一个蕴含丰富知识的模型;对象具有行为和强制性规则,模型不仅仅是一种数据模式,它还是解决复杂问题的不可或缺的部分,其包含各种类型的知识;

(4)提炼模型;在模型被持续迭代优化的过程中,其核心的属性和动作应该被保持,一些一开始觉得重要但后续觉得不重要的信息应该被移除;

(5)头脑风暴和实验;不存在所谓的“灵光一闪”,所有的灵感都来源于丰厚的积累,所谓的灵感只是在无数个不好的方案被废弃掉后终于被通过的普通的念头;

 2.知识消化

没时间写了,先下班,后面再补....

标签:沟通,模型,复杂性,领域,之道,开发,设计,软件,随笔
From: https://www.cnblogs.com/jxsmxx/p/18321679

相关文章

  • 京东技术专家的修炼之道——成为一名“六边形战士”
    近期受邀参加【中心成长加油站xUP技术人】的技术大咖直播活动,分享了我在京东工作近10年的经验与成长。2015年加入京东以来,我经历了后端架构、大数据、基础算法和业务算法等多个技术领域,获得了集团金项奖、最美京东人、集团算法大牛等多项荣誉,并发表了30余篇专利和数篇顶级会议论......
  • 代码整洁之道--读书笔记(7)nz
    合集-读书笔记(7)1.代码整洁之道--读书笔记(2)09-052.代码整洁之道--读书笔记(1)09-043.代码整洁之道--读书笔记(3)09-06:蓝猫机场4.代码整洁之道--读书笔记(4)09-075.代码整洁之道--读书笔记(5)09-086.代码整洁之道--读书笔记(6)09-097.代码整洁之道--读书笔记(7)09-10收起代......
  • 代码整洁之道--读书笔记(7)
    代码整洁之道简介:本书是编程大师“Bob大叔”40余年编程生涯的心得体会的总结,讲解要成为真正专业的程序员需要具备什么样的态度,需要遵循什么样的原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来者引路,助其职业生涯迈上更高台阶。本......
  • 课堂随笔one~
    本节课我知道了:一、搜索技巧:我get到了一些高级搜索技巧,比如使用filetype:来搜索......
  • 每日算法随笔:反转链表 II
    明白了!下面我将基于你给的两种方法来详细解释题解,并展示每一步的变化过程。题解:反转链表II这道题要求我们反转链表中从第left个节点到第right个节点的部分,返回反转后的链表。我们会使用两种方法:递归和迭代。示例解析示例1:输入:head=[1,2,3,4,5],left=2,ri......
  • 每日算法随笔:反转链表
    题解:反转链表这道题目要求我们将一个单链表进行反转,返回反转后的链表。链表的反转可以通过迭代和递归两种方法来实现。下面我们将详细解释这两种方法,并通过例子演示每一步的变化过程。方法一:迭代法思路:我们用三个指针来完成链表的反转:prev表示前一个节点,curr表示当前节......
  • 代码整洁之道--读书笔记(6)
    代码整洁之道简介:本书是编程大师“Bob大叔”40余年编程生涯的心得体会的总结,讲解要成为真正专业的程序员需要具备什么样的态度,需要遵循什么样的原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来者引路,助其职业生涯迈上更高台阶。本......
  • 《代码整洁之道》-大师眼中的整洁代码是什么样
    几个月前写了一篇文章“如何写出难以维护的代码”,从中能大概了解到不好维护的代码是什么样,有哪些坏味道,那肯定有人会反问,难以维护的代码见的太多了,也知道长什么样,但是对于好维护的代码是什么样的比较模糊,带着这个问题,本人读完了世界软件开发大师马丁的《代码整洁之道》这本书,来了......
  • 《代码整洁之道》-大师眼中的整洁代码是什么样
    几个月前写了一篇文章“如何写出难以维护的代码”,从中能大概了解到不好维护的代码是什么样,有哪些坏味道,那肯定有人会反问,难以维护的代码见的太多了,也知道长什么样,但是对于好维护的代码是什么样的比较模糊,带着这个问题,本人读完了世界软件开发大师马丁的《代码整洁之道》这本书,来了解......
  • 20个销售页面范例及其成功之道
    销售——这是营销人员最渴望的转化。你会在销售页面上实现这一目标。所有你提供的免费电子书、你创建的挤压页面以及你运行的社交媒体活动,都是为了最终达成这一笔交易。如果你成功完成了一次,请为自己鼓掌。你的产品一定很棒,你的营销方式也一定非常出色。你看,让访客下载免费电......