Re:从零开始的领域驱动设计
前言
领域驱动的火爆程度不用我赘述,但是即便其如此得耳熟能详,但大多数人对其的认识,还只是停留在知道它的缩写是 DDD,知道它是一种软件思想,或者知道它和微服务有千丝万缕的关系。Eric Evans 对 DDD 的诠释是那么地惜字如金,而我所认识的领域驱动设计的专家又都是行业中的资深前辈,他们擅长于对软件设计进行高屋建瓴的论述,如果没有丰富的互联网从业经验,是不能从他们的分享中获取太多的营养的,可以用曲高和寡来形容。1000 个互联网从业者,100 个懂微服务,10 个人懂领域驱动设计。
可能有很多和我一样的读者,在得知 DDD 如此火爆之后,尝试去读了开山之作《领域驱动设计——软件核心复杂性应对之道》,翻看了几张之后,晦涩的语句,不明所以的专业术语,加上翻译导致的语句流畅性,可以说观看体验并不是很好,特别是对于开发经验不是很多的读者。我总结了一下,为何这本书难以理解:
- 没有阅读软件设计丛书的习惯,更多人偏向于阅读偏应用层面的书籍,“talk is cheap,show me the code”往往更符合大多数人的习惯。
- 没有太多的开发经验支撑。没有踩过坑,就不会意识到设计的重要性,无法产生共情。
- 年代有些久远,这本书写于 2004 年,书中很多软件设计的反例,在当时是非常流行的,但是在现在已经基本绝迹了。大师之所以为大师,是因为其能跨越时代的限制,预见未来的问题,这也是为什么 DDD 在十几年前就被提出,却在微服务逐渐流行的现阶段才被大家重视。
诚然如标题所示,本文是领域驱动设计的一个入门文章,或者更多的是一个个人理解的笔记,笔者也正在学习 DDD 的路上,可能会有很多的疏漏。如有理解有偏颇的地方,还望各位指摘。