
技术雷达
文章平均质量分 92
Thoughtworks思特沃克中国
这个作者很懒,什么都没留下…
展开
-
如何利用链路追踪快速定位问题
随着微服务应用数量的增加,服务与服务之间的调用关系变得复杂,导致系统问题定位困难。链路追踪可通过唯一ID标记请求的整个调用链路,记录每个节点,快速定位问题。原创 2023-08-25 11:30:53 · 259 阅读 · 0 评论 -
DDD诊所——聚合过大综合症
“DDD诊所”是Thoughtworks DDD社区的一项活动,通过对同事们在实施DDD过程中遇到的问题进行分析和解答,共同提高开发水平。我们将其中一些典型案例整理成文供大家参考。之后也会考虑在适当的时候将这一形式对外部开放。原创 2023-08-18 14:21:45 · 230 阅读 · 0 评论 -
如何高效使用Gherkin
Gherkin语言有时候又被称为小黄瓜语言,它是第一种有着类似自然语言可读性的业务语言,用来描述业务行为,而不必关心具体的实现细节。它也是一种领域特定的语言,用来定义Cucumber格式的测试。原创 2023-08-04 12:01:17 · 347 阅读 · 1 评论 -
低碳 Web 实践指南
本文探讨了如何构建低碳 Web 应用来应对气候变化和碳排放问题。文章指出,通过精简压缩 Web 应用、降低数据传输量以及优化应用性能等措施,可以减少碳排放。文章还强调了在软件开发生命周期中落地相关举措的重要性,并提供了一些测试工具和实践经验。原创 2023-08-02 15:03:33 · 357 阅读 · 0 评论 -
什么是多运行时架构?
随着微服务架构在大规模组织中成熟落地,服务化体系规模的不断扩张也带来了一些典型问题:服务如何有效治理和接入?团队如何高效协作?本文介绍了多运行时架构解决上述问题的思路,并通过几种开源方案探讨了在实现中遇到的挑战,最后提出了对演进的设想及展望。本文介绍了多运行时架构的概念以及一些实现方案,并讨论了目前的实现中存在的限制与挑战,最后设想了一种未来可能的架构形态。原创 2023-07-27 12:10:30 · 1202 阅读 · 0 评论 -
如何避免AWS的高额账单?
尽管Serverless架构在某些方面表现出色,但在当前轰轰烈烈的“微服务”进程中,它仍然不是一种主要的选择。除了由于本身特性导致的使用场景受限外,我想乏善可陈的关于Serverless最佳实践的总结也是一个重要的因素。原创 2023-07-21 11:06:48 · 504 阅读 · 0 评论 -
从“高内聚,低耦合”说起
做设计时,优先以满足条件的模式为指导,当模式无法满足设计时,以对应层次的原则作为指导。当低层原则无法指导设计时,向高层依次寻找原则。当新的设计方案能解决某一类问题时,它可能就是一种新的模式。原创 2023-04-13 18:00:00 · 802 阅读 · 0 评论 -
Mongo初遇回忆录
MongoDB 是一个操作简捷,面向文档存储的数据库。本文以一种独特的视角揭示了它的实践体验。原创 2023-04-11 10:00:00 · 647 阅读 · 0 评论 -
探索云原生安全测试
由于不同时代所使用的架构和技术的差异,云时代面临着一系列安全测试挑战。然而,传统的安全测试手段和工具由于其固有的缺点,无法很好地适应云时代的安全测试需求。原创 2023-04-07 11:18:39 · 599 阅读 · 0 评论 -
浅谈基于深度学习的漏洞检测
深度学习在图像处理、视频实体识别、自然语言处理等领域中已经取得了长足的发展和突出的成果,这自然驱使着安全研究员们将神经网络引入到安全领域中。原创 2023-04-06 10:44:50 · 973 阅读 · 0 评论 -
如何简单实现ELT?
ELT非常适合为数据湖仓或数据集市提供数据管道,并且可以用更低的成本,根据需求,随时对大量数据进行分析。本文主要介绍如何使用Airflow和dbt实现ELT流程,并与snowflake集成的方法。原创 2023-03-29 09:55:15 · 758 阅读 · 0 评论 -
Web性能评价指标
遇见用户抱怨性能时,不要先入为主地判定性能差,逐个排查系统可能有的性能问题,优化非最佳实践。而应该理性地以用户为中心,收集真实用户数据,衡量系统性能好坏。原创 2023-03-24 09:51:53 · 575 阅读 · 0 评论 -
好代码的五个特质
如何衡量代码好坏?SOLID采用了一组原则来定义好的代码,但是原则更像是规则,要么符合,要么不符合。而软件开发过程非常复杂,其间充满了平衡和妥协,事实上并没有一种非黑即白的规则可以适用。原创 2023-03-01 08:42:41 · 355 阅读 · 0 评论 -
在DDD中建立领域模型
我们应该基于领域概念设计领域模型,然后再采用合适的模式降低领域模型的复杂度,进一步增加领域模型的表达能力。原创 2023-02-22 09:22:01 · 418 阅读 · 0 评论 -
被遗漏的度量指标
度量软件开发生产力的指标维度和数量,需要取得平衡,既要少到能恰好代表软件开发生产力关键要素,也要多到恰好能提供用于持续改进的上下文。原创 2023-02-08 10:58:18 · 503 阅读 · 0 评论 -
前后端分离的陷阱
前后端分离本质上是技术的分离,而不是人员的分离。团队要不要分取决于你如何设计你的架构,也取决于你的业务模式,所服务的产品形态、团队能力、工程实践的成熟度。原创 2023-02-03 09:42:27 · 436 阅读 · 0 评论 -
关于性能测试需要知道的
什么是性能测试,性能测试的目的是什么、解决什么问题,性能测试都有哪些类型,相关指标有哪几类?性能测试流程是什么?有哪些工具推荐?本文一一揭晓。原创 2023-01-20 08:00:00 · 1658 阅读 · 0 评论 -
技术债的前世今生
技术债是不可避免的,有些技术债短期不会表现出明显的系统问题,但长久来看,技术债的增加会使系统的可维护性下降,产品质量下滑,导致线上故障。技术的构建不是一劳永逸的,是需要不断维护的,在日常开发中,团队要做好技术债管理,将技术债的解决日常化。原创 2023-01-11 09:34:21 · 320 阅读 · 0 评论 -
DDD的哲学意味(下)
领域模型在自然语言和编程语言之间建立起了桥梁,帮助跨越两者之间的巨大鸿沟,成为开发复杂软件的重要手段。原创 2023-01-04 10:32:46 · 346 阅读 · 0 评论 -
分布式系统下的认证与授权
本文从高层次梳理在不同架构演进中认证、授权及凭证这些和架构安全相关的技术的发展过程,尤其是在分布式系统下的如何高效安全的实现认证与授权的功能。原创 2022-12-28 11:20:56 · 1107 阅读 · 0 评论 -
单体优先的微服务架构
你不应该在新项目之初就采用微服务架构,即使你坚信该应用未来会因业务演进而变得巨大无比。原创 2022-12-21 09:56:08 · 395 阅读 · 0 评论 -
DDD的哲学意味(中)
DDD中,领域的概念以实体、值对象、聚合、模块等方式表达出来。有些伙伴把领域中的主要聚合或实体识别出来后,却没有识别它们之间的关联,就认为已经完成了领域建模。这样的模型其实是不完整的。原创 2022-12-09 10:00:00 · 303 阅读 · 0 评论 -
DevOps最佳实践之应用开发和部署
所谓“最佳实践”应该是最适合自己的实践,而不一定是最先进的,而且每一种实践本身也存在一定的局限性,所以我们在描述了对应实践的优点的同时,也把可能存在的缺点写了出来,就是希望理性地去评估到底是不是要采用相应的实践。原创 2022-12-06 20:45:00 · 664 阅读 · 0 评论 -
前端性能优化心法
文章从流程方面和具体的技术细节上对软件性能优化上遇到的问题做一些总结和分类,以方便在后续类似的场景下可以提供给开发者一个参考。原创 2022-11-25 19:00:00 · 500 阅读 · 0 评论 -
当我们谈论DDD时我们在谈论什么
本文将软件设计领域的问题划分为战略设计,战术设计和领域模型设计三个范畴,并分别探讨了这三个范畴的概念和方法。原创 2022-11-24 16:06:11 · 578 阅读 · 0 评论 -
使用CDC模式改造遗留系统
我们选择了 CDC 模式将遗留系统中产生的变化同步到新服务中。在同步过程中,由数据层的变化推导出业务意图是成功的关键。在其他运用绞杀模式的改造中,如果能够在更上层的地方做分支也是一种好的思路,这样可以更好地还原业务。原创 2022-11-22 14:52:48 · 456 阅读 · 0 评论 -
前端测试体系和最佳实践
前端测试的重点不是机械地去追求测试覆盖率,而是尽可能在成本和信心值中间找到一个平衡,应用一些好的实践去降低写测试的成本,提升写测试带来的回报,让大家对于项目质量越来越有信心。原创 2022-11-11 13:40:57 · 1347 阅读 · 0 评论 -
DDD的哲学意味(上)
我们实际上不是对客观世界本身建模,而是对我们所认识到的东西,也就是说客观世界在我们心灵中的映像建模。至于我们所认识到的东西和客观世界(如果有的话)的关系就留给哲学家们讨论吧。原创 2022-11-09 16:19:09 · 1034 阅读 · 0 评论 -
技术改变了什么?
行动者的异质性导致了技术发展的多样性。当我们结合微观与宏观的视角时,技术对于社会的影响便不再是点对点的,而更像是一层层洋葱圈。本文将从三个方面探索技术对于个人以及社会的作用力。原创 2022-09-20 16:00:00 · 965 阅读 · 0 评论 -
探索原味BFF模式
在本篇文章中,你们会与我一起穿越回BFF诞生的历史中,寻找其起源。并一同探索和学习这个在分布式系统中出镜率极高的架构模式。原创 2022-09-13 17:30:00 · 1032 阅读 · 0 评论 -
CSS里的整洁架构
虽然开发工具早已经从 preprocessor 进化到了 styled component,但在我看来新的工具并没有让我们的样式代码写的更好,只是更快——也可能会让代码坏的更快。工具的繁荣并没有让那些导致代码难以维护的根本问题烟消云散,而是更易让我们对其视而不见。这篇文章旨在回答一个问题:为什么样式代码难以写对,它的陷阱究竟在哪里?原创 2022-09-08 17:30:00 · 1011 阅读 · 0 评论 -
被误解的Event Sourcing
当我们决定使用Event Sourcing作为架构选择之时,通常我们也会选择DDD去构建得到领域事件。DDD里提到的Event指的是对系统状态产生改变的现实事件,同样我们在Event Sourcing的系统中存储的也是会导致系统状态改变的事件。似乎这两种不同的软件开发思想,对Event的认识有着不谋而合的默契。...原创 2022-09-06 17:30:00 · 882 阅读 · 0 评论 -
使用上下游思维实现系统解耦
本文将从服务间上下游的思维来讨论如何在系统架构演进过程中,持续的保持服务间的松耦合,实现解耦的目标。原创 2022-09-01 17:30:00 · 1999 阅读 · 0 评论 -
DDD诊所——异步事件综合征
“DDD诊所”是Thoughtworks DDD社区的一项活动,通过对同事们在实施DDD过程中遇到的问题进行分析和解答,共同提高开发水平。我们将其中一些典型案例整理成文供大家参考。之后也会考虑在适当的时候将这一形式对外部开放。...原创 2022-08-18 17:30:00 · 907 阅读 · 0 评论 -
BFF避坑指南
BFF在前后端分离的架构模式下隔离了前端和后端的关注点,特别是在多个前端或第三方的情况下,BFF都是非常好的选择。原创 2022-08-09 10:06:46 · 283 阅读 · 0 评论 -
Google Cloud Spanner的实践经验
基于Cloud Spanner独特的结构,它能确保客户在以较小的用户群和业务量为起点时,不必过多担心在未来数据量和业务量增长后需要对数据库进行迁移或重新编写的问题原创 2022-07-28 17:38:50 · 208 阅读 · 0 评论 -
单体 or 微服务?你以为是架构权衡?其实是认知负载!
Matthew Skelton和Manuel Pais在他们提出的团队拓扑学中,倡导团队优先的思维方式,以降低团队认知负载为宗旨,避免工作内容(架构、运维等)超出团队的最大认知负载。原创 2022-07-19 10:06:20 · 309 阅读 · 0 评论 -
DDD 中的几个困难问题
在做 DDD 的培训和工作坊时,会遇到来自客户或学员的疑问,有些问题值得我们深入思考。我整理了一些常见的问题,欢迎补充和讨论。结合 DDD 社区最近的讨论成果,这里我先给出一个简单的参考答案。......原创 2022-07-14 11:13:09 · 305 阅读 · 0 评论 -
遗留系统的服务拆分
我们正在书写、即将面对、正在面对遗留系统。在与遗留系统的相爱相杀中,需要我们基于项目目标和现状、结合过往经验、经过剪裁和取舍,才能迎面不断出现的挑战。原创 2022-07-07 10:12:20 · 148 阅读 · 0 评论 -
Thoughtworks 全球CTO:按需求构建架构,过度工程只会“劳民伤财”
Thoughtworks 全球CTOThoughtworks 成立于 1993 年,目前已在近20个国家开设办事处,拥有1万多名员工。多年来,Thoughtworks 一直在为敏捷软件开发、持续集成、持续交付、微服务、演进架构和数据网格等方面提供服务,是最早为复杂软件项目开发敏捷的公司之一。多年来,Thoughtworks技术雷达峰会一直是业界知名的“技术风向标”。...原创 2022-07-05 14:56:19 · 540 阅读 · 0 评论