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

ThoughtWorks

专栏作者
907
文章
737558
阅读量
114
订阅数
DDD的哲学意味(下)
大约公元前800年至前200年间,中国、希腊、印度和以色列的文明几乎在同一时期兴起,这被称为人类文明的轴心时代。不同文明展现出了不同的风貌。中国古代文化强调辩证逻辑,重视变化、联系和综合的思维方式,同时又有“子不语怪力乱神,六合之外存而不论”的唯物主义倾向。古希腊则重视严格的推理和分析,孕育了形式逻辑和公理化的数学体系。印度在婆罗门和佛教哲学中,从另一个方向将辩证法、逻辑和语言学推向极致。以色列的先知则创立了一神论的犹太教和政教合一的社会体制。
ThoughtWorks
2023-01-10
3820
使用上下游思维实现系统解耦
在软件开发领域,解耦这个词相信大家都不陌生。在面向对象的语境下,我们会应用SOLID原则来构建高内聚低耦合的应用,实现模块间的解耦;在复杂业务系统分析和建模时,会通过DDD的战略和战术设计帮助划分领域并实现分布式系统中服务的解耦;当我们在组织大型敏捷开发团队协同工作时,通过组建自治团队来减少摩擦,从而实现团队级别的解耦。 可以看到解耦无处不在,并且以此为目的投入,大家都会觉得是无比的政治正确,因为实现了解耦,我们的系统和应用就能更快速的扩展和演进,我们的团队就能更顺畅的合作并能更加快速的实现业务价值。 但是
ThoughtWorks
2022-09-02
3910
DDD 中的几个困难问题
领域到底是什么? 对领域这个词的理解就是 DDD 入门的第一个难关。我们有时会被客户问到,领域到底是什么?首先要清晰地知道领域是什么,才能划分核心域、支撑域和通用域。换句话说,构成领域的要素是什么呢? 领域是一个非常抽象的词汇,我们需要先对其具象化。在英语的语境中,“Domain” 其实就是业务,指的是现实生活中的各种事务。处理税务、记账、售货记录等,这些都是领域。 于是,我们给领域下了一个定义: 领域(Domain)是业务相关知识的集合。 通俗来说,领域就是业务知识。业务有一些内在规则,存在专业性,比如财
ThoughtWorks
2022-07-18
3460
活动回顾 | Thoughtworks DDD 社区助力丽江华坪桂梅助学会
Thoughtworks DDD 社区继2021年7月18日举办《DDD建模实战工作坊》的技术公益活动之后,再次于2022年3月26日举办《DDD诊所:遗留系统改造工作坊》的技术公益活动,这是社区第二次举办类似的技术公益活动。以下是这次活动的总结以及活动收益的捐献的公示。 捐赠信息 本次活动报名84人,参与人员费用是159元/人,最终活动门票收入除去第三方报名平台提现手续费(2%)以后的总收入13088.88,如同上次一样,我们已将本次活动收益全部捐赠到丽江华坪桂梅助学会,资金将会被用于丽江华坪女子高级中学
ThoughtWorks
2022-03-29
5230
高效编写测试用例的技巧
本话题暂不探讨是否有必要编写详细的测试用例,在确定要交付详细的测试用例这个前提下,分享如何更高效地完成测试用例的编写。
ThoughtWorks
2022-02-16
5980
使用函数式语言实践DDD
长期以来我都在实践OOP,进而通过OOP来实现DDD,通过面向对象的技巧来建立一个领域模型。OO的一些特性在建立领域模型时显得恰如其分,能否掌握OO的技巧,对创建领域模型有着至关重要的作用。这篇文章为大家介绍一种常见的函数式架构,特别是如何通过函数式语言实现DDD,进而利用函数式组合的特性,创建函数pipeline。软件架构是围绕着领域模型而做的若干设计,如果按照C4模型的定义,软件架构由下面四个级别的架构组成的:
ThoughtWorks
2021-09-15
4190
测试用例的管理
随着软件系统规模的持续增大,业务复杂度的持续增加,软件测试的复杂度也随之越来越大。而软件测试工作复杂度的直接体现,就是测试用例编写、维护、执行和管理,所以编写易读、易维护和易管理的测试用例可以有效的降低测试工作的复杂度。本文主要系统的介绍了测试用例的几种管理方法,包括每种的特点,适用场景以及实例。帮助不同的项目和团队,根据自己的情况选择适合的测试用例编写和管理方法,从而降低测试工作的复杂度,提高测试工作的效率。
ThoughtWorks
2021-08-23
1K0
测试用例的一些“真相”与“事实”
测试用例存在一些真相与事实,有些广为人知,有些却很隐蔽。正是基于这些真相与事实,可以对我们的手工测试、自动化测试、甚至规模化的自动化测试(数以万计的用例)带来不同的启发。
ThoughtWorks
2021-05-20
3740
DDD实现之路
编者按:这篇文章最早撰写于2014年,作者也是《实现领域驱动设计》的译者。几年过去了,DDD在坊间依然方兴未艾,然而它的复杂性所引发的误解也层出不穷。对于一些基本概念的澄清甚至溯源,会帮助我们回到起点,对它展开新的认识。
ThoughtWorks
2021-02-08
3870
使用 DDD 指导微服务拆分的逻辑
对于服务拆分的逻辑来说,是先设计高内聚低耦合的领域模型,再实现相应的分布式系统。服务的划分有一些基本的方法和原则,通过这些方法能让微服务划分更有操作性。最终在微服务落地实施时也能按图索骥,无论是对遗留系统改造还是全新系统的架构都能游刃有余。
ThoughtWorks
2020-12-22
5740
再谈领域驱动设计
本文从需求分析到API设计,试图描述领域驱动设计的过程及思想。同时也能看的出领域驱动设计并不是孤立存在的,它为解决开发团队和业务人员之间沟通而生,进而驱动微服务的划分以及API的设计。
ThoughtWorks
2020-11-25
6130
领域对象发展的极致就是代理
本文解释什么是动态领域建模(dynamic domain modelling),为何需要它,以及使其成为领域驱动设计一等公民的价值。
ThoughtWorks
2020-08-17
4390
讲真,别再拿着聚合寻找限界上下文了
聚合分组法采用“相关性”来划分限界上下文,其问题在于缺少一个主题,而子域恰好可以用来提供这个主题。本文的“愿景”-“核心域”-“周边子域”方法,不是唯一分解问题域的方法,任何可以将领域分解成高内聚低耦合的子域的方法都是可行的方法。
ThoughtWorks
2020-07-02
1.3K0
后端开发实践系列之四——简单可用的CQRS编码实践
20多年前,Bertrand Meyer在他的《Object-Oriented Software Construction》一书中提出了CQS(Command Query Seperation,命令查询分离)的概念,指出:
ThoughtWorks
2019-10-14
1.1K0
使用Domain-Driven创建Hypermedia API
在现实世界中我们会遇到各种各样的复杂场景,没有一种API设计方式可以应对所有的场景。区别于”Consumer-Driven Contract”,本文将描述另外一种设计API的方式:Domain-Driven API。这不是API设计的标准方法,但是也许他可以给你灵感,帮助你设计出更具有表达力的API。
ThoughtWorks
2019-08-29
8100
端口和适配器架构——DDD好帮手
大概一个月前,在做2018年领域驱动设计大会预告的时候,上一届大会的主题演讲者肖然提出这样的担忧:工具和方法似乎没有很好地解决“落地难”的挑战。
ThoughtWorks
2019-08-13
1.5K0
后端开发实践系列——领域驱动设计(DDD)编码实践
的确,很多时候软件的业务逻辑是无法通过推理而得到的,有时甚至是被臆想出来的。这样的结果使得原本已经很复杂的业务变得更加复杂而难以理解。而在具体编码实现时,除了应付业务上的复杂性,技术上的复杂性也不能忽略,比如我们要讲究技术上的分层,要遵循软件开发的基本原则,又比如要考虑到性能和安全等等。
ThoughtWorks
2019-08-01
1.1K0
重读领域驱动设计——如何说好一门通用语言
在 DDD 中,通用语言是以限界上下文为边界的。如果一个产品或者项目有多个限界上下文,我们就需要为每个限界上下文定义通用语言。
ThoughtWorks
2019-05-05
6200
受国际软件巨匠之托,邀你赴一场十年之约 | 技术雷达峰会
技术雷达是ThoughtWorks每半年发布一期的技术趋势报告,它不仅是一份持续的技术成熟度评估,其产生还源于ThoughtWorks另一个更大宏大的使命—IT革命。我们一直深信,IT行业从定位、价值、实践和技术都会发生巨大的变革。然而任何宏观的变革,都会有一些微小的信号,我们需要持续关注这些微小的改变,这也就是技术雷达的由来。
ThoughtWorks
2019-01-02
3870
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档