首页
学习
活动
专区
工具
TVP
发布

ThoughtWorks

专栏作者
907
文章
737245
阅读量
114
订阅数
DDD落地,如何持久化聚合
聚合是一组始终需要保持一致的业务对象。因此,我们作为一个整体保存和更新聚合,以确保业务逻辑的一致性。聚合是 DDD 中最为重要的概念,即使你不使用 DDD 编写代码也需要理解这一重要的概念 —— 部分对象的生命周期可以看做一个整体,从而简化编程。一般来说,我们需要对聚合内的对象使用 ACID 特性的事务。最简单的例子就是订单和订单项目,订单项目更新必须伴随订单的更新,否则就会有总价不一致之类的问题。订单项目需要跟随订单的生命周期,我们把订单叫做聚合根,它就像一个导航员一样
ThoughtWorks
2021-11-19
2.5K1
分布式计算框架状态与容错的设计
对于一个分布式计算引擎(尤其是7*24小时不断运行的流处理系统)来说,由于机器故障、数据异常等原因导致作业失败的情况是时常发生的,因此一般的分布式计算引擎如Hadoop、Spark都会设计状态容错机制确保作业失败后能够恢复起来继续运行,而新一代的流处理系统Flink在这一点上更有着优秀而简约的设计。
ThoughtWorks
2021-04-16
4260
Apache HBase内核深度剖析
前面一篇文章介绍了Kafka的具体内容,今天讲述一下HBase相关的知识。首先HBase作为大数据发展初期伴随Google三大论文问世的一个组件,在今天依旧被广泛的应用,今天我们来仔细的分析一下HBase的内部原理,了解一下HBase的具体内幕,以便在工作中更好使用它。以下内容涉及到的源码基于HBase 的Master分支编译出的最新的3.0.0版本。
ThoughtWorks
2020-04-07
9250
白话中台番外篇:DDD、EventStorming与业务中台
刚刚结束的2019年领域驱动设计峰会(DDD China Conference 2019),已经是DDD-China的第三年了,也是我参加的第二年,还记得去年分享的是《当我们谈中台时我们在谈些什么》,讲的更多是中台的Why和What,转眼间一年就过去了,弹指一挥间。
ThoughtWorks
2019-12-10
8440
后端开发实践系列之四——简单可用的CQRS编码实践
20多年前,Bertrand Meyer在他的《Object-Oriented Software Construction》一书中提出了CQS(Command Query Seperation,命令查询分离)的概念,指出:
ThoughtWorks
2019-10-14
1.1K0
浅谈CDC在微服务中的应用
CDC(Change Data Capture)是一种通过监测数据变更(变更包括新增、修改、删除等)而对变更的数据进行进一步处理的一种设计模式,通常应用在数据仓库以及和数据库密切相关的一些应用上,比如数据同步、备份、审计、ETL等。实际上,早在二十多年前,CDC就已经用来将应用系统的数据变更实时发送到数据仓库,进一步转换后传递到数据分析系统,这样能够在极小地影响生产的情况下,有效而及时地将数据传递到消费方。而在微服务架构逐渐流行的今天,这种古老的技术是否能够焕发新的生机?
ThoughtWorks
2019-08-09
1.4K0
后端开发实践系列——领域驱动设计(DDD)编码实践
的确,很多时候软件的业务逻辑是无法通过推理而得到的,有时甚至是被臆想出来的。这样的结果使得原本已经很复杂的业务变得更加复杂而难以理解。而在具体编码实现时,除了应付业务上的复杂性,技术上的复杂性也不能忽略,比如我们要讲究技术上的分层,要遵循软件开发的基本原则,又比如要考虑到性能和安全等等。
ThoughtWorks
2019-08-01
1.1K0
数据质量管理的一些思考
在近期的项目当中,我们为客户落地实施了数据资产平台。随后,在数据平台中接入了客户子公司的一个业务系统的明细数据。客户希望在我们的数据平台上通过数据探索和数据分析,来挖掘一些业务价值和业务创新点。
ThoughtWorks
2018-07-23
2.1K0
如何实现假设驱动开发 | TW洞见
今日洞见 文章作者来自ThoughtWorks:Barry O'Reilly,图片来自网络。 感谢ThoughtWorks校对小组:钟源、Adam、何璐、姚琪琳,欢迎联系我们加入小组。 本文所有内容,包括文字、图片和音视频资料,版权均属ThoughtWorks公司所有,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发布/发表。已经本网协议授权的媒体、网站,在使用时必须注明"内容来源:ThoughtWorks洞见",并指定原文链接,违者本网将依法追究责任。 记得我们在高中上自然科学课
ThoughtWorks
2018-04-20
1.1K0
TW洞见 | NoSQL数据库概览
关注“思特沃克ThoughtWorks”微信公众号,输入“洞见”或者“Insights”可以查看最新发布的洞见文章。 过去的五年,数据存储和管理领域一直出于混乱状态。大量的NoSQL数据库技术,让CIO们关于保护、合并和管理数据方面有了更大更多的选择。这些技术正在挑战关系型数据库在过去三十年的统治地位。这意味着关系型数据库统治时代的结束吗? 本文的作者,也是《数据库重构》一书的作者。 Over the last few years we have seen the rise of a new type of
ThoughtWorks
2018-04-17
5340
应用敏感信息的6个配置原则|洞见
无论是微服务还是单体应用,往往都会用到很多配置信息。在众多的配置信息中,有一类非常敏感,例如数据库账号密码、API Key、Service Account等。由于其特殊性,这些配置信息一旦泄露出去就很
ThoughtWorks
2018-04-17
8220
GoCD的正确打开方式|洞见
事件:ThoughtWorks在2016年11月发布的技术雷达中将“Jenkins as a deployment pipeline”列为了“暂缓”。 Jenkins以“持续集成”闻名,进入持续交付时代后,常被人们用来尝试搭建deployment pipeline,我以前也乐此不疲。遗憾的是Jenkins的设计是以单个job为核心,deployment pipeline的实现需要靠官方或社区插件来支持,看上去都能实现,但在实际使用中总让我觉得差了点什么。最近的一则广告可以完美表达这种体验: (图片来
ThoughtWorks
2018-04-17
2.7K0
移花接木:针对OAuth2的攻击|洞见
作为第三方应用,为了提升用户体验,往往会提供第三方社交账号登录或者绑定的功能,这背后使用到的关键技术是OAuth认证。想要在自己的应用里集成OAuth不是难事儿,各大社交网站都提供了详尽的文档指南。 OAuth的复杂度比较高,有不少安全方面的坑,开发者在使用过程中一不注意可能就会掉进去,比如说不正确的使用OAuth2可能会遭遇到CSRF攻击。本文将对这个安全风险做一个通俗易懂的解释。 ---- OAuth2 授权模式回顾 在开始之前,让我们先来回顾一下OAuth2中最典型的Authorization
ThoughtWorks
2018-04-17
1.3K0
8大前端安全问题(下)| 洞见
在《8大前端安全问题(上)》这篇文章里我们谈到了什么是前端安全问题,并且介绍了其中的4大典型安全问题,本篇文章将介绍剩下的4大前端安全问题,它们分别是: 防火防盗防猪队友:不安全的第三方依赖包 用了HTTPS也可能掉坑里 本地存储数据泄露 缺乏静态资源完整性校验 ---- 防火防盗防猪队友:不安全的第三方依赖包 现如今进行应用开发,就好比站在巨人的肩膀上写代码。据统计,一个应用有将近80%的代码其实是来自于第三方组件、依赖的类库等,而应用自身的代码其实只占了20%左右。无论是后端服务器应用还是前端应用开发
ThoughtWorks
2018-04-17
9130
前端不止:Retina屏幕下两倍图
所见不一定即所得 眼睛是心灵的窗户,也是蒙蔽你的一种途径。 假设,我给你一张图片,你觉得肉眼可以观察到全部的细节吗? 屏幕上一张清晰的图片 肉眼在屏幕上看到图片的清晰度由三个因素决定,一是图片像素本
ThoughtWorks
2018-04-17
2.6K0
星巴克数字忠诚十五年|洞见
2017年初,一条消息令所有北美零售商震动:星巴克用户所有存储在礼品卡和移动应用中的现金超过12亿美元,而这一成绩,超过了绝大多数美国银行机构(下图)。 在传统零售商中,星巴克将客户忠诚推至前所未有的
ThoughtWorks
2018-04-13
9230
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档