博文

目前显示的是与查询条件“客户模型”相符的博文

为什么要建模;怎么建模才合理;“领域”模型具体指什么?(DDD)

要回答这个问题,需要三步走:为什么要建模;怎么建模才合理;“领域”模型具体指什么。 为什么要建模 客户在专卖店买了个手机,留下了自己的名字和电话,店员做了记录。客人来时,只要店员能在记录里查到客人名字和电话的订单,就说明客人曾经买过手机。 什么人需要查看订单呢?店员 A 需要查看,店员 B 也需要查看。客人来咨询的时候,应该能随时调取。老板也需要查看,用来汇总销售情况。大家都要看,格式就必须统一,要不然有的只记了电话,有的只记了名字,有的什么都没记,就乱套了。 大家商量之后决定:订单必须包括客户名字、电话和购买的商品。那么就有“订单 = 名字 + 电话 + 商品信息”。这是店员和老板的 心智模型 me…

后端开发实践系列——领域驱动设计(DDD)编码实践

postThumbnail
Martin Fowler在《 企业应用架构模式 》一书中写道: I found this(business logic) a curious term because there are few things that are less logical than business logic. 初略翻译过来可以理解为:业务逻辑是很没有逻辑的逻辑。 的确,很多时候软件的业务逻辑是无法通过推理而得到的,有时甚至是被臆想出来的。这样的结果使得原本已经很复杂的业务变得更加复杂而难以理解。而在具体编码实现时,除了应付业务上的复杂性,技术上的复杂性也不能忽略,比如我们要讲究技术上的分层,要遵循软件开发的基本原则…

当中台遇上 领域驱动设计DDD,我们该如何设计微服务?

postThumbnail
借用当下最流行的段子做个开场白。 “设计原则千万条,高内聚低耦合第一条,架构设计不规范,开发运维两行泪!”。 在分布式架构下,单体应用被拆分为多个微服务,为了保证微服务的单一职责和合理拆分,“高内聚、松耦合”是最宝贵的设计原则。 通俗点讲,高内聚就是把相关的行为聚集在一起,把不相关的行为放在别处,如果你要修改某个服务的行为,最好只在一处修改。如果做到了服务之间的松耦合,那么修改一个服务就不需要修改另一服务,一个松耦合的服务应该尽可能少的知道与之协作的那些服务的信息。 从集中式架构向分布式架构的技术转型,正如从盖砖瓦房向盖高楼大厦转变一样,必然要有组织、文化、理念和设计方法的同步更新,其中最不可或缺的…

领域驱动设计在优惠中心重构中的实践

postThumbnail
前言 正如领域驱动设计之父 Eric Evans 所著一书的书名所述,领域驱动设计(Domain Driven Design)是一种软件核心复杂性应对之道。 在我们解决现实业务问题时,会面对非常复杂的业务逻辑。即使是同一个事物,在多个子业务单元下代表的意思也是不完全一样的。比如「商品」这个词,在商品详情页语境中,是指「商品基本信息」;在下单页语境中,是指「购买项」;而在物流页面语境中,又变成了「被运送的货物」。 DDD 的核心思想就是让正确的领域模型发挥作用。所谓「术业有专攻」,DDD 指导软件开发人员将不同的子业务单元划分为不同的子领域,在各个子领域内部分别对事物进行建模,来应对业务的复杂性。 一…

Tailscale 开源版中文部署指南(支持无限设备数、自定义多网段 、自建中继等高级特性)

postThumbnail
目前国家工信部在大力推动三大运营商发展 IPv6,对家用宽带而言,可以使用的 IPv4 公网 IP 会越来越少。有部分地区即使拿到了公网 IPv4 地址,也是个大内网地址,根本不是真正的公网 IP,访问家庭内网的资源将会变得越来越困难。 部分小伙伴可能会选择使用 frp 等针对特定协议和端口的内网穿透方案,但这种方案还是不够酸爽,无法访问家庭内网任意设备的任意端口。更佳的选择还是通过 VPN 来组建大内网。至于该选择哪种 VPN,毫无疑问肯定是 WireGuard,WireGuard 就是 VPN 的未来。 我已经不止一次向大家推荐使用 WireGuard 了,我累了,不想再讲了,你爱 JB 用…

此博客中的热门博文

youtuber油管主推荐

公众号推文镶嵌小程序

Podcast播客 Feed 订阅推荐