领域驱动设计&中台/如何让DDD落地户故事转变成领 域故事,最后领域故事⼜又如何变成为代码。 02 从需求到代码 京⻄西商城的需求 ‣ 产品运营⼈人员可以添加新的商品,编辑产品库存,并发布到京⻄西商城,⽤用户 可以进⾏行行购买; ‣ 京⻄西商城的买家可以查看产品可购买的库存数量量,并⽣生成购买订单,买家可 以撤单,查看订单的状态,对订单进⾏行行⽀支付(⽀支付宝)。⽀支付成功后,仓储 管理理员会收到出库请求,进⾏行行配货并发货。同时,买家可以查看物流状态以 及确认收货。 事件⻛风暴暴的结果 事件⻛风暴暴得到的命令和事件就没⽤用了了吗? 订单 已创建 库存 已锁定 提交 订单 ⽤用户 SubmitOrderCommand OrderCreated StockLocked 订单聚合创建订单服务 接收 仓库聚合的事件订阅者 仓库聚合锁定库存服务 发送 LockStockCommand ⽣生成 ⽣生成 接收 ⽣生成 QueryOrderCommand Given:导航【购物⻋车】 - When:确定购物⻋车中要提交的商品和数量量,然后点击提交; - Then:订单成功提交,从商品库存中锁定订单的数量量,提示⽓气泡“商品已保存成功” - And when:如果订单的数量量超过商品库存中可以锁定的数量量 - Then:订单⽆无法成功提交,提示⽓气泡“库存数量量不不够,仅剩X件” ⽤用户故事到领域故事 点击提交按钮后 1.订单API控制器器会收到创建订单请求,0 码力 | 32 页 | 3.25 MB | 1 年前3
领域驱动设计&中台/可视化的遗留系统微服务改造软件系统需要关注业务过程中发⽣生的业务数 据的变化。 事件⻛风暴暴示例例 订单 已创建 订单 已⽀支付 商城库存 已扣减 仓库库存 已占⽤用 商品 已创建 订单 已撤销 商城库存 已增加 出库单已 ⽣生成 出库单已 发货 投诉单 已创建 投诉单已 处理理 商城库存 已编辑 商品 已发布 商品销售 价格已编辑 订单 已发货 补货申请 单已创建 补货申请 补货申请 单已审批 ⼊入库单 已创建 ⼊入库单 已⼊入库 订单 已签收 订单已 确认收货 仓库库存 已扣减 仓库库存 已增加 商品已 编辑 退货单已 创建 退货单已 审核 订单已 退货 ⼊入库单 已创建 ⼊入库单 已⼊入库 仓库库存 已增加 寻找命令 事件⻛风暴暴 命令⻛风暴暴 寻找聚合 什什么是命令? 为什什么⽤用命令? 如何进⾏行行命令⻛风暴暴? (⻩黄⾊色即时贴)并进⾏行行表示; 划分限界上下⽂文 命令⻛风暴暴示例例 订单 已创建 订单 已⽀支付 商城库存 已扣减 仓库库存 已占⽤用 商品 已创建 订单 已撤销 商城库存 已增加 出库单已 ⽣生成 出库单已 发货 投诉单 已创建 投诉单已 处理理 商城库存 已编辑 商品 已发布 商品销售 价格已编辑 订单 已发货 补货申请 单已创建 补货申请0 码力 | 54 页 | 3.85 MB | 1 年前3
敏捷开发/LIVE-211是什么,聊聊研发效能度量那些事儿研发效能的度量量 需求响应周期 持续发布能力 交付吞吐率 交付过程质量 交付质量 交付周期 开发周期 集成发布时⻓长 发布频率 单位时间交付需求数 创建/关闭缺陷分布 缺陷库存 单位时间线上缺陷 线上问题解决时⻓长 持续快速、高质量 地交付价值的能力 软件的交付过程 已选择 分析中 就绪 开发中 待测试 验收中 待发布 已发布 需求池 需求开发周期 需求交付周期 端到端价值流 响应速度 需求响应周期 持续发布能力 交付吞吐率 交付过程质量 交付质量 交付周期 开发周期 集成发布时⻓长 发布频率 单位时间交付需求数 创建/关闭缺陷分布 缺陷库存 单位时间线上缺陷 线上问题解决时⻓长 从确认用户的需求,到需求上线的时长 这反应了团队(含业务、开发和运营等职能)对 客户问题和业务机会的响应速度 对需求进行澄清理解之后,可开发状态,到需求 ������� 交付质量量 需求响应周期 持续发布能力 交付吞吐率 交付过程质量 交付质量 交付周期 开发周期 集成发布时⻓长 发布频率 单位时间交付需求数 创建/关闭缺陷分布 缺陷库存 单位时间线上缺陷 线上问题解决时⻓长 单位时间的故障(线上缺陷)数 越少越好,尤其关注那些对业务造成重大影响的 故障,有非常明确的定级 线上问题,从发现到解决的时长 越短越好,线上问题得到解决的时长,也直接决0 码力 | 36 页 | 7.19 MB | 1 年前3
微服务架构及ServiceComb实践- (锁库存-下订单) CP MySQL-MGR 高带宽 NvmeSSD-持久化配置 索引-加 锁 update-where 2. 库存缓存 AP Codis 3. 收藏数据 AP Codis 用户发请 求查库存 里列表 读缓存的 库存的列 表返回 用户对有库存 的房子发起下 单请求 再次查 询缓存 列表 锁定 资格 下单 (减库 存) 减 资 格 有库存 无库存 无库存 有资格 无 有库存 无 Codis MySQL-MGR 微服务层的优化 1. SeviceComb优异的异步通讯模型,REST over Vertx。 2. 透明RPC模式+CompletableFuture。把异步继续进行。 3. 低超时+重试策略配置。“ 高可用”的定义?A跟a 的区别 客户端无异常。 4. Zuul VS edge-service(更优)。 5. 生产0 码力 | 14 页 | 2.04 MB | 1 年前3
使用微服务架构快速开发万级TPS高可用电商系统- (锁库存-下订单) CP MySQL-MGR 高带宽 NvmeSSD-持久化配置 索引-加 锁 update-where 2. 库存缓存 AP Codis 3. 收藏数据 AP Codis 用户发请 求查库存 里列表 读缓存的 库存的列 表返回 用户对有库存 的房子发起下 单请求 再次查 询缓存 列表 锁定 资格 下单 (减库 存) 减 资 格 有库存 无库存 无库存 有资格 无 有库存 无 Codis MySQL-MGR 微服务层的优化 1. SeviceComb优异的异步通讯模型,REST over Vertx。 2. 透明RPC模式+CompletableFuture。把异步继续进行。 3. 低超时+重试策略配置。“ 高可用”的定义?A跟a 的区别 à 客户端无异常。 4. Zuul VS edge-service(完胜)。 100并发0 码力 | 15 页 | 1.46 MB | 1 年前3
Zabbix 3.4 中文手册字符,则应该指定它。否则,结果可 能是出乎意料的和不可预测的。 在这种情况下,对不同数据库后台的行为描述如下。 MySQL 如果一个值在非 UTF8 编码中包含非 ascii 字符,那么当数据库存储此值时,该字符及该字符后的值将被丢弃。没有警告信息写入 zabbix_server.log. Relevant for at least MySQL version 5.1.61 PostgreSQL 由几个主要的软件组件构成,这些组件的功能如下。 Server Zabbix server 是 agent 程序报告系统可用性、系统完整性和统计数据的核心组件,是所有配置信息、统计信息和操作数据的核心存储器。 数据库存储 所有配置信息和 Zabbix 收集到的数据都被存储在数据库中。 Web 界面 为了从任何地方和任何平台都可以轻松的访问 Zabbix, 我们提供基于 Web 的 Zabbix 界面。该界面是 操作数据的中央仓库, 它是监控系统问题升级以至于激活警告管理器的 Zabbix 中 的实体。 基本的 Zabbix 服务器起作用分三个不同的组件; 他们是:Zabbix 服务器,Web 前端和数据库存储。 Zabbix 的所有配置信息都存储在服务器和 Web 前端进行交互的数据库中。Zabbix 的所有配置信息都存储在服务器和 Web 前端进行交互 的数据库中。例如,当你通过 Web 前端(或者0 码力 | 1757 页 | 12.63 MB | 1 年前3
WeRoBot 1.4.0 微信公众号开发框架文档d 用户卡券里点击查看 公众号进入会话 (Event) robot.update_member_card 会员卡积分余额发生 变动 (Event) robot.card_sku_remind 库存警告 (Event) robot.card_pay_order 券点发生变动 (Event) robot.submit_membercard_user_info 激活卡券 (Event) robot user_card_code code 序列号。 modify_bonus 变动的积分值。 modify_balance 变动的余额值。 CardSkuRemindEvent 当某个card_id的初始库存数大于200且当前库存小于等于100时,用户尝试领券, 微信推送的 Event。属性: name value type ‘card_sku_remind_event’ card_id 卡券 ID。 detail card_pay_order(f) 为券点发生变动 (card_pay_order_event) 事件添加一个 handler 方法的 装饰器。 card_sku_remind(f) 为某个card_id的初始库存数大于200且当前库存小于等于100 (card_sku_remind_event) 事件添加一个 handler 方法的装饰器。 check_signature(timestamp, nonce, signature)0 码力 | 82 页 | 88.39 KB | 1 年前3
WeRoBot 1.6.0 微信公众号开发框架文档d 用户卡券里点击查看 公众号进入会话 (Event) robot.update_member_card 会员卡积分余额发生 变动 (Event) robot.card_sku_remind 库存警告 (Event) robot.card_pay_order 券点发生变动 (Event) robot.submit_membercard_user_info 激活卡券 (Event) robot user_card_code code 序列号。 modify_bonus 变动的积分值。 modify_balance 变动的余额值。 CardSkuRemindEvent 当某个card_id的初始库存数大于200且当前库存小于等于100时,用户尝试领券, 微信推送的 Event。属性: name value type ‘card_sku_remind_event’ card_id 卡券 ID。 detail card_pay_order(f) 为券点发生变动 (card_pay_order_event) 事件添加一个 handler 方法的 装饰器。 card_sku_remind(f) 为某个card_id的初始库存数大于200且当前库存小于等于100 (card_sku_remind_event) 事件添加一个 handler 方法的装饰器。 check_signature(timestamp, nonce, signature)0 码力 | 85 页 | 89.26 KB | 1 年前3
WeRoBot 1.5.0 微信公众号开发框架文档d 用户卡券里点击查看 公众号进入会话 (Event) robot.update_member_card 会员卡积分余额发生 变动 (Event) robot.card_sku_remind 库存警告 (Event) robot.card_pay_order 券点发生变动 (Event) robot.submit_membercard_user_info 激活卡券 (Event) robot user_card_code code 序列号。 modify_bonus 变动的积分值。 modify_balance 变动的余额值。 CardSkuRemindEvent 当某个card_id的初始库存数大于200且当前库存小于等于100时,用户尝试领券, 微信推送的 Event。属性: name value type ‘card_sku_remind_event’ card_id 卡券 ID。 detail card_pay_order(f) 为券点发生变动 (card_pay_order_event) 事件添加一个 handler 方法的 装饰器。 card_sku_remind(f) 为某个card_id的初始库存数大于200且当前库存小于等于100 (card_sku_remind_event) 事件添加一个 handler 方法的装饰器。 check_signature(timestamp, nonce, signature)0 码力 | 83 页 | 88.85 KB | 1 年前3
WeRoBot 1.6.0 微信公众号开发框架文档用户卡券里点击查看 公众号进入会话 (Event) robot.update_member_card 会员卡积分余额发生 变动 (Event) 修饰符 类型 robot.card_sku_remind 库存警告 (Event) robot.card_pay_order 券点发生变动 (Event) robot.submit_membercard_user_info 激活卡券 (Event) robot user_card_code code 序列号。 modify_bonus 变动的积分值。 modify_balance 变动的余额值。 CardSkuRemindEvent 当某个card_id的初始库存数大于200且当前库存小于等于100时,用户尝试领券, 微信推送的 Event。属性: name value type ‘card_sku_remind_event’ card_id 卡券 ID。 detail card_pay_order(f) 为券点发生变动 (card_pay_order_event) 事件添加一个 handler 方法的装 饰器。 card_sku_remind(f) 为某个card_id的初始库存数大于200且当前库存小于等于100 (card_sku_remind_event) 事件添加一个 handler 方法的装饰器。 check_signature(timestamp, nonce, signature)0 码力 | 94 页 | 74.98 KB | 1 年前3
共 264 条
- 1
- 2
- 3
- 4
- 5
- 6
- 27













