Modularity ของโมเดลเพื่อรองรับการพัฒนาอย่างต่อเนื่อง

การจำลองเหตุการณ์แบบไม่ต่อเนื่องด้วย Python

Diogo Costa (PhD, MSc)

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

Model scalability คืออะไร?

  • ขยายความสามารถได้ตามเวลา
  • โดยไม่สูญเสียประสิทธิภาพหรือเกิดความเสียหาย

คำว่า "scalable" ในโมเดล

  • ความหมายทั่วไป: ขยายขีดความสามารถตามความต้องการของผู้ใช้
  • ในโมเดล discrete-event: ขยายได้และยังคงเสถียร

ความสำคัญ

  • จำเป็นต่อความสำเร็จและคุณค่าระยะยาวของโมเดล
  • ความสามารถในการพัฒนาต่อเนื่อง
  • แนวปฏิบัติที่ดี เช่น modularity ของโมเดล
การจำลองเหตุการณ์แบบไม่ต่อเนื่องด้วย Python

โมเดลแบบ scalable และแบบที่ scalable น้อยกว่า

โมเดลแบบ scalable

ไดอะแกรมแสดงโมเดลแบบ modular ที่มีความ scalable สูง เพราะโค้ดแบ่งส่วนอย่างเหมาะสม ทำให้เพิ่ม ลบ หรือแทนที่โมดูลได้โดยไม่ต้องเปลี่ยนโครงสร้างโมเดล

โมเดลที่ scalable น้อยกว่า

ไดอะแกรมแสดงโมเดลที่มี modularity ต่ำและมีความ scalable น้อยกว่า เพราะโค้ดไม่ได้แบ่งส่วนอย่างเหมาะสม ทำให้เพิ่ม ลบ หรือแทนที่โมดูลได้ยากโดยไม่กระทบโครงสร้างโมเดล

การจำลองเหตุการณ์แบบไม่ต่อเนื่องด้วย Python

Modularity ของโมเดล

  • คอมโพเนนต์ (หรือโมดูล) ที่สับเปลี่ยนได้

  • กระบวนการแบ่งแยกเป็นฟังก์ชันอิสระ

  • เรียกใช้โมดูลซ้ำได้หลายครั้ง

  • แทนที่จะคัดลอกโค้ดเดิมซ้ำ

ไดอะแกรมแสดงโมเดลที่ประกอบด้วยเจ็ดฟังก์ชัน โดยการอัปเกรดโมเดลครั้งนี้แทนที่โมดูล "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() # Module replaced by
  def func_b1()  # Module replacement
  def func_c()
  def func_f()   # New module added
  def func_d()
  def func_e()
การจำลองเหตุการณ์แบบไม่ต่อเนื่องด้วย Python

มาฝึกกันเถอะ!

การจำลองเหตุการณ์แบบไม่ต่อเนื่องด้วย Python

Preparing Video For Download...