分类:博客

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

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

    阅读全文

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

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

    阅读全文

  • 【博客】并发编程(003):基础知识之进程的PCB

    Processing Control Block被译为进程控制块,简称为PCB。从字面上来理解进程控制块,它是进程的控制模块。但在操作系统里,它是一种专门用来管理进程设置的一种数据结构,也是用来记录进程的外部特征,描述进程的运动变化过程。

    阅读全文

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

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

    阅读全文

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

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

    阅读全文

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

    这几天,互联网精英们已经开始在家远程办公了。作为国内互联网三家大厂,阿里、腾讯、字节跳动在家办公有什么区别呢?一起来看—— 返岗时间 - 阿里: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米。 ...

    阅读全文

  • 【博客】Hacking,约不约!

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

    阅读全文

  • 【博客】如何优雅处理代码中 Null 值引起的 Bug?告别 Null 恐惧症!

    写在前面  在笔者几年的开发经验中,经常看到项目中存在到处空值判断的情况,这些判断,会让人觉得摸不着头绪,它的出现很有可能和当前的业务逻辑并没有关系。但它会让你很头疼。 有时候,更可怕的是系统因为这些空值的情况,会抛出空指针异常,导致业务系统发生问题。 此篇文章,总结了几种关于空值的处理手法,希望对读者有帮助。  业务中的空值  场景 存在一个 UserSearchService用来提供用户查询的功能: public interface UserSearchService{ List<User> listUser(); User get(In ...

    阅读全文

  • 【博客】从项目分层开始,让Java代码更优秀

    1.背景 什么样的代码才是优秀代码?或者说让代码看起来优秀什么方式? 本文讲得就是从项目分层开始,让Java代码更优秀。 说起应用分层,大部分人都会认为这个不是很简单嘛 就controller,service, mapper三层。 看起来简单,很多人其实并没有把他们职责划分开,在很多代码中,controller做的逻辑比service还多,service往往当成透传了。 这其实是很多人开发代码都没有注意到的地方,反正功能也能用,至于放哪无所谓呗。 这样往往造成后面代码无法复用,层级关系混乱,对后续代码的维护非常麻烦。 的确在这些人眼中分层只是一个形式,前 ...

    阅读全文