[DAY7] 手起刀落

名词解释

  • model
    在本系列文章中,代表 ActiveRecord 自动产生的 model

  • schema
    代表 DB 中的 table 和 column

  • aggregate
    在 Domain-Driven Design 中代表一个领域中的一组物件,通常会对应到真实世界的一个物体或实物,甚至是抽象的概念,由数个 entities 和 value objects 所组成

  • entity
    一个拥有 identity 的物件

    这边的 identity 指可识别这个物件的属性,不一定专指 id,也有可能是多个属性所组成,重点是一定要为 unique

  • value object
    一个拥有多种属性的物件,不具有可以识别的属性

更多关於 entity、value object 和 aggregate 的知识可以看这系列文章

斩草...啊...不能除根

现在大致将原本的一个大系统区分成了多个子系统,我们的下一步是开始尝试将 Domain-Driven Design 的战术设计导入到 legacy code 中。

因为对领域有了更多的认识,我们发现旧的 Model 设计已经与真实世界的需求分道扬镳,所以需要重新设计 aggregate ,而修改旧有 schema 的成本又太高,因此我们采用了 Anti-Corruption Layer (简称 ACL) 的方式来切割旧债。

我们开了一个新资料夹叫 domains,并在底下开立各 domain 的资料夹:

https://ithelp.ithome.com.tw/upload/images/20210922/20108265X95CKaZSHx.jpg

相关设定

  • 修改 Rails eager_load model 的路径
# config/application.rb
class Application < Rails::Application
  config.eager_load_paths += Dir['domains']
end

那至於 domain 资料夹里会有那些东西呢,静待下回揭晓!


<<:  Day 10 - JavaScript(1) : 变数与资料类型

>>:  DAY22 MongoDB Profiler 几个指令抓出拖垮系统的元凶

Day 7 Functions

今天要来对 function 来做深入一点的介绍。 如果想要把 function 存在变数里,可以对...

[从0到1] C#小乳牛 练成基础程序逻辑 Day 29 - 加速器 中/英打typing games 六大推荐

免扮女装 | 游戏中超越自己 | 手速up up | 6大推荐 ...

Day-10 符号Symbol 跟字串String有什麽不同?

Ruby 里面有个很奇怪的东西,叫做符号 Symbol ,他的写法是 :hello ,字串前面加上...

Python 演算法 Day 8 - 理论基础 统计 & 机率

Chap.I 理论基础 Part 4:统计 & 机率 Analyze the data th...

Day24 跟着官方文件学习Larave-Dusk

Laravel Dusk 提供我们浏览器自动化及测试 API。首先把套件引入 composer re...