欢迎光临汤雪华的博客

一个人一辈子能坚持做好一件事情就够了!坚持是一种刻意的练习,不断寻找缺点突破缺点的过程,而不是重复做某件事情。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2019年7月24日

摘要: 参考资料: 架构篇:https://yq.aliyun.com/articles/698301 模型篇:https://yq.aliyun.com/articles/701593 实现篇:https://yq.aliyun.com/articles/710363 架构设计 存储模型设计 群主场景的优 阅读全文

posted @ 2019-07-24 17:27 netfocus 阅读(3243) 评论(1) 推荐(2) 编辑

2019年7月4日

摘要: 邮箱核心业务场景: 发邮件 收邮件 查看邮件 邮箱业务我们关注的核心信息 草稿箱 收件箱 已发送邮件 未读邮件 重要邮件 垃圾邮件 已删除邮件 核心领域模型文字版 共2个模型,如下: 邮件(Mail,聚合根): ID 标题 内容 附件 是否重要:是、否 发送人邮箱地址 收件人邮箱地址列表(支持多个, 阅读全文

posted @ 2019-07-04 16:35 netfocus 阅读(3432) 评论(0) 推荐(3) 编辑

2019年6月24日

摘要: UML: 聚合关系:成员对象是整体的一部分,但是成员对象可以脱离整体对象独立存在。如汽车(Car)与引擎(Engine)、轮胎(Wheel)、车灯(Light)之间的关系为聚合关系,引擎、轮胎、车灯可以脱离车而存在,比如把一个引擎换到另一个汽车上也可以。 组合关系:也表示的是一种整体和部分的关系,但 阅读全文

posted @ 2019-06-24 17:48 netfocus 阅读(5618) 评论(14) 推荐(5) 编辑

2019年6月11日

摘要: 我们在DDD领域建模过程中,往往会很容易忽略对关系的建模,或者可以理清两个名词之间的关系是1对1、1对多、多对多,但是不知道如何在模型中设计这些关系。尤其是在多对多的场景中,仅仅靠体现名词对象之间的关联关系来表达这种关系就会显得缺乏表现力,这个时候就可以将“关系”提炼为模型中一个显式的概念。 例如, 阅读全文

posted @ 2019-06-11 10:57 netfocus 阅读(2094) 评论(0) 推荐(2) 编辑

2019年6月5日

摘要: 前言 本文想再讨论一下关于领域、业务、业务模型、解决方案、BC、领域模型、微服务这些概念的含义和关系。初衷是我发现现在DDD领域建模以及解决方案落地过程中,常常对这些概念理解不清楚或者有歧义,导致我们不知道如何运用这些概念来落地我们的软件。先通过一个图来说明一下这些概念之间的关系,如下图所示 领域、 阅读全文

posted @ 2019-06-05 15:41 netfocus 阅读(9708) 评论(17) 推荐(33) 编辑

2019年5月24日

摘要: 整理一个精简的DDD领域建模基本流程,供大家在DDD领域建模实践中进行参考。 在以上过程中,还有两点也是非常重要的: 逐步积累一个统一语言(UL)的领域术语表,方便各方人员沟通; 除了领域建模外,针对每个用例场景,尝试画一下系统顺序图也很有用,系统顺序图定义了系统外部角色和系统之间在某个场景下的具体 阅读全文

posted @ 2019-05-24 11:05 netfocus 阅读(5881) 评论(4) 推荐(4) 编辑

2019年5月17日

摘要: 转自:http://www.cnblogs.com/esingchan/p/3917718.html 维基的简介:Paxos算法是莱斯利·兰伯特(Leslie Lamport,就是 LaTeX 中的"La",此人现在在微软研究院)于1990年提出的一种基于消息传递且具有高度容错特性的一致性算法。 P 阅读全文

posted @ 2019-05-17 17:41 netfocus 阅读(1096) 评论(0) 推荐(2) 编辑

2019年5月14日

摘要: 背景 ENode是一个CQRS+Event Sourcing架构的开发框架,Event Sourcing需要持久化事件,事件可以持久化在DB,但是DB由于面向的是CRUD场景,是针对数据会不断修改或删除的场景,所以内部实现会比较复杂,性能也相对比较低。而Event Store实际上对数据只有新增和查 阅读全文

posted @ 2019-05-14 11:23 netfocus 阅读(4424) 评论(5) 推荐(24) 编辑

2016年12月15日

摘要: 设计文档模板: 一些其他的思考: 去除一切花俏的建模技巧,我觉得最重要的方向就是去努力分析问题和事物的本质,针对这个本质进行领域建模。这个领域建模,最主要的还是锻炼的人的事物抽象能力。10个人,建出来的领域模型都不同。本质原因就是大家对同一个问题的理解不同,对事物的本质的理解不同。虽然最终都能解决当 阅读全文

posted @ 2016-12-15 10:38 netfocus 阅读(9389) 评论(2) 推荐(12) 编辑

2016年12月13日

摘要: 我总结出来的操作性强又说明原理的调漂方法:1)只要半水空勾的时候,漂露出N目,N大于0(之所以要大于0是为了保证铅坠+双钩比浮漂要轻);2)然后挂上双饵后露出M目,M可以等于0(等于0的时候说明挂上双饵后双钩+双饵+铅坠比浮漂的浮力重,反之,则比浮力轻);3)然后就开始将浮漂往上拉,直到露出的目数Z 阅读全文

posted @ 2016-12-13 21:48 netfocus 阅读(1497) 评论(1) 推荐(1) 编辑

2016年9月27日

摘要: 前言 前段时间针对EQueue的完善终于告一段落了,实在值得庆祝,自己的付出和坚持总算有了成果。这次新版本主要为EQueue实现了集群功能,基本实现了Broker的高可用。另外还增加了很多实用的功能,对性能也做了很多优化。总之,EQueue越来越成熟了。 EQueue最新版本信息 Nuget:htt 阅读全文

posted @ 2016-09-27 00:16 netfocus 阅读(8401) 评论(25) 推荐(37) 编辑

2016年9月26日

摘要: 选择ENode意味着什么可能很多人还不太清楚。我简单整理了一下: 意味着你选择了:你需要做DDD领域建模、选择了事件驱动的架构、选择了CQRS架构、选择了最终一致性、选择了事件溯源、选择了分布式。这些你都调研过了,再考虑是否你需要使用。 所以ENode不是一个简单的类库型的框架,它是一个架构型的框架 阅读全文

posted @ 2016-09-26 09:51 netfocus 阅读(11330) 评论(9) 推荐(9) 编辑

2016年9月25日

摘要: 转自:http://www.cnblogs.com/Wayou/p/how_to_choose_a_license.html 下面是更多开源协议的一个表格任君选择,总有一款是你的菜。 不过先来了解一些下方表格中出现的用词的解释: 协议和版权信息(License and copyright notic 阅读全文

posted @ 2016-09-25 16:58 netfocus 阅读(2594) 评论(0) 推荐(0) 编辑

2016年8月17日

摘要: IO操作可以分为3类:同步阻塞(BIO)、同步非阻塞(NIO)、异步(AIO)。 同步阻塞(BIO):在此种方式下,用户线程发起一个IO操作以后,必须等待IO操作的完成,只有当真正完成了IO操作以后,用户线程才能做后续的事情。 同步非阻塞(NIO): 在此种方式下,用户线程发起一个IO操作以后,可返 阅读全文

posted @ 2016-08-17 22:15 netfocus 阅读(1187) 评论(1) 推荐(0) 编辑

2016年7月15日

摘要: 限流算法 常见的限流算法有:令牌桶、漏桶、计数器。 1. 令牌桶限流 令牌桶是一个存放固定容量令牌的桶,按照固定速率往桶里添加令牌,填满了就丢弃令牌,请求是否被处理要看桶中令牌是否足够,当令牌数减为零时则拒绝新的请求。令牌桶允许一定程度突发流量,只要有令牌就可以处理,支持一次拿多个令牌。令牌桶中装的 阅读全文

posted @ 2016-07-15 11:57 netfocus 阅读(3159) 评论(1) 推荐(2) 编辑

2016年7月11日

摘要: 最近打算用C#实现一个基于文件的EventStore。 什么是EventStore 关于什么是EventStore,如果还不清楚的朋友可以去了解下CQRS/Event Sourcing这种架构,我博客中也有大量介绍。EventStore是在Event Sourcing(下面简称ES)模式中,用于存储 阅读全文

posted @ 2016-07-11 00:01 netfocus 阅读(8354) 评论(13) 推荐(34) 编辑

2016年6月7日

摘要: 从遇到问题开始 当人们要做一个软件系统时,一般总是因为遇到了什么问题,然后希望通过一个软件系统来解决。 比如,我是一家企业,然后我觉得我现在线下销售自己的产品还不够,我希望能够在线上也能销售自己的产品。所以,自然而然就想到要做一个普通电商系统,用于实现在线销售自己企业产品的目的。 再比如,我是一家互 阅读全文

posted @ 2016-06-07 01:43 netfocus 阅读(74868) 评论(53) 推荐(167) 编辑

2016年5月3日

摘要: 原文地址:http://blog.csdn.net/rdhj5566/article/details/50646599 一、背景 我们实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果。 例如: 1. 前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果。 2. 阅读全文

posted @ 2016-05-03 09:54 netfocus 阅读(5487) 评论(5) 推荐(13) 编辑

2016年4月17日

摘要: ENode架构图 什么是ENode ENode是一个.NET平台下,纯C#开发的,基于DDD,CQRS,ES,EDA,In-Memory架构风格的,可以帮助开发者开发高并发、高吞吐、可伸缩、可扩展的应用程序的一个应用开发框架。 开源项目地址:https://github.com/tangxuehua 阅读全文

posted @ 2016-04-17 15:30 netfocus 阅读(15644) 评论(44) 推荐(40) 编辑

2016年3月24日

摘要: 拍下减库存(拍减) 拍减方式是指在买家提交订单的时候库存就减掉了,拍减需要防恶拍。 付款减库存(付减) 付减方式是指提交订单时不减库存只生成订单,当买家付款完毕后才减库存;付减需要防超卖,超卖是指买家付完款后减库存时库存已经没有了,导致买家付了款但买不到货。因为承若付了款就有货,没货就赔钱,所以必须 阅读全文

posted @ 2016-03-24 20:30 netfocus 阅读(5981) 评论(2) 推荐(5) 编辑