基于 FP 的一次 DDD 战术设计实践

作者/分享人:agiledragon
向 Ta 提问
多年软件架构和开发经验,DDD China 2017 和 2018 演讲嘉宾,Golang 技术栈咨询师,爱读书、爱运动、爱编程、爱分享,对于大型软件的重构具有丰富的经验。这几年指导多个团队积极实践 XP,包括开发领域和测试领域,取得了比较好的效果。个人简书主页:https://www.jianshu.com/u/1381dc29fed9 ,个人 GitHub 主页:https://github.com/agiledragon

在 DDD(领域驱动设计) 中,Eric Evans 认为领域模型是 DDD 的核心,软件开发中的所有参与者都应该围绕着一个统一一致的领域模型而工作,使得软件的复杂性得以有效控制。

领域模型是从领域问题出发人为构建的一种面向领域的指示性语义,选择某种编程范式就选定了特定的构建基础。理论上不管选择 OP(面向过程)、OO(面向对象)还是 FP(函数式)做为构建基础都是图灵完备的,但在工程上需要考量哪种编程范式与领域语义之间的 Gap 最小且维护成本最低。另外现代编程语言基本都支持多范式,使得程序员可以在局部灵活选择最佳的编程范式。

人们已经在基于 OO 的领域建模方面积累了大量的经验,而在基于 FP 的领域建模方面的经验却比较匮乏。本场 Chat 主要分享基于 FP 的一次 DDD 战术设计实践,主要内容包括:

  1. 基于 FP 进行领域建模的场景;
  2. 针对案例的第一个游戏建立领域建模,并通过代码表达;
  3. 针对案例的第二个游戏演进领域模型,并通过代码表达。

附:Counting-Shapes 代码

已有404人预订
预订达标
文章出炉
交流日期
     
09月09日
09月21日
10月10日 20:30
查看文章评论/提问
小浩子
更像是一篇讲算法或面试题的文章,并没有讲清楚FP与DDD的关系
agiledragon
对于有时间的同学,还可以扩展阅读我以前在简书上写的一篇文章 [FizzBuzzWhizz in Python from OO and FP](https://www.jianshu.com/p/59145689d266)
你可能还喜欢
从新一期技术雷达看技术领域最新趋势
徐昊
如何成为一名合格的 C/C++ 开发者?
范蠡
微服务中的短信服务如何设计?
猿天地
亿级 QQ 会员活动运营系统的设计之道
廖声茂
详解 Java 常用的四种锁机制优缺点
安爷
数据科学 Kaggle 比赛项目实战:Titanic
刘明
微信扫描登录