架构设计——你的依赖反转了吗?

最近我给一家传统的大型电子制造业公司做嵌入式系统平台架构咨询。他们的产品硬件部分已经组件化,但是每年都有一部分元器件单元要替换,相应的软件就要修改。最大的痛点就是由于系统耦合严重,一改就容易出问题,工作量还大,团队苦不堪言。

这样的问题不仅出现在嵌入式领域,也出现在传统的软件领域。例如你是否依赖于某个外部系统,想要替换掉它却发现代码已经耦合在一起动不了?又或者某个类库/中间件已经无法满足要求,却又不敢更换?

究竟应该如何处理好外部依赖呢?

继续阅读

DDD之聚合持久化应该怎么做?

说到DDD难,我觉得主要是两点:建模难、代码落地难。前者需要业务熟、功力深,难以快速提升;后者难在缺乏简单易行的可参考的代码结构,一旦有了这样的参考结构,就可以快速大幅降低DDD的实践难度。本文从后者的诸多难点中选择一个最常见的问题进行探讨:如何优雅地实现聚合的持久化?

继续阅读

想要高响应力?你可能缺了重构能力!

天下武功,唯快不破!在这样一个快速变化的时代,企业也在追求高响应力(快)的路上一路狂奔!这才有了敏捷、DevOps大行其道。然而,很多企业发现,虽然团队号称敏捷了,但是响应力变化并不明显,质量可能还下降了,程序员996加班更严重了。这是敏捷/DevOps转型的锅吗?企业该怎么办?

继续阅读

你值得拥有的一份开发者书单

代码整洁之道:程序员的职业素养

当初冲着Bob大叔的大名,买了这本书。翻开来看却发现没有代码,难道这是一本冲流量送的书?阅读下去,才发现这是一本很朴实的书。读起来很轻松,但话题却很厚重。他告诉你什么是专业精神,如何管理你的时间,如何发展你的职业。我印象最深的是为什么开发者要说“不”,什么时候该说“是”。这本书也许能敲醒996压力下的开发者。

继续阅读

聊一聊聚合的持久化

本篇文章内容来自 我的Github项目:Aggregate Persistence Readme文件。

这个项目源于我在做DDD咨询时的一个痛点。我们在做DDD时,不论EventStorming怎么Happy,到最后都会遇到一个痛点:分层架构落地。分层架构本身可以通过讲解和示例帮助团队掌握,但其中聚合的持久化却一直没有发现好的解决方案,写出来的代码自己都不是很满意。所以最后才有了这个项目,也欢迎大家使用并提宝贵建议。

继续阅读