Skip to content

容器

容器在软件工程中是一个信息量巨大的词。一谈到容器,我们可能会想到 docker 容器。但是,容器的外延并不止于此,但我们尝试从不同的层面区理解容器时,我们会发现容器其实是一个专注于管理某类资源的有限系统

  • 资源隔离:容器用于呈装何种资源,提供何种层次的隔离能力
  • 依赖管理:为了容器内部的资源提供必要的运行环境和依赖
  • 容器间通信:在多实例的容器系统中,负责容器间的通信和交互
  • 生命周期:资源往往具有生命周期,容器本身也就具有了生命周期

有限性:容器管理的资源是有限的,容器管理的内容是有限。

控制反转 (IoC) 的边界: 思考不仅是对象的创建权交出去,连执行流的控制权是否也能交出去?(例如插件架构、微内核架构)。

服务发现 vs 依赖注入: 在分布式/微服务环境下,依赖不再是简单的内存对象注入,而是服务地址的动态发现。

笔记 container 和 scope 触及了系统如何划分。

C4 模型 (C4 Model): 这是目前最推荐的架构可视化方法。它将系统分为四个级别:Context (上下文)、Containers (容器,如 Web 应用、数据库)、Components (组件)、Code (代码)。你的 container 和 scope 笔记正好对应了 C4 的前两层。

限界上下文 (Bounded Context): 这是 DDD(领域驱动设计)的核心。架构设计最难的不是写代码,而是划定“范围 (Scope)”。同一个“订单”对象,在销售 Scope 和物流 Scope 里的定义是完全不同的。