DDD 中的几个困难问题 (insights.thoughtworks.cn)

【简介】

在做 DDD 的培训和工作坊时,会遇到来自客户或学员的疑问,有些问题值得我们深入思考。我整理了一些常见的问题,欢迎补充和讨论。结合 DDD 社区最近的讨论成果,这里我先给出一个简单的参考答案。

点击查看全文 >>

@Thoughtworks 2022-07-14 11:05分享 / 0个评论
赞过的人: @IT技术博客大学习
要不要再学学下面的文章?
短 ID hash 映射的问题 (blog.codingnow.com)
我们正在开发的游戏中,会用一个 id 来表示一个游戏对象到底是什么。比如,“铁片” 是 1 ,“煤” 是 2 ,“采矿机” 是 3 …… 这样,在运行时,C 代码可以根据对象的类型方便的查询对象的属性。而对象的属性则是用 Lua 配置好,在运行期不变的。例如每燃烧一个单位的“煤”,可以产生 100KJ 的热量;一箱“铁片”有 100 个。

为了在 C 和 Lua 间快速共享这些配置数据,我还专门写了一个 cache 模块 。

问题出在 ID 的持久化上。因为游戏中的物品种类并不是特别多,出于时间以及空间性能的考量,我把 ID 设计为 16bits 。64K 种物品种类的上限看起来足够了。但 ID 的分配却比较麻烦。
by @技术头条 2023-04-09 10:06 分享 查看详情
在DDD中建立领域模型 (insights.thoughtworks.cn)
我们应该基于领域概念设计领域模型,然后再采用合适的模式降低领域模型的复杂度,进一步增加领域模型的表达能力。
by @Thoughtworks 2023-02-22 09:20 分享 查看详情
同一 Entity 包含多个同类 Component 的问题 (blog.codingnow.com)
ECS 中,同一个 Entity 是否可以由多个同类型的 Component 构成?在 Unity 中,答案是可以。我们的引擎在设计之初也是可以的。
当时有一个问题:在 Lua 中,如何访问同类型的 Component ?如果有多个同类 Component ,最自然的方式是把它们放在一个数组里。但是、绝大多数情况下我们用不上这个特性,每次访问 Component 都加一次 [1] 或 [0] 的数组索引显得画蛇添足。若单个 Component 不用数组,多个才用数组,写起来又有极大的心智负担。因为这样做,它们就成了两个不同的类型。
后来,我们干脆利用 Lua 的特性,把数组和 Component 本身放在一个 table 中。如果有多个 Component 就把这个数组直接放在第一个 Component 的 table 内。就这样用了一段时间后,最后还是受不了这个脏技巧。等到用 C 编写 luaecs 后,就砍掉了这个特性。
by @技术头条 2023-02-12 14:00 分享 查看详情
DDD的哲学意味(下) (insights.thoughtworks.cn)
领域模型在自然语言和编程语言之间建立起了桥梁,帮助跨越两者之间的巨大鸿沟,成为开发复杂软件的重要手段。
by @Thoughtworks 2023-01-04 10:37 分享 查看详情
多年老司机,面对这些Go并发问题,也迟疑了 (colobu.com)
Go一向以它的简单易学而著称,我也遇到过同学说只需半天就能掌握Go语言了,两三年的Go开发经验就称专家了。

想比较Rust等编程语言,Go语言的确容易上手,查看Go语言的规范你也会看到,它的语言规范相比较其它编程语言非常的简短,的确可以一个小时就可以读完。但是如果你深入了解这门语言(其它语言也是类似情况),就会发现很多细节的地方,需要花谢心思和时间仔细琢磨琢磨。这不,我先来几道Go并发的源代码考考你,看看你能回答上来不?
by @技术头条 2022-12-18 20:08 分享 查看详情
DDD的哲学意味(中) (insights.thoughtworks.cn)
DDD中,领域的概念以实体、值对象、聚合、模块等方式表达出来。有些伙伴把领域中的主要聚合或实体识别出来后,却没有识别它们之间的关联,就认为已经完成了领域建模。这样的模型其实是不完整的。
by @Thoughtworks 2022-12-08 17:22 分享 查看详情
当我们谈论DDD时我们在谈论什么 (insights.thoughtworks.cn)
本文将软件设计领域的问题划分为战略设计,战术设计和领域模型设计三个范畴,并分别探讨了这三个范畴的概念和方法
by @Thoughtworks 2022-11-24 16:07 分享 查看详情
DDD的哲学意味(上) (insights.thoughtworks.cn)
我们实际上不是对客观世界本身建模,而是对我们所认识到的东西,也就是说客观世界在我们心灵中的映像建模。至于我们所认识到的东西和客观世界(如果有的话)的关系就留给哲学家们讨论吧。
by @Thoughtworks 2022-11-09 16:08 分享 查看详情
Linux 下解决 grep is directory 问题 (droidyue.com)
Grep 是一个很便捷有用的终端工具,它可以帮助我们快速过滤筛选出一些内容。通常配合 find 命令,可以实现更加强大的能力。
但是我们在执行的时候,总会遇到这样的错误提示输出:grep: ./example/android/.gradle: Is a directory。
之所以出现这个问题,原因是 find . -name "*.gradle" 匹配到了 .gradle 目录,而使用 grep 只是单纯扫描这个目录(非包含内部文件)没有任何意义。
还在解决方法有很多,可以轻松规避这个错误输出。
by @技术头条 2022-08-18 23:30 分享 查看详情
Python爬虫requests爬取页面的编码问题 (www.ipcpu.com)
很多时候,我们发现,requests库返回的页面编码都是ISO-8859-1,需要指定为UTF-8才能正确读取。这是为什么呢?
by @技术头条 2022-08-18 23:10 分享 查看详情