Модульність моделі для оптимізації безперервної розробки

Дискретно-подієве моделювання в Python

Diogo Costa (PhD, MSc)

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

Що таке масштабованість моделі?

  • Розширювати можливості з часом
  • Без втрати продуктивності та збоїв

Термін «масштабована» модель

  • Типове вживання: здатність збільшувати потужність за потребою користувачів
  • У дискретно-подійних моделях: здатність розширюватись і лишатися стабільною

Важливість

  • Критично для довгострокового успіху та цінності моделі
  • Здатність еволюціонувати
  • Якісні практики кодування, як-от модульність моделі
Дискретно-подієве моделювання в Python

Масштабована й менш масштабована моделі

Масштабована модель

Схема показує модульну модель, що краще масштабується, бо код належно розділено: модулі легко додавати, вилучати або замінювати без зміни структури моделі.

Менш масштабована модель

Схема показує менш модульну модель, що гірше масштабується, бо код належно не розділено: модулі не так просто додати, вилучити або замінити без змін у структурі моделі.

Дискретно-подієве моделювання в Python

Модульність моделі

  • Взаємозамінні компоненти (або модулі)

  • Процеси розділено на окремі функції

  • Модулі викликаються багаторазово

  • Замість створення копій одного й того ж коду

Схема моделі з семи функцій, де під час оновлення «func_b» замінили на «func_b1» і додали «func_f» між «func_c» та «func_d».

Дискретно-подієве моделювання в 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() # Модуль замінено на
  def func_b1()  # Заміна модуля
  def func_c()
  def func_f()   # Додано новий модуль
  def def func_d()
  def func_e()
Дискретно-подієве моделювання в Python

Давайте потренуємось!

Дискретно-подієве моделювання в Python

Preparing Video For Download...