DDD(中)
DDD 建模方法四色建模(风暴事件)是整个 DDD 这套软件设计方法中用于工程拆分界限上下文的非常重要的实践手段。通过建模过程快速识别业务领域中的关键事件和核心流程,也是在这个过程中设计出领域对象的,为后面详细设计和代码开发做指导。
可以把整个过程理解为,为工程开发提供面向对象设计,涵盖;领域拆分、界限串联、功能聚合。所以相比Service + 数据模型的贫血开发方式,DDD 前期需要付出更多的设计成本,但对于软件的长周期迭代,这样的好处是非常大的。
1. 建模目的工程的建模的目的是为了我们做工程开发时提供指导方案,就像一栋大楼的设计蓝图一样,也像一个超市中会有不同品类的货架,需要提前规划好。所以你需要在工程开发时所需的各类核心内容,都会在建模中体现,如;分几个包、有哪些核心对象、要串联什么流程、有哪些核心业务要实现、过程中与外部服务的交互。
那么为了达成一个讨论的共识,而不是每个人都有一套的标准和词汇。所以会使用 DDD 提供专门的建模方法和名词进行统一的设计,此外因为 DDD 的统一建模语言,不涉及技术编码,也具有通用性,所以可以在建模过程让产品、研发、测试、架构师等人员一起参与讨 ...
DDD(上)
DDDDDD 既不是 MVC 一样的工程结构,也不能直接等同于微服务架构,更不是一种设计模式。
DDD 是领域驱动设计(Domain-Driven Design)的缩写,这是一种主要软件开发方法,由 Eric Evans 在他的书《领域驱动设计:软件核心复杂性应对之道》(Domain-Driven Design: Tackling Complexity in the Heart of Software)中首次提出。
DDD 主要关注于创建与业务领域紧密相关的软件模型,以确保软件能够准确地解决实际问题。
不同的软件,可以有不同的软件模型,使用DDD创建出最适合的软件模型
核心理念领域模型(Domain Model):领域模型是对特定业务领域知识的精确表述,它包括业务中的实体(Entities)、值对象(Value Objects)、服务(Services)、聚合(Aggregates)、聚合根(Aggregate Roots)等概念。领域模型是DDD的核心,它反映了业务专家的语言和决策。
统一语言(Ubiquitous Language):统一语言是开发团队与业务专家共同使用的语言, ...
EasyExcel学习
EasyExcel是什么,相较于其他同类框架有什么优势?EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具。他能让你在不用考虑性能、内存的等因素的情况下,快速完成Excel的读、写等功能。
相比较于Apache poi、jxl
极大的减少了内存的消耗
无论是多大的Excel都不会导致内存溢出
2024/7/24记录
今日计划
早晚只吃三明治 + 牛奶
中午的花销控制在16元以内
两道算法题。
看技术书籍,并做好记录。
晚上睡眠时间控制在12点之前
保证有接近1个小时的运动时间
看一看视频分析项目,抽帧模块的代码(学一学ffmpeg)
编码规范
软件开发流程智能安全部门的开发流程软件开发的流程的目的是确保软件项目的顺利实施
需求收集与整理
产品部门与业务部门沟通,明确客户需求,不要想当然,整理好需求文档,让客户来确认
开发部门要保证
产品原型设计
设计产品原型图
与开发团队确认原型图
评审原型图
开发准备
编写概要设计 -> 概要设计说明书,软件的整体架构,详细设计,数据库设计,以及编码规范的制定
编写详细设计
制定编码规范
编码与单元测试
编写代码
单元测试
编写文档
冒烟测试
测试计划
测试实施 -> 缺陷跟踪报告
问题反馈
团队协作与问题反馈
团队协作
问题反馈
文档编写 -> 记录开发过程和实现细节 -> 开发计划,需求说明书,设计文档
编制测试计划与测试用例
明确测试目标
制定测试计划
编写测试用例
系统测试阶段
测试环境搭建(运维工程师,技术经理 )
测试数据准备 (测试人员)
测试执行
缺陷跟踪与审核
缺陷报告
缺陷审核
缺陷修复
代码升级与打包
编写软件升级说明
将软件打包
产品上线与验证
上线操作
线上监控
具体一些
2024/06/23记录
世界上没有完全笔直的道路,要准备走曲折的路。
不要被敌人的气势汹汹所吓倒,不要为尚能忍耐的困难所沮丧,不要被一时的挫折所灰心,道路是曲折的,道路是曲折的,前途是光明的,黑暗即将过去,黎明就在眼前,有力的条件和主动的恢复,产生于再坚持一下的努力之中。
2024/06/22记录
算法小计复习之前做过的习题,LeetCode Hot 100 两数之和 -> 最小覆盖子串 (12道)
素养提升完成了《图解TCP/IP》第二章的笔记
2024/06/17记录
今日计划
完成阅读《图解TCP/IP》的第四章,尽可能的完成笔记
2024/06/14记录
今日计划
完成阅读《图解TCP/IP》的第二章,尽可能的完成笔记
学习图论最短路算法
推进项目
算法小计存储图的三种方式
设 m = 边的数量,n = 点的数量
邻接矩阵 : 适用于 边的数量接近点的数量的平方的情况 $m \approx n^2$
// 邻接矩阵数组:w[a][b] = c 代表从 a 到 b 有权重为 c 的边int[][] w = new int[N][N];// 加边操作void add(int a, int b, int c) { w[a][b] = c;}
邻接表:适用于 边的数量接近点的数量的情况 $m \approx n$
int[] he = new int[N], e = new int[M], ne = new int[M], w = new int[M];int idx;void add(int a, int b, int c) { e[idx] = b; ne[idx] = he[a]; he[a] = idx; w[idx] = c; i ...
图解TCP/IP阅读笔记
网络基础知识计算机网络出现的背景计算机最初运行模式-独立模式
随着计算机发展,逐渐演变为连接多太计算机以实现信息共享
计算机网络根据网络的规模大小,可以分为 LAN(局域网) 和 WAN(广域网)
LAN:
WAN:
最初的计算机网络是由几台计算机相连在一起形成的私有网络,随着这种私有网络的不断发展,越来越多的私有网络尝试互相连接来组成更大的私有网络,最终形成了不局限于公司或者部门内部,而是可以与互联网中任意一台计算机进行通信的网络。
计算机与网络发展的7个阶段最初的计算机使用的系统是 批处理系统
批处理:事先将用户程序和数据装入卡带和磁盘,并由计算机按照一定的顺序读取,从而使用户所要执行的这些程序和数据能够一并批量得到处理的方式
继批处理系统之后,出现的是分时系统
分时系统:多个终端与一个计算机相连,允许多个用户同时使用一台计算机的系统,以达到“一人一机”的目的
分时系统的重要特征:多路线、独占性、交互性、及时性
分时系统的出现促进了像BASIC这样能够与计算机实现交互的编程语言的发展
在分时系统中,计算机与每个终端之间用通信线路连接,这并不意味着计算机与计算机之间也已 ...