领域建模:分清问题域和问题解决域(上)

简介: 领域建模:分清问题域和问题解决域(上)

领域建模刍议(一):

分清问题域和问题解决域


领域与领域模型

俗话说,人人心中有一个Hamlet,人人心中也都有一个领域模型的定义。


常见的有:


说法1:我理解的领域是对业务工作进行归类划分,归类的方式是业务工作具有相关的知识,这些所需要的知识构成一个领域,这些知识是业务工作的背景,通过对领域的分析,可以帮助我们挖掘、分析、理解业务工作的本质。 也就是说,领域是为需求分析工作服务的,它的目的是挖掘、分析、理解业务工作的本质。


说法2:领域模型就是对领域内的概念类和现实世界中对象的可视化表示。

说法3:企业应用架构模式中明确提出了三种领域逻辑组织模式:事务脚本、领域模型和表模块。领域模型同时将行为和数据作为领域逻辑的核心。


从上面可以3种说法,可以看到不同上下文不同的观点,甚至未必是同一个表达对象。企业应用架构模式中的领域模型是设计到实现层的一个概念,而说法1,说法2种的领域是业务层面及分析阶段的一个概念。因此,本文特指[领域模式]为业务视角的模型,引用定义如下:


•     领域: 是相对于系统而言的,是系统要解决的现实问题。

     领域模型是对领域内的概念类或现实世界中对象的可视化表示(百度)

    领域模型是针对某个特定问题的所有相关方面的抽象模型(Wikipedia)


微信图片_20220121143315.jpg


思考,如何对上图的元素建模?

 

领域建模的好处

领域建模的好处,有哪些呢?


不同角色统一语言、统一认知


微信图片_20220121143338.jpg



如上图所示,客户需求历经演变之后已经面目全非,每一个加工制造环节都以为在[正确的做事]。君不见这样的生动局面一再上演:


产品经理宣讲prd,产品经理需要分别把名词翻译给业务方和开发人员,一则业务语言,一则技术语言。


几个架构师在小黑屋吵了半天,为了争论一个名词定义。比如什么是支付?百度百科的解释:社会经济活动所引起的货币债权转移的过程。包括:交易、清算、结算。

那么对于下列情况是否属于支付范畴就是可以根据其内涵来比照了。

  • 用户A转账给B。
  • 用户通过某某网站还信用卡。
  • 用户在天猫购买了一个东西,使用花呗付款。

由此可见,显性的统一语言很重要,让干系人明白讨论的是一件事情。


对业务本质描述,抓到主旨

比如在支付宝渊源的发展过程中,我们先后使用有红包、实时优惠、商户优惠券等产品。这是烟囱式架构发展下的产物。


微信图片_20220121143354.jpg


行业也有其它类似券的东东,如下图所示:


微信图片_20220121143409.jpg


这3个产物我们锊一下:

1、     对于商户或者机构而言,这些是否可称之产品,可以面向商户售卖包括收费。

2、     对于用户而言,是否需要理解这3个东西不同的?这些认知对于营销,对于交易促成,对于品牌的好处是什么?

3、     对于支付宝平台而言,他们的管理模式有何区别?

4、     对于技术团队而言,他们是否可以抽象?

后来,我们在产品上形成了如下定义:

 

券定义:


是一种票据,作为券发行方和拥有方之间凭证,具有一定的价值和法律效应。


相关干系方:


券的发放方[提供权益]


券的拥有方[享受权益]


劵的发放工具[是券发行方向拥有方发放券凭证的工具]


券形式:


以介质分类:纸质券,电子券


以使用方式分类:入场券,礼品券,提货券,代金券、红包,打折卡,满减卡等


可以把券作为基础产品,在业务形态上可以包装为打折卡,满减卡等用户感知的[产品]或者是[营销工具]。

相关文章
|
Dubbo Java 应用服务中间件
微服务技术系列教程(30) - Dubbo-SpringCloud与Dubbo区别
微服务技术系列教程(30) - Dubbo-SpringCloud与Dubbo区别
667 0
|
5月前
|
人工智能 安全 开发工具
重构研发流程:AI编程载体的技术架构如何破解行业痛点
在研发团队的日常工作中,环境配置繁琐、单任务执行效率受限、代码审查存在盲区、跨设备研发受制约等问题,一直是影响研发效率的核心痛点。传统AI编程工具多聚焦于代码补全、片段生成等单一功能,难以从底层解决研发流程中的协同与执行问题。一款面向研发团队的AI编程助手,并非简单的工具叠加,而是从研发模式出发的全面变革,其分层解耦+插件化扩展的技术架构设计,为AI能力与研发全流程的深度融合奠定了基础,也让全链路智能化研发成为可能。
|
人工智能 安全 数据安全/隐私保护
|
11月前
|
存储 人工智能 搜索推荐
AI智能体记忆机制深度解析:8种策略与实现思路
AI智能体的记忆能力是构建高质量对话与个性化服务的核心。本文解析8种常用记忆策略,包括全量记忆、滑动窗口、相关性过滤、摘要压缩、向量数据库、知识图谱、分层记忆及类OS内存管理,结合代码示例说明其原理与适用场景,助力开发者根据业务需求选择合适方案,实现高效、可扩展的AI系统。
|
JavaScript Java 数据库
企业微信接入系列-扫码绑定/登录
讲述在企业后台管理平台账号绑定企业微信以及企业微信扫码登录企业管理平台
企业微信接入系列-扫码绑定/登录
|
人工智能 自然语言处理 JavaScript
鸿蒙 Next 对接 AI API 实现文字对话功能指南
本指南介绍如何在鸿蒙 Next 系统中对接 AI API,实现文字对话功能。首先通过 DevEco Studio 创建项目并配置网络权限,选择合适的 AI 服务(如华为云或百度文心一言)。接着,使用 Node.js 转发请求,完成客户端与服务器端代码编写。最后进行功能测试与优化,确保多轮对话顺畅、性能稳定。此过程需严格遵循开发规范,充分利用系统资源,为用户提供智能化交互体验。
725 0
|
云安全 存储 安全
带你读《阿里云安全白皮书》(二十二)——云上安全重要支柱(16)
在全球化背景下,阿里云高度重视云平台的安全合规建设,确保客户在不同地区和行业能够满足监管要求。阿里云通过140多项安全合规认证,提供全面的专业安全合规服务和便捷高效的安全合规产品,帮助企业高效且低成本地实现安全合规目标。更多详情可参见阿里云官网“阿里云信任中心 - 阿里云合规”。
|
移动开发 HTML5
HTML5中的audio在手机端和微信端的不能自动播放
再做H5页面的时候,发现audio在手机端和微信端添加了autoplay以后还是不可以自动播放,这是因为手机端为了节约流量所设置的
|
存储 人工智能 JSON
【AI大模型应用开发】【LangChain系列】3. 一文了解LangChain的记忆模块(理论实战+细节)
本文介绍了LangChain库中用于处理对话会话记忆的组件。Memory功能用于存储和检索先前的交互信息,以便在对话中提供上下文。目前,LangChain的Memory大多处于测试阶段,其中较为成熟的是`ChatMessageHistory`。Memory类型包括:`ConversationBufferMemory`(保存对话历史数组)、`ConversationBufferWindowMemory`(限制为最近的K条对话)和`ConversationTokenBufferMemory`(根据Token数限制上下文长度)。
1095 0