分类:博客

  • 【博客】基于行为驱动开发(BDD)结合Web UI自动化工具(Taiko)

    Gauge不强调协作,可以作为自动测试工具独立存在,同时支持高效的协作和BDD实施。 这是一个更灵活的框架。 它的秘密武器Taiko是出色的Web UI自动化工具。 两者的完美结合,真正实现了需求规格说明,自动化测试和活动文档的有机结合。 BDD是什么 BDD,Behavior Driven Development,行为驱动开发。 如果你不是很了解BDD,可以参考我四年前的一篇文章《说起BDD,你会想到什么》,其中介绍过BDD的理论和应用。 我们可以这样来概括BDD: BDD采用统一的领域特定语言(DSL)来描述业务场景和用户行为,让团队各个不同角色对业 ...

    阅读全文

  • 【博客】JVM源码分析之Java对象的内存分配

    新建一个对象时,由对应的instanceKlass对象计算出需要多大的内存,并调用CollectedHeap的common_mem_allocate_noinit方法分配指定大小的内存,实现如下:   从线程的局部缓冲区分配临时内存 TLAB技术是每个线程在Java堆中预先分配了一小块内存,当有对象创建请求内存分配时,就会在该块内存上进行分配,而不需要在Java堆通过同步控制进行内存分配。如果UseTLAB为真,则使用TLAB技术(Thread-Local Allocation Buffers),将分配工作交由线程自行完成,实现如下: 1、如果线程的局部 ...

    阅读全文

  • 【博客】捕捉异常请先考虑使用 try-with-resources,而不是 try–catch-finally

    这是读者爱丽丝(Alice)上周特别向我发送的消息,这确实让我感动。 已经复制了几个大尺寸的内容,包括CSDN,同一天​​阅读了15,000。 但是,诸如“我以为您有任何新的特殊效果,但我没想到要使用Java 13”之类的批评也很多。 自从我写第一篇文章以来,喷的次数就像头顶上的密发,而计数却无数。 这次无需进行远程审查,因为我们公司也已恢复工作。 这篇评论的代码仍然是小王的。 他编写的大多数代码都很漂亮,严谨和注释良好,这让我感到非常满意。 但是当我看到他对尝试资源一无所获时,我忍不住大喊:“小王,我擦了,你最终还是在尝试捕获!” 来看看小王写的代码吧 ...

    阅读全文

  • 【博客】微服务时代的DDD反思

    有一段时间DDD还很新。当初Eric Evans首次发表他的开创性著作《领域驱动设计:软件核心复杂性应对之道》时,书里的灵感让我们感到像找寻到了一个个治愈创伤的良药。Evans创造的是一种更好的方法用来构造复杂逻辑,因此不仅是我们的代码,甚至我们的整个应用也更容易理解,并且更少的逻辑分散和无尽无休的面条式代码、重复行为。 那是过去的事了,从那时起,我们用DDD获得了各种各样的成功,无论是在你的上下文地图中拆分限界上下文, 实现领域服务或者基础设施逻辑,甚至(这是对我来说最主要的)教育老开发新招数:反思并教育开发者去思考DDD,不是像我过去那样只复制粘贴代 ...

    阅读全文

  • 【博客】疫情当下,如何做好一场线上培训

    引言 受疫情影响,现在很多企业都选择让员工在家办公,而一些相关的服务也不得不从线下转到线上。对于ThoughtWorks这种专业服务公司,也开始为部分客户提供远程线上技术培训,在这里总结了一些相关的技巧与经验,与大家分享。 现场培训流程 首先,我们做的是技术培训,通常现场的技术培训流程是这样的: 通过PPT或者白板讲解技术知识点 引导学员对相关技术知识进行讨论或者分享 讲师现场演示技术细节 学员现场做练习 讲师根据练习结果进行反馈和总结 布置作业 知道了培训流程,那么把这样的技术培训迁移到线上,会有哪些变化呢? 首先,线上培训会有一部分新增的现场培训没有 ...

    阅读全文

  • 【博客】Hacking,约不约!

    对于hacker来说,最有趣的事情莫过于破坏软件设计者的原有规则,重新建立属于自己的规则了。姑且不论这个行为是否合法或违规,单就技术本身而言,矛与盾、攻与防、破坏与重建的过程中,为了达到最终目的而衍生出来的奇妙技术,再配上天马行空的想像和创造足以让人着迷不已。 开篇 尽管Linux内核开源,升级或替换内核十分方便,但仍有一些特殊场景,需要在不替换内核的前提下给内核“动手术”。考虑如下两种场景: 24小时不能停机的服务器,因为某些扩展性原因需要升级到新版本Linux内核; 不能二次烧录的嵌入式设备,需要修复其内核安全漏洞。 对于前一种场景,Linux有已一 ...

    阅读全文

  • 【博客】揭秘阿里巴巴、腾讯、字节跳动在家办公的区别(多图)

    这几天,互联网精英们已经开始在家远程办公了。作为国内互联网三家大厂,阿里、腾讯、字节跳动在家办公有什么区别呢?一起来看—— 返岗时间 - 阿里:2月3日-7日在家办公,原本计划10日返岗可能会推迟到17日; 腾讯:2月3日起多个部门开启了远程办公,2月10日-14日在家办公,2月17日返岗; 字节跳动:2月3日在家办公,2月10-13日返回工作地,在家中隔离14天后,确认没事,2月25日-27日返岗。 家到工作地的距离 - 阿里:爬起床打开笔记本电脑就开工,目测0.5米; 腾讯:走到电脑桌前就开工,目测1.5米; 字节跳动:拿起手机就开工,目测0.2米。 ...

    阅读全文

  • 【博客】Dubbo一直都很好用的功能,你或许蒙在鼓里

    Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC(一种远程调用) 分布式服务框架(SOA),致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。在微服务如火如荼的互联网当下,Dubbo是人尽皆知,也是技术Leander与架构师在架构设计时一直被作为优先选型。虽是如此,仍然会有百密一疏的时候,今天我就给推荐Dubbo一直都很好用的功能,希望能帮助你查缺补漏。 一、延迟暴露 dubbo的provider在启动时可能会遇到这样的问题: 在service中需要spring注入的bean还没有初始化完全,service就已经注册到了 ...

    阅读全文

  • 【博客】泛化调用实战,Dubbo入门你必须学会的技能

    阅读过上一篇《Dubbo一直都很好用的功能,你或许蒙在鼓里》,有经验的同学早已驾轻就熟,但对于刚涉入Dubbo的同学而言或许苦不堪言。然而,Dubbo泛化调用在实际应用场景中有举无轻重的作用。所以,觉着将泛化这个知识点切碎嚼烂是一件非常有意义的事儿。便有了这一篇关于Dubbo泛化的实战。

    阅读全文