基于 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 代码

已有571人预订
预订达标
文章出炉
交流日期
     
18.09.09
18.09.21
18.10.10 20:30
查看文章评论/提问
小浩子
更像是一篇讲算法或面试题的文章,并没有讲清楚FP与DDD的关系
agiledragon
对于有时间的同学,还可以扩展阅读我以前在简书上写的一篇文章 [FizzBuzzWhizz in Python from OO and FP](https://www.jianshu.com/p/59145689d266)
你可能还喜欢
JVM 问题诊断快速入门
火币集团研发中心
面试字节跳动的一点小经验
Wayne
互联网公司热门面试题:如何保证缓存与数据库的双写一致性?
魏武归心2016
面试官问:为什么在项目中使用消息队列!到底是想考什么?
零下
小程序 · 云开发实战:从 0 到 1 快速开发电商小程序
微信极客WeGeek
如何做好性能压测(二) | 性能压测工具选型对比
阿里巴巴中间件
微信扫描登录
关注提示×
扫码关注公众号,获得 Chat 最新进展通知!
入群与作者交流×
扫码后回复关键字 入群
Chat·作者交流群
入群码
该二维码永久有效