什么是模块化单体?
模块化单体将应用组织为彼此独立的业务模块,同时统一打包和部署。 每个模块负责一组职责,并定义其他模块如何使用它。
例如,销售应用可以包含商品、库存和订单模块。它们仍属于同一个应用;将它们分开有助于在功能增长时保持代码易于管理。
如何组织模块?
一个模块通常包含两个部分:
- 公共接口: 其他模块可以使用的操作,例如查询库存或为订单预留商品。这些操作可以是同一程序内的函数,不必使用网络 API。
- 内部实现: 模块的业务规则和数据访问代码。其他模块通过公共接口使用它,而不是直接访问这些实现细节。
模块可以共享数据库,但每组数据的归属应该明确。如果只是创建不同文件夹,却允许每个模块修改其他所有模块的数据,就无法形成多少有用的隔离。
