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

ThoughtWorks

专栏作者
907
文章
737724
阅读量
115
订阅数
简化Java单元测试数据
EasyModeling 是我在2021年圣诞假期期间开发的一个 Java 注解处理器,采用 Apache-2.0 开源协议。它可以帮助 Java 单元测试的编写者快速构造用于测试的数据模型实例,简化 Java 项目在单元测试中准备测试数据的工作,在提高编写效率的同时,使单元测试更加整洁易读。经过一年的维护,EasyModeling 已经在几个 Thoughtworks 内部的项目上得到了应用,并迭代发布了几个版本。
ThoughtWorks
2023-08-08
1550
性能优化那些事儿(3)
在讨论完性能优化的方面和策略之后,这次我们的文章更偏向技术层面,来分享下如何开发一个自己的性能分析工具(基于JVM)。 『新』知识 考虑到咱们大多数还是开发业务为主,所以Java里面一些『鲜为人知』的API可能很多人都不知道,这里就简单介绍一番,如果想深究的,就自己谷歌一下吧。 JVMTI(JVM Tool Interface)是 Java 虚拟机所提供的 native 编程接口,即底层的相关调试接口调用,我们熟知的Java调试其实也是基于它。 Instrumentation,虽然Java提供了JVMTI,
ThoughtWorks
2022-04-08
2750
如何提升代码质量
有这么一句名言“Talk is cheap, Show me the code.” 不管是新人还是老手,都特别想提高自己的代码质量,至少让别人看着舒服。我在以往的工作经历中,并没有太重视个人编码的能力,包括正确性、美观性还有效率。工作几年的人还写出那么难看的代码,说出去会很丢人的,所以提升自己的编码水平显得尤为迫切。 那么可以从哪些方面着手去提升自己的能力呢? 书籍推荐 《重构》 世界顶级、国宝级别的 Martin Fowler 的书籍,可以说是软件开发领域最经典的几本书之一。目前已经出了第二版。 这是一
ThoughtWorks
2022-03-25
6210
Ghost in the Log4Shell
多年以后,面对加班的夜晚,Volkan Yazıcı 一定会回忆起发生在 2021 年底的这件事情,除了没日没夜的工作和无休止的解释以外,当然也少不了人们的愤怒和对他的谩骂。一不小心就见证历史的,除了 log4j 的作者们,还有我们所有人。起初,大家都度过了一个黑客狂欢,吃瓜群众玩梗,开发们加班的周末,以为这可能是又一次“心脏出血”或者“永恒之蓝”。随着事情愈演愈烈,影响愈来愈大,现在大家都应该认识到,这个漏洞比心脏出血要严重得多。比如 CISA 的官员称其为从业以来最严重的漏洞(之一),log4j 的修复也导致短短两周内升了三个大版本(目前只有最新的 2.17.0 被认为是没有问题的)。所以朋友们,不要怀疑,这绝对是一个有生之年系列。
ThoughtWorks
2022-02-16
5690
性能优化那些事儿(1)
性能优化是个恒久的话题,它伴随着业务的一次次迭代,产品的一步步演进,它陪伴企业一步步走向壮大再走向衰败,是我们面临的不可回避的问题。就如同宇宙的熵增定律,一切都走向混乱走向无序,性能的劣化边随着企业的发展壮大,业务的膨胀,人员的流动,复杂度的提升,一定也最终走向不可收拾的一步。
ThoughtWorks
2021-12-01
3280
DDD落地,如何持久化聚合
聚合是一组始终需要保持一致的业务对象。因此,我们作为一个整体保存和更新聚合,以确保业务逻辑的一致性。聚合是 DDD 中最为重要的概念,即使你不使用 DDD 编写代码也需要理解这一重要的概念 —— 部分对象的生命周期可以看做一个整体,从而简化编程。一般来说,我们需要对聚合内的对象使用 ACID 特性的事务。最简单的例子就是订单和订单项目,订单项目更新必须伴随订单的更新,否则就会有总价不一致之类的问题。订单项目需要跟随订单的生命周期,我们把订单叫做聚合根,它就像一个导航员一样
ThoughtWorks
2021-11-19
2.5K1
DDD实现之路
编者按:这篇文章最早撰写于2014年,作者也是《实现领域驱动设计》的译者。几年过去了,DDD在坊间依然方兴未艾,然而它的复杂性所引发的误解也层出不穷。对于一些基本概念的澄清甚至溯源,会帮助我们回到起点,对它展开新的认识。
ThoughtWorks
2021-02-08
3870
如何知道我们的E2E测试覆盖率?
在单元测试中,很容易知道已经覆盖了哪些代码区域。但是我们能及时知道API调用的动态范围吗?我们一直在思考,既然已经编写了许多 E2E 测试用例,但是我们应该继续编写多少剩余测试?
ThoughtWorks
2020-09-25
1.3K0
Apache Tomcat CVE-2020-1938,细思极恐
Apache Tomcat CVE-2020-1938这个漏洞确实凶猛,攻击者可以读取到webapp目录下的任意文件,包括war包。而war包里有properties文件,不少开发团队都把连接数据库的用户名密码、JWT 签名secret、加解密密钥等重要信息放在这个文件里。
ThoughtWorks
2020-07-21
1.5K0
Scala 3 不再支持 XML 了吗?
前段时间,我为Scala 3提出了XML字面量语法提案,在社区中正在讨论。这个提案可能预示着 Scala 3、Scala.js和Binding.scala的未来前景。为什么这么说?还得先聊聊Scala目前在编程语言界的江湖地位是怎么来的。
ThoughtWorks
2019-07-09
1.1K0
RPA工具初体验
一年前,在一次客户(老外)的演讲中,晕晕乎乎的在一大段英文中听到了RPA这个词,当时大概查了一下,了解到RPA是机器人流程自动化(Robotic Process Automation)的简称,跟自动化有些关系,但是当时也没搞太明白。
ThoughtWorks
2019-05-04
4.1K5
《重构》再版——听Martin Fowler聊聊新版的故事
现在这本书的纸质版以及各种电子版本都可以在InformIt购买,很快也会在亚马逊上线。购买该书让你也可以访问标准网络版,其中有纸质版或电子版中没有的附加资料。
ThoughtWorks
2019-01-02
1.1K0
受国际软件巨匠之托,邀你赴一场十年之约 | 技术雷达峰会
技术雷达是ThoughtWorks每半年发布一期的技术趋势报告,它不仅是一份持续的技术成熟度评估,其产生还源于ThoughtWorks另一个更大宏大的使命—IT革命。我们一直深信,IT行业从定位、价值、实践和技术都会发生巨大的变革。然而任何宏观的变革,都会有一些微小的信号,我们需要持续关注这些微小的改变,这也就是技术雷达的由来。
ThoughtWorks
2019-01-02
3870
变中求生—频繁变化的团队如何打造团队文化 | TW洞见
今日洞见 文章作者/图片来自ThoughtWorks:师洁&范文博。 本文所有内容,包括文字、图片和音视频资料,版权均属ThoughtWorks公司所有,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发布/发表。已经本网协议授权的媒体、网站,在使用时必须注明"内容来源:ThoughtWorks洞见",并指定原文链接,违者本网将依法追究责任。 一、引言 ThoughtWorks是一家敏捷软件咨询和专业软件交付公司,西安办公室的交付团队规模基本都是十人左右的小团队,每一个交付项目的生命
ThoughtWorks
2018-04-20
1K0
王健:技术雷达之微服务架构
作为一家服务于全球不同类型客户的IT专业服务公司,ThoughtWorks一直追求最卓越的技术,并用它们来解决客户实际的问题。而为了体现技术卓越,ThoughtWorks全球技术委员会(TAB)定期讨论技术战略,分析对行业产生重大影响的最新技术趋势,这便是我们看到的每年两度的《ThoughtWorks技术雷达》。 2016技术雷达峰会不仅能为您解读最新版《ThoughWorks技术雷达》四大主题之外,还希望能覆盖更多更具实践价值的专题,为您提供更多选择,也为各个优秀实践提供多一个展示和分享的平台。 ●
ThoughtWorks
2018-04-20
6610
韩锴:《技术雷达之构筑软件安全DNA 》
作为一家服务于全球不同类型客户的IT专业服务公司,ThoughtWorks一直追求最卓越的技术,并用它们来解决客户实际的问题。而为了体现技术卓越,ThoughtWorks全球技术委员会(TAB)定期讨论技术战略,分析对行业产生重大影响的最新技术趋势,这便是我们看到的每年两度的《ThoughtWorks技术雷达》。 2016技术雷达峰会不仅能为您解读最新版《ThoughWorks技术雷达》四大主题之外,还希望能覆盖更多更具实践价值的专题,为您提供更多选择,也为各个优秀实践提供多一个展示和分享的平台。 ●
ThoughtWorks
2018-04-20
6450
谈谈命名|TW洞见
今日洞见 文章作者、部分图片来自ThoughtWorks:黄博文。本文封面来自网络。 本文所有内容,包括文字、图片和音视频资料,版权均属ThoughtWorks公司所有,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发布/发表。已经本网协议授权的媒体、网站,在使用时必须注明"内容来源:ThoughtWorks洞见",并指定原文链接,违者本网将依法追究责任。 Martin Fowler曾经在一篇文章中引用过Phil Karlton的话: There are only two hard
ThoughtWorks
2018-04-20
7710
前端页面替换文本的方法和一些小技巧
在前端页面替换文本有几种做法,不假思索的答案通常是直接用JavaScript。但你有没有想过这完全可以用CSS实现呢? 背景 在前端页面上,有的时候我们需要根据用户行为,替换的显示文本。比如 “显示/隐藏”、“展开/收起”。这是一个很常见的功能,实现起来也没有太大的难度。 CSS Tricks 有一篇文章谈及“替换文本的五种方法”(Swapping Out Text, Five Different Ways)。在这篇文章里,作者总结了使用五种实现方法,并且在评论里和很多读者进行了一些讨论分析。我在这里总
ThoughtWorks
2018-04-18
2.1K0
JavaScript专家开课啦。
Hi好久不见的大家,雷小达想死你们了! 今天带来三个JavaScript的内容,让大家一把过足瘾。在西安办公室有一个JavaScript方面的专家,最近他的努力方向转移到了Lisp上。且听,JavaScript专家——邱俊涛一一道来。 I code it Code and Life RSS 文章 文章归档 出版物 关于 团队里的两类程序员 JAN 14TH, 2018 程序员的分类 最近几年,我在多个不同类型的项目上,以不同的角色工作过:有时候会为项目前期做一些预研、然后为后续的交付估算工作量;有时
ThoughtWorks
2018-04-18
1.7K0
Software is Worthless|洞见
于晓强 ThoughtWorks 在一个周六的晚上,同事的一段文字让我思绪万千,沉寂了十几年的写作冲动,就这样被这段文字唤醒了,虽然已经0点过半。 1 不断萦绕在我脑中的一个思考 为什么越是痛苦压抑,越是能够产生富于生命力和创造力的文字;越是写意轻松,产生的却是浮躁且没有灵魂的声音。已经忘记是在哪里看到过这样一篇文字,叫做“历史的终结”,大概的意思就是,当故事走向幸福道路的时候,历史就在此刻终结了,因为幸福的故事已经不需要被表达与陈述。 “每一个幸福的家庭都是相似的,而每一个悲惨的家庭都有各自不同的
ThoughtWorks
2018-04-17
7860
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档