文章目录前言DDD程序员的我的地盘我做主DDD的适用场景Ontology企业架构师的天下大同Ontology的适用场景残酷对比理想型 vs 现实型实体与关系行为与规则成本对比特斯拉 vs 共享单车决策指南什么时候用哪个场景一创业公司先活下来场景二中大型企业统一语义场景三混合架构两者都要场景四简单应用别折腾结语别让AI猜你的客户是谁P.S. 无意间发现了一个巨牛的人工智能教程非常通俗易懂对AI感兴趣的朋友强烈推荐去看看传送门https://blog.csdn.net/HHX_01前言你知道一个程序员最崩溃的瞬间是什么吗不是凌晨三点的线上告警也不是产品经理说就改个小需求。而是当你信心满满地跟AI说“帮我分析一下客户数据”AI反问你“请问您指的’客户’是订单系统里的客户还是CRM里的客户还是财务系统里那个叫’client’但实际是供应商的神秘生物”这时候你才意识到你们公司五个系统对客户这个单词有八种定义三种拼写两种性别。这不是技术债这是技术高利贷利滚利那种。今天咱们聊两个听起来像玄学实际上能救你命的建模方式DDD和Ontology。别被名字吓到一个叫领域驱动设计一个叫本体论听着都像哲学系挂科补考的内容。但搞清楚它俩至少能让你下次跟AI对话的时候不被问得怀疑人生。DDD程序员的我的地盘我做主DDD这玩意儿说白了就是一句话在一个明确的边界内让代码忠实反映业务逻辑。打个比方DDD就像你租房子。你租了个单间这单间就是你的限界上下文。在这个房间里你是王。你的充电器插在床头袜子扔在椅子下泡面放在抽屉里——这就是充血模型行为和数据住在一起不分家。但是你的室友不能进来乱动你的东西。你们的冰箱是分开的厕所是共用的但马桶圈各用各的。这就是DDD的核心精神我的地盘我做主跨边界交流靠领域事件——也就是敲门或者发微信“哥们我用下你洗洁精啊”而不是直接冲进人家房间拿。DDD的实体就像你的身份证有唯一编号。值对象就像你的外卖订单immutable——对就是不可变别跟我扯我这份黄焖鸡米饭虽然地址写错了但它本质还是那份饭在DDD里地址错了就是新的订单原单已经死了死在历史的尘埃里。聚合根就像你的钱包。钱包里有卡、有现金、有女朋友的照片如果有的话。你不能直接从外面抽一张卡出来你必须通过钱包这个聚合根来操作。为什么因为聚合根要保证内部一致性——你不能一边刷卡一边把卡烧了这在物理上虽然可能但在业务上不合理。DDD的适用场景所以DDD适合什么场景适合那种我们团队就十几个人业务复杂但范围有限大家坐在一个办公室喊一嗓子就能对齐的情况。就像合租人不多规矩好定谁也别越界。Ontology企业架构师的天下大同如果说DDD是合租那Ontology就是小区物业管理。Ontology不跟你谈我的房间它谈的是整个小区。在Ontology眼里世界上的一切都是对象类型ObjectType对象之间的关系是链接类型LinkType而且关系本身是一等公民——就像小区物业不仅管业主还管业主和停车位的关系、业主和狗的关系、业主和邻居投诉的关系。在DDD里关系是对象的附属品。你的订单有订单项订单项是订单的一部分像钱包里的卡。但在Ontology里订单和订单项的关系是独立存在的可以挂属性、可以被查询、可以参与决策。就像物业不仅知道张三家养了狗还知道这条狗咬过几次人、罚款交了没有、下次什么时候打疫苗——这些信息不是狗的属性也不是张三的属性是关系的属性。Ontology的行为叫ActionType是声明式的。什么意思就是你写规则的时候不是写if…else而是写前置条件库存充足后置效果扣库存、生成订单、发通知。权限、审计、副作用全打包在一起像预制菜加热即食。最狠的是Ontology的审计是自动的。你调一个Action平台自动记录谁、什么时候、改了什么、为什么改。而在DDD里审计通常靠程序员手动埋点或者AOP切面——就像你自己记日记有时候忘了有时候瞎写有时候写了但没人看。Ontology还特别适合AI时代。因为AI需要理解业务语义而不是只执行代码。你给AI一个Ontology模型AI就知道客户在整个企业里只有一个定义知道谁能访问什么数据知道什么操作需要审批。这就好比给AI发了一本《员工手册》而不是让它自己猜。Ontology的适用场景Ontology适合那种公司大、部门多、系统像孤岛、合规要求严、还想让AI干活的场景。就像买别墅虽然贵但住得舒服物业还帮你遛狗。残酷对比理想型 vs 现实型咱们来做个残酷的对比就像相亲时的简历和真人。实体与关系DDD说“实体是代码里的类有ID、有状态、有方法。” Ontology说“实体是平台的一等公民连权限都挂在它身上。”DDD说“关系是对象的引用聚合内强引用聚合外弱引用。” Ontology说“关系是独立的LinkType自带属性像微信朋友圈一样可以被点赞、评论、转发。”行为与规则DDD说“行为是聚合根的方法校验写在方法里出异常就抛。” Ontology说“行为是声明式的ActionType前置条件、后置效果、权限、审计全配置好像点外卖选规格。”DDD说“跨服务通信靠领域事件各服务各自为政通过消息队列传纸条。” Ontology说“我们都在同一个语义底座上跨系统调用就是同一个Action不需要翻译因为大家说的同一种语言。”成本对比特斯拉 vs 共享单车但是注意这个但是。DDD的启动成本低。Spring Boot Kafka几千块服务器就能跑。Ontology呢你需要一个平台像Palantir Foundry这种或者自建语义层。这玩意儿的价格够你买好几辆特斯拉。所以创业公司用Ontology就像刚毕业就住别墅——不是不行是钱包会哭。反过来大公司用DDD做全企业统一就像用Excel管理上市公司。不是不能用是迟早会崩。你见过哪个世界500强靠Excel做财务的哦好像真有但那是反面教材决策指南什么时候用哪个场景一创业公司先活下来你是个创业公司五个程序员一个产品经理还没有产品经理其实是老板兼职。业务复杂但范围有限预算紧张服务器是按月租的。这时候选DDD。就像合租先活下来别整那些虚的。场景二中大型企业统一语义你是个中大型企业有十几个事业部系统之间互相不认识客户在ERP里叫Customer在CRM里叫Client在财务系统里叫Payer。合规要求严格审计是刚需还想让AI帮做决策。这时候选Ontology。就像买别墅虽然贵但住得舒服物业还帮你遛狗。场景三混合架构两者都要你想两者都用。Ontology做语义层统一全公司的语言DDD做执行层每个服务内部用充血模型保证业务逻辑。这叫混合架构就像小区有物业管理但你自己家里还是你说了算。这也是目前最现实的方案。场景四简单应用别折腾你就做个个人博客或者一个简单的后台管理系统。这时候两个都别用。朴素MVC 关系数据库就像住青旅便宜、够用、不折腾。结语别让AI猜你的客户是谁所以回到开头那个问题为什么AI听不懂你的客户因为你没有给它一个统一的语义世界。DDD能帮你把代码写清楚但只限于一个团队、一个服务。Ontology能帮你把全公司的语义统一但代价是平台和成本。在AI时代建模不再是程序员的自嗨而是AI理解业务的前提。你建不好模AI就瞎猜AI瞎猜你的业务就崩业务崩了你就得凌晨三点起来改代码。所以别再让客户有八种定义了。选一个适合你的建模方式让AI知道这个客户是我的人你别乱动。P.S. 无意间发现了一个巨牛的人工智能教程非常通俗易懂对AI感兴趣的朋友强烈推荐去看看传送门https://blog.csdn.net/HHX_01
AI看不懂业务?一文理清DDD和Ontology两种建模思想
文章目录前言DDD程序员的我的地盘我做主DDD的适用场景Ontology企业架构师的天下大同Ontology的适用场景残酷对比理想型 vs 现实型实体与关系行为与规则成本对比特斯拉 vs 共享单车决策指南什么时候用哪个场景一创业公司先活下来场景二中大型企业统一语义场景三混合架构两者都要场景四简单应用别折腾结语别让AI猜你的客户是谁P.S. 无意间发现了一个巨牛的人工智能教程非常通俗易懂对AI感兴趣的朋友强烈推荐去看看传送门https://blog.csdn.net/HHX_01前言你知道一个程序员最崩溃的瞬间是什么吗不是凌晨三点的线上告警也不是产品经理说就改个小需求。而是当你信心满满地跟AI说“帮我分析一下客户数据”AI反问你“请问您指的’客户’是订单系统里的客户还是CRM里的客户还是财务系统里那个叫’client’但实际是供应商的神秘生物”这时候你才意识到你们公司五个系统对客户这个单词有八种定义三种拼写两种性别。这不是技术债这是技术高利贷利滚利那种。今天咱们聊两个听起来像玄学实际上能救你命的建模方式DDD和Ontology。别被名字吓到一个叫领域驱动设计一个叫本体论听着都像哲学系挂科补考的内容。但搞清楚它俩至少能让你下次跟AI对话的时候不被问得怀疑人生。DDD程序员的我的地盘我做主DDD这玩意儿说白了就是一句话在一个明确的边界内让代码忠实反映业务逻辑。打个比方DDD就像你租房子。你租了个单间这单间就是你的限界上下文。在这个房间里你是王。你的充电器插在床头袜子扔在椅子下泡面放在抽屉里——这就是充血模型行为和数据住在一起不分家。但是你的室友不能进来乱动你的东西。你们的冰箱是分开的厕所是共用的但马桶圈各用各的。这就是DDD的核心精神我的地盘我做主跨边界交流靠领域事件——也就是敲门或者发微信“哥们我用下你洗洁精啊”而不是直接冲进人家房间拿。DDD的实体就像你的身份证有唯一编号。值对象就像你的外卖订单immutable——对就是不可变别跟我扯我这份黄焖鸡米饭虽然地址写错了但它本质还是那份饭在DDD里地址错了就是新的订单原单已经死了死在历史的尘埃里。聚合根就像你的钱包。钱包里有卡、有现金、有女朋友的照片如果有的话。你不能直接从外面抽一张卡出来你必须通过钱包这个聚合根来操作。为什么因为聚合根要保证内部一致性——你不能一边刷卡一边把卡烧了这在物理上虽然可能但在业务上不合理。DDD的适用场景所以DDD适合什么场景适合那种我们团队就十几个人业务复杂但范围有限大家坐在一个办公室喊一嗓子就能对齐的情况。就像合租人不多规矩好定谁也别越界。Ontology企业架构师的天下大同如果说DDD是合租那Ontology就是小区物业管理。Ontology不跟你谈我的房间它谈的是整个小区。在Ontology眼里世界上的一切都是对象类型ObjectType对象之间的关系是链接类型LinkType而且关系本身是一等公民——就像小区物业不仅管业主还管业主和停车位的关系、业主和狗的关系、业主和邻居投诉的关系。在DDD里关系是对象的附属品。你的订单有订单项订单项是订单的一部分像钱包里的卡。但在Ontology里订单和订单项的关系是独立存在的可以挂属性、可以被查询、可以参与决策。就像物业不仅知道张三家养了狗还知道这条狗咬过几次人、罚款交了没有、下次什么时候打疫苗——这些信息不是狗的属性也不是张三的属性是关系的属性。Ontology的行为叫ActionType是声明式的。什么意思就是你写规则的时候不是写if…else而是写前置条件库存充足后置效果扣库存、生成订单、发通知。权限、审计、副作用全打包在一起像预制菜加热即食。最狠的是Ontology的审计是自动的。你调一个Action平台自动记录谁、什么时候、改了什么、为什么改。而在DDD里审计通常靠程序员手动埋点或者AOP切面——就像你自己记日记有时候忘了有时候瞎写有时候写了但没人看。Ontology还特别适合AI时代。因为AI需要理解业务语义而不是只执行代码。你给AI一个Ontology模型AI就知道客户在整个企业里只有一个定义知道谁能访问什么数据知道什么操作需要审批。这就好比给AI发了一本《员工手册》而不是让它自己猜。Ontology的适用场景Ontology适合那种公司大、部门多、系统像孤岛、合规要求严、还想让AI干活的场景。就像买别墅虽然贵但住得舒服物业还帮你遛狗。残酷对比理想型 vs 现实型咱们来做个残酷的对比就像相亲时的简历和真人。实体与关系DDD说“实体是代码里的类有ID、有状态、有方法。” Ontology说“实体是平台的一等公民连权限都挂在它身上。”DDD说“关系是对象的引用聚合内强引用聚合外弱引用。” Ontology说“关系是独立的LinkType自带属性像微信朋友圈一样可以被点赞、评论、转发。”行为与规则DDD说“行为是聚合根的方法校验写在方法里出异常就抛。” Ontology说“行为是声明式的ActionType前置条件、后置效果、权限、审计全配置好像点外卖选规格。”DDD说“跨服务通信靠领域事件各服务各自为政通过消息队列传纸条。” Ontology说“我们都在同一个语义底座上跨系统调用就是同一个Action不需要翻译因为大家说的同一种语言。”成本对比特斯拉 vs 共享单车但是注意这个但是。DDD的启动成本低。Spring Boot Kafka几千块服务器就能跑。Ontology呢你需要一个平台像Palantir Foundry这种或者自建语义层。这玩意儿的价格够你买好几辆特斯拉。所以创业公司用Ontology就像刚毕业就住别墅——不是不行是钱包会哭。反过来大公司用DDD做全企业统一就像用Excel管理上市公司。不是不能用是迟早会崩。你见过哪个世界500强靠Excel做财务的哦好像真有但那是反面教材决策指南什么时候用哪个场景一创业公司先活下来你是个创业公司五个程序员一个产品经理还没有产品经理其实是老板兼职。业务复杂但范围有限预算紧张服务器是按月租的。这时候选DDD。就像合租先活下来别整那些虚的。场景二中大型企业统一语义你是个中大型企业有十几个事业部系统之间互相不认识客户在ERP里叫Customer在CRM里叫Client在财务系统里叫Payer。合规要求严格审计是刚需还想让AI帮做决策。这时候选Ontology。就像买别墅虽然贵但住得舒服物业还帮你遛狗。场景三混合架构两者都要你想两者都用。Ontology做语义层统一全公司的语言DDD做执行层每个服务内部用充血模型保证业务逻辑。这叫混合架构就像小区有物业管理但你自己家里还是你说了算。这也是目前最现实的方案。场景四简单应用别折腾你就做个个人博客或者一个简单的后台管理系统。这时候两个都别用。朴素MVC 关系数据库就像住青旅便宜、够用、不折腾。结语别让AI猜你的客户是谁所以回到开头那个问题为什么AI听不懂你的客户因为你没有给它一个统一的语义世界。DDD能帮你把代码写清楚但只限于一个团队、一个服务。Ontology能帮你把全公司的语义统一但代价是平台和成本。在AI时代建模不再是程序员的自嗨而是AI理解业务的前提。你建不好模AI就瞎猜AI瞎猜你的业务就崩业务崩了你就得凌晨三点起来改代码。所以别再让客户有八种定义了。选一个适合你的建模方式让AI知道这个客户是我的人你别乱动。P.S. 无意间发现了一个巨牛的人工智能教程非常通俗易懂对AI感兴趣的朋友强烈推荐去看看传送门https://blog.csdn.net/HHX_01