一个机械工程师也谈谈对数据和领域建模的理解

深入理解Java中的分层领域模型:构建高效软件架构的基石 分层领域模型(Layered Domain Model)是一种软件架构设计模式,它将系统划分为多个层次,每个层次负责特定的职责和功能。通过层次之间的明确划分和交互,分层领域模型能够有效地隔离变化、降低耦合度,从而提高系统的整体质量和开发效率。分层领域模型是一种广泛采用的软件架构设计模式,它通过将系统划分为不同的层次,使得各个层次各司其职,从而提高系统的可维护性、可扩展性和可测试性。 阅读详情
前言:最近jBeanBox项目收尾,感觉用Java初始化块来代替Spring的XML配置这种模式挺好的,手中有了这把锤子,于是看什么都象钉子,这不,又看上了Hibernate,  SSH三兄弟,紧跟在Spring后面,也是用XML或Annotation配置,配置也是固定的,不能在运行期动态生成和修改,好了,钉子就是它了。新项目名字都想好了,就叫jSQLBox,用来代替Hibernate。对了,顺便看看Hibernate还有什么其它毛病没有? 可是找来找去,没发现什么缺点,除了太复杂之外,想不出有什么问题。如果只是为了给Hibernate增加一个配置方式而重新发明一遍轮子,岂不是很可笑了,不行,一定要找出点毛病来,没病也得挑出病来。于是左看右看,也不知是我眼花了还是看的时间太长了,现在越看越觉得Hibernate象是一个过度设计的例子。于是本吐槽文诞生了,Hibernate的铁杆拥趸们可以不用看了,因为本文的目的就是贬低Hibernate,借以抬高这个八字还没一撇的jSQLBox。

开始前,先澄清一下"领域逻辑"和"领域模型"这两个词的区别,"领域逻辑"表示企业的内在业务规律,与是否使用了软件无关,这一点应该没什么疑问。 "领域模型"从中文字面理解应该是一个企业的业务模型,与软件术语无关,但是这个词在Martin的《企业架构》书中被转换成另一个含义,就是建立在面象对象基础上的概念模型,模型本身包含数据和行为,这与软件工程中的对象模型概念恰好一一对应,于是"领域模型"往往和"对象模型"等价,并且由面象对象软件来实现。 "领域模型"不是本文讨论的重点。但是笔者的观点是企业应用恰恰是 "领域模型"不能发挥作用的场合,这属于个人观点,如有不同意见请先别拍砖,听听我的理由:1)当一个问题复杂到用表格不能处理,必须借助面象对象模型来实现的地步时,通常已经非常复杂或冗长,已超出了人能理解和操纵的范围,适合计算机处理;而企业逻辑通常和人、钱、物打交道,逻辑简单,是能被企业中的业务专家理解和解释的,用复杂的模型来解决本质上很简单的问题是把问题复杂化。企业业务专家的头脑中基本没有对象、继承这些概念,他们的头脑中通常是一张张数据表,典型的代表就是企业会计,和他们谈面象对象是对牛弹琴。来到哪个国家,就要说哪个国家的语言,这才好交流。2)解决复杂问题的面象对象模型通常不是并发访问的,因为业务本身的复杂性使得并发访问编程难度极大,也就是说当你想解决的问题越来复杂时,业务本身的并发限制就越来越高,就越来越不能被称作企业应用3)面象对象模型通常用树或图结构来表示,往往必须用专用格式来保存,很难用统一的格式来存储,例如Office文档、三维制图、电路排版软件、网页文档等,它们各自有自已的专有文件格式,虽然有XML之类的通用格式,但显然XML是一种树结构而不是可以放进数据库的表结构。个别情况下,对象模型本身就是持久层,如电路板布线图,打印出来就可以用于生产排版。当一个面象对象模型可以用O-R工具来映射成数据库表保存时,只能说明这个模型太简单了,简单到可以直接用少数表格来表达了。4)面象对象模型是随着计算机技术进展才出现的,最常见的应用场合是在计算机帮助下可以建立以往人力不能建立的复杂模型,建模经常是工作的全部或重点;而企业应用建模本身不是重点,因为企业逻辑在面象对象概念提出之前已经存在,软件只是对企业逻辑进行表达和梳理,帮助企业逻辑更好地运作而产生效益。综上而言,用面象对象这个工具来处理企业应用,很可能是杀鸡用牛刀了,牛刀能不能杀鸡? 当然能,但是要练好牛刀很难,让一个开发团队都练好,更难。
在"领域模型"和"领域建模"出现之前,企业应用软件开始编制前,也是要建模的,这通常表示为互相关联的表格,并辅之以文字或图形、线条等来表达这些表格之间的关系,这就是传统的E-R模型(即通常说的”数据建模”)。本文以图1来说明一种基于数据(表)建立企业逻辑模型的优点,(如因转载原因不可见,请打开此图所在网页: https://github.com/drinkjava2/jSQLBox图片文件名为p1.png,因为下文都是基于此图展开讨论)
AI时代测试工程师的进化:从代码验证者到质量赋能者 在软件工程领域,自动化测试与质量保障体系是确保软件可靠性的核心技术。其原理在于通过系统化的验证手段,覆盖功能、性能、安全等多维度质量属性,从而在软件交付前发现潜在缺陷。随着AI编程助手(如代码生成模型)的普及,软件开发的生产力范式正在发生转移。这些工具能够高效完成模式化编码任务,但其在复杂业务逻辑理解、非功能性需求满足及系统性风险识别方面存在固有局限。这为测试工程师创造了新的技术价值:从执行重复用例转向设计智能质量策略、构建AI增强型测试工作流,并成为复杂系统与业务逻辑的关键守护者。通过掌握测试开发、领域建 阅读详情

相关推荐

用韩剧《Start-Up》做AI领域建模:场景反向工程实战指南

在AI工程实践中,‘领域建模’是连接业务需求与技术实现的核心能力,其本质在于从真实场景中抽象出可计算的结构化逻辑。传统教学常困于数据干净但脱离语境的‘Hello World陷阱’,而影视作品如韩剧《Start-Up》恰恰提供了经专业提纯、文化嵌入、节奏严整的高保真需求现场——它天然承载着产品定义、技术选型、合规适配与团队协作的完整决策链。通过场景反向工程(Scenario Reverse Engineering)方法,工程师可将剧中人物动线、白板草图、API调试过程等叙事元素,映射为UML用例图、PRD需求

weixin_33713503的博客 408

GLM-5如何实现工程级AI编程:从需求理解到PDF设计文档生成

在现代前端与全栈开发中,'工程化AI编程'正从概念走向落地——它指的不是简单代码补全,而是模型对系统约束、技术选型、持久化方案及跨平台兼容性的深度建模能力。其核心原理在于将软件开发过程解耦为领域建模、约束映射与接口契约三层推理链,从而支撑真实可交付产物(如300KB结构化PDF设计文档、IndexedDB事务方案、Web Worker图像隔离策略)的自动生成。这种能力显著提升原型验证效率、降低技术债风险,并已在微信读书EPUB解析、美图秀秀滤镜加速、AI大富翁事件溯源等典型Web应用场景中完成闭环验证。GL

all00747的博客 446

软件研发黑盒验收时代:AI驱动下的质量保障与工程师转型

软件测试中的白盒与黑盒方法是保障软件质量的核心概念。白盒测试关注代码内部逻辑与实现细节,而黑盒测试则聚焦于输入输出是否符合预期,强调结果导向。随着AI大模型和自动化测试技术的突破,软件研发的验收范式正从过程可见向结果验证演进。这一转变的技术价值在于提升研发效能与业务敏捷性,通过智能测试用例生成、视觉回归测试等AI驱动手段,构建强大的自动化验证网络。在实际应用场景中,工程师的角色从代码实现者转向架构设计者与验证定义者,更专注于系统架构、复杂问题拆解及人机协作流程设计。在此背景下,软件研发正步入以功能达成为核心

weixin_29314405的博客 301

介绍几个虚拟建模仿真执行平台

使用场景,仿真建模/虚拟仿真/系统建模->代码自动生成->系统仿真执行->查看仿真状态,现有平台包括Modelica语言和OpenModelica、MATLAB/Simulink、ANSYS、Ptolemy II、SystemC等

sluck_0430的博客 4450

用豆包构建个人领域知识系统:从问答工具到认知增强接口

知识精深不是信息堆砌,而是通过结构化建模降低认知熵,建立可迭代、可验证、私有化的领域知识体系。在AI工具泛滥的今天,真正具备技术价值的是能将大模型转化为‘语义关系挖掘机’与‘动态知识引擎’的能力——这要求用户超越通用提问,转向基于真实业务场景的认知基元识别、三阶提示词架构设计、跨域验证闭环和可执行知识资产沉淀。豆包凭借其中文语义网络拓扑优势、私有数据本地化处理机制及增量学习能力,成为少数支持高保真领域建模的AI接口。本文聚焦工程化落地路径,覆盖半导体、医疗、法律、教育等垂直领域实战方法论,为知识型从业者提供

weixin_30315723的博客 434

Java领域模型驱动设计案例

什么是领域(Domain)? 我们所做的软件系统的目的都是来解决一系列问题,例如做一个电商系统来在线销售自己企业的产品;做一个灰度发布平台来提升服务的质量和稳定性。任何一个系统都会属于某个特定的领域,例如: 论坛是一个领域:要做一个论坛,那这个论坛的核心业务是确定的:比如用户发帖、回帖等核心基本功能; 电商系统是一个领域:只要是电商领域的系统,那核心业务就是:商品浏览、购物车、下单、减库存、付款交易等核心环节; 同一个领域的系统都具有相同的核心业务,因为他们要解决的问题的本质是类似的。因此可以推断:一个领域本质上可以理解为一个 问题域 。只要确定了系统所属的领域,那么这个系统的核心业务,即要解决的关键问题就基本确定了。通常我们说,要成为一个领域的专家,必须要在这个领域深入研究很多年才行,只有这样才会遇到非常多的该领域的问题,积累了丰富的经验。

【纯血鸿蒙】安装hdc工具

参考资料:

oh.K 5557

数字锁相环的原理与FPGA实现

数字锁相环是锁相环电路的全数字实现。锁相环电路能够实现对输入信号的相位进行跟踪,进而在噪声中提取纯净的有用信号。以上就是今天要讲的内容,本文简单地介绍了锁相环的原理,然后,在Vivado仿真平台上,通过verilog做仿真验证。最终仿真结果能够实现锁定,但锁定时间较长,表明参数仍可做调整。

weixin_45857378的博客 8510

【WiFi软件开发】IOCTL和Netlink----用户空间和内核空间交互的两种方式

linux开发中通常会涉及用户空间和内核模块的交互。本文介绍了两种典型的用户空间和内核模块通信方式:ioctl和netlink

liuwe1ye的博客 2349

LSM6DSOW陀螺仪轮询驱动:从I2C/SPI配置到数据读取全解析

惯性测量单元(IMU)是现代嵌入式系统中实现姿态感知与运动跟踪的核心传感器,其通过加速度计和陀螺仪测量线性加速度与角速度。在嵌入式开发中,轮询(Polling)作为一种基础且可靠的通信方式,通过主循环主动查询传感器状态,简化了初始调试与验证流程。对于I2C/SPI接口的数字传感器,掌握寄存器配置、数据就绪标志检查及原始数据转换是通用的驱动方法,能够快速验证传感器工作状态并理解数据流。LSM6DSOW作为一款高性能6轴IMU,支持可配置的量程与输出数据速率,适用于无人机飞控、手持云台等高动态场景。本文以LSM

weixin_28728265的博客 559

【GameFramework框架】二、GameFramework框架介绍

Game Framework框架是由E大(Ellan Jiang)开源的一款基于Unity的通用游戏框架。Game Framework框架提供了游戏开发中常用的框架基础模块,将基础模型进行了封装,在资源管理和资源更新方面比较完善,可以大大加大开发进程,加快开发速度,并且还在在此此处上保证产品质量。实在是代码开发、框架学习、编程进阶、居家旅行哦不对,是提升自己的最佳实践。Game Framework框架。

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 5851

Open3D 进阶(22)间接平差法拟合空间曲线

空间曲线拟合在电力线三维重建中有着广泛的应用,本文利用python使用间接平差法对三维空间曲线的拟合进行代码实现。

点云侠的博客 1058

【SpringBoot 4.x 第70节】夯爆了,企业级 API 设计规范落地:状态码、错误码、接口文档与兼容性(超详解)!

🏆 本文收录于 《滚雪球学 Spring Boot 4.x》 专栏。本专栏面向 有一定 Java 基础,但尚未系统学习 Spring Boot 的读者,采用“滚雪球式学习法”:先跑通、再理解、再重构、再上线,带你从第一个 Hello API 开始,逐步完成一个可部署、可监控、可扩展的后端项目。

**My Coding Family** 132

数据架构师必看:大数据时代的架构演进与实践

数据架构是企业数据资产的“骨架”——它决定了数据能多快被处理、多准被分析、多安全被存储。本文将聚焦从传统架构到大数据架构的关键转折点,覆盖技术选型、典型场景、落地挑战三大核心命题,帮助读者建立“演进思维”而非“固定思维”。本文将按“历史演进→核心概念→技术原理→实战案例→趋势展望”的逻辑展开,用“超市仓库升级”贯穿始终,让抽象的技术概念具象化。传统数据仓库:精但小,适合结构化、批量分析。大数据架构:大但乱,适合全类型、海量数据存储。流批一体:解决实时+批量的效率问题。湖仓一体。

AI Agent Harness Engineering 914

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

上一篇: 一个机械工程师也谈谈对数据和领域建模的理解
下一篇: 发现一种超简单的将SQL包装成PrepraredStatement的方法
Drinkjava2
博客等级 码龄11年 9粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值