异步函数的两个视角 (insights.thoughtworks.cn)
Promise的作用在于:
1. 给异步算法的编写者和使用者之间提供一种统一的交流手段
2. 给异步算法的使用者提供一种组织代码的手段,以便于将一层又一层嵌套的业务主流程变成一次一次的对then的调用
by @ThoughtWorks 2020-04-21 16:05 分享 查看详情
Apache HBase内核深度剖析 (insights.thoughtworks.cn)
前面一篇文章介绍了Kafka的具体内容,今天讲述一下HBase相关的知识。首先HBase作为大数据发展初期伴随Google三大论文问世的一个组件,在今天依旧被广泛的应用,今天我们来仔细的分析一下HBase的内部原理,了解一下HBase的具体内幕,以便在工作中更好使用它。以下内容涉及到的源码基于HBase 的Master分支编译出的最新的3.0.0版本。
by @ThoughtWorks 2020-04-09 18:49 分享 查看详情
异地情侣如何安全地传递情书 — 哈希时间锁定机制剖析 (insights.thoughtworks.cn)
在探索学习区块链扩容方面的技术时,了解到跨链是区块链二层扩容的重要部分,而实现跨链的技术主要有:公证人技术、中继/侧链技术、哈希时间锁定技术。接下来,我们将在这篇文章中详细介绍哈希时间锁定技术的原理及实现等。
by @ThoughtWorks 2020-04-01 17:19 分享 查看详情
Apache Kafka内核深度剖析 (insights.thoughtworks.cn)
目前来说市面上可以选择的消息队列非常多,像activemq,rabbitmq,zeromq已经被大多数人耳熟能详,特别像activemq早期应用在企业中的总线通信,基本作为企业级IT设施解决方案中不可或缺的一部分。目前来说Kafka已经非常稳定,并且逐步应用更加广泛,已经算不得新生事物,但是不可否认Kafka一枝独秀如同雨后春笋,非常耀眼,今天我们仔细分解一下Kafka,了解一下它的内幕。以下的内容版本基于当前最新的Kafka稳定版本2.4.0。文章主要包含以下内容:

Kafka为什么快
Kafka为什么稳
Kafka该怎么用
该文章为开篇引导之做,后续会有对应的HBase,Spark,Kylin,Pulsar等相关组件的剖析。
by @ThoughtWorks 2020-04-01 12:25 分享 查看详情
使用DDD指导业务设计的一点思考 (insights.thoughtworks.cn)
领域驱动设计(DDD) 是 Eric Evans 提出的一种软件设计方法和思想,主要解决业务系统的设计和建模。DDD 有大量难以理解的概念,尤其是翻译的原因,某些词汇非常生涩,例如:模型、限界上下文、聚合、实体、值对象等。

实际上 DDD 的概念和逻辑本身并不复杂,很多概念和名词是为了解决一些特定的问题才引入的,并和面向对象思想兼容,可以说 DDD 也是面向对象思想中的一个子集。如果遵从奥卡姆剃刀的原则,“如无必要,勿增实体”,我们先把 DDD 这些概念丢开,从一个案例出发,在必要的时候将这些概念引入。
by @ThoughtWorks 2020-03-23 18:37 分享 查看详情
大团队精益敏捷转型实践 (insights.thoughtworks.cn)
我们经常说量变引起质变,如何保证组织转型过程中,大团队从传统的瀑布式开发转变到精益敏捷模式的开发呢?今天我们不谈理论,不谈框架(SAFe,LeSS),我想从一个实操的方面来剖析一些我们实际遇到的困难和一些应对策略。
by @ThoughtWorks 2020-03-12 16:26 分享 查看详情
机器学习下的持续交付 (insights.thoughtworks.cn)
这篇文章将讲述在实现CD4ML时我们发现的重要技术组件,我们使用一个ML样例应用来解释概念,同时演示怎样把不同的工具放在一起来使用进而实现一个完整的端到端的流程。在合适的情景下,我们将会突出我们所选择的可代替的工具。也将使用我们在行业上的成熟实践经验来讨论未来的开发和研究的领域。
by @ThoughtWorks 2020-03-09 17:56 分享 查看详情
一个输入框你要做一周? (insights.thoughtworks.cn)
如果PO说这是个很小的改动,你不要信他。在实际项目中,一方面由于知识壁垒和一些偏见,人们倾向于忽略必要的细节,从而造成对实际所需工作量错误的评估。另一方面,由于我们所处于的现实世界是一个高度复杂,不确定性很高的环境,很多因素往往会互相叠加,互相影响,从而导致即使我们从比较客观的视角去评估,如果忽略了不确定性,同样可能低估实际所需的工作量。
by @ThoughtWorks 2020-01-19 17:44 分享 查看详情
日志中的用户隐私安全 (insights.thoughtworks.cn)
对于敏捷团队,安全卡应该提到比业务卡更高的优先级,同样需要放在backlog里面进行track,需要kick off、deskcheck,需要一个正经的流程或者仪式感强化成员的意识:安全卡和业务卡、Bug卡都是项目交付中的一等公民。
by @ThoughtWorks 2020-01-16 10:50 分享 查看详情
一页纸测试策略 (mp.weixin.qq.com)
将关键信息,以图示化的方式展示出来,不是整个测试策略的全部。
by @ThoughtWorks 2020-01-13 17:05 分享 查看详情
黑盒项目之历史原因 (insights.thoughtworks.cn)
很多团队在习惯性的说出“历史原因”的时候,更多的是一种为了掩盖团队当前对这样的做的原因一无所知的说辞。因为项目运行过久,团队成员的更迭,很多项目上存在的问题或者说现状,对于现在的团队成员而言,俨然成了一个黑盒子。
by @ThoughtWorks 2020-01-03 18:33 分享 查看详情
全球技术宏观趋势——云、机器学习与其他 (insights.thoughtworks.cn)
《技术雷达》是一份技术趋势快照,来自我们最近在软件行业的最新发现。一下是本期的一些重点内容。
by @ThoughtWorks 2019-12-11 17:55 分享 查看详情
修复缺陷的正确姿势 (insights.thoughtworks.cn)
下午2点,你喝下了一杯拿铁,它可以保证你在接下来的几个小时内保持清醒。突然,一位QA同事急匆匆的走了过来,从他的表情你就看出来事情不妙。果然,他告诉你SIT环境有个重大缺陷,如果不及时修复,好几个测试流程都不能进行。没错,你在还没有完全搞清楚发生了什么事情,就莫名其妙的突然变成了系统中一个“blocker”。
by @ThoughtWorks 2019-11-07 14:33 分享 查看详情
机器学习在干什么? (insights.thoughtworks.cn)
现在大家所使用的一切数据分析技术,无论是大数据还是机器学习,都是在实现这里面的某一个环节,而最终的环节,就是机器学习最终的目标,我们不是希望机器学习学到知识,这是一个手段,我们希望计算机可以具有智慧,而智慧又是无法量化的,似乎目前只能从大量的知识中去学习,至少人类就是这样过来的。
by @ThoughtWorks 2019-10-18 17:11 分享 查看详情
后端开发实践系列之四——简单可用的CQRS编码实践 (insights.thoughtworks.cn)
本文只讲了一件事情:软件模型中存在读模型和写模型之分,CQRS便为此而生。
by @ThoughtWorks 2019-10-18 14:28 分享 查看详情
标准化技术下的软件开发 (insights.thoughtworks.cn)
家里有一台古董级别的笔记本,掌托和键盘几乎已经被磨花了,一天突然想检查下有没有特别的资料然后好处理掉它。一份测试相关的国标文档(GB/T 15532-2008)吸引了我的注意,这份文档来自于刚毕业时在四川省软件测试中心实习期间,而我几乎已经忘记了那段经历。

翻看这份文档让我打开了一个新世界的大门,我们目前讨论研究的很多问题包括测试分类的定义,已经被业界讨论过很多次,甚至被制定成清晰的文档和规范。
by @ThoughtWorks 2019-09-27 11:22 分享 查看详情
你真的需要那么多报表吗? (insights.thoughtworks.cn)
企业对于数据的重视程度越来越高,很多业务部门也深刻意识到了数据的重要性,希望通过数据挖掘出动态变化着的、复杂的、跨越多渠道的、内外部集成的业务现象背后的逻辑,从而来指导决策和运营。但你真的需要那么多报表吗?警惕陷入报表迷宫!
by @ThoughtWorks 2019-09-20 11:57 分享 查看详情
架构杂谈:737 MAX8 启示录 (insights.thoughtworks.cn)
737 MAX8 事故是前一阵儿的大事件,那么,它跟架构有什么关系呢?
by @ThoughtWorks 2019-09-18 11:21 分享 查看详情
为复杂混沌的微服务生产环境设计韧性系统 (insights.thoughtworks.cn)
在复杂和混沌的系统中,人、事、物之间的相互作用大多都是非线性的,初始条件千差万别。
by @ThoughtWorks 2019-09-12 15:32 分享 查看详情
真正的敏捷工作流 —— GitHub flow (insights.thoughtworks.cn)
作为“敏捷”的固有属性,持续集成也并不仅限于特定的模式,不同的项目可能遵循不同的实践,形式多种多样,效果可能也参差不齐。
为了解决这些问题,一些 Workflow 的通用模式被提出,而本文的主角,就是其中的天之骄子 —— GitHub flow。
by @ThoughtWorks 2019-09-09 11:54 分享 查看详情