通过模块化优化模型的持续开发

Python 中的离散事件模拟

Diogo Costa (PhD, MSc)

Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific

什么是模型可扩展性?

  • 随时间扩展功能
  • 不牺牲性能且不崩溃

"可扩展"模型的含义

  • 常见用法:可随用户需求提升容量
  • 在离散事件模型中:可扩展且保持稳定

重要性

  • 关系到模型的长期成功与价值
  • 具备演进能力
  • 良好编码实践,如模型模块化
Python 中的离散事件模拟

可扩展与不可扩展模型

可扩展模型

图示:模块化模型因代码良好分隔而更易扩展,可在不改动模型结构的情况下轻松添加、移除或替换模块。

可扩展性较差的模型

图示:非模块化模型因代码未良好分隔而可扩展性较差,添加、移除或替换模块往往需要修改模型结构。

Python 中的离散事件模拟

模型模块化

  • 可互换的组件(模块)

  • 将流程拆分为独立函数

  • 模块可被多次调用

  • 而非复制相同代码

图示:模型由七个函数组成。一次升级用"func_b1"替换"func_b",并在"func_c"和"func_d"之间新增"func_f"。

Python 中的离散事件模拟

示例:替换与新增模块

旧版本

with counter.request() as request:
    yield request

    def func_a()
    def func_b()
    def func_c()
    def func_d()
    def func_e()

更新版本

with counter.request() as request:
  yield request

  def func_a()
  # def func_b() # Module replaced by
  def func_b1()  # Module replacement
  def func_c()
  def func_f()   # New module added
  def func_d()
  def func_e()
Python 中的离散事件模拟

Passons à la pratique !

Python 中的离散事件模拟

Preparing Video For Download...