Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

ว่าด้วยเรื่องการติดต่อสื่อสารระหว่าง Module

$
0
0

ในการแบ่งปันเรื่อง Microservices design และ develop นั้น
มักจะแนะนำเสมอว่า เริ่มจาก modular ให้มันดี ๆ ก่อน (process เดียวกัน)
เริ่มด้วยการแบ่งการทำงานต่าง ๆ เป็น module หรือกลุ่มการทำงานก่อน
จากนั้นดูการติดต่อสื่อสารระหว่าง module ว่าเป็นอย่างไร ?
มันทำให้แต่ละ module ผูกมัดกันมากไปหรือไม่ ? (Tight coupling)

ดังนั้นในการทำ workshop จึงแนะนำหนึ่งแนวทางในการจัดการ module

และการติดต่อระหว่าง mnodule แบบไม่ผูกมัดกันมากนัก (Loose coupling)
เพื่อลดผลกระทบจากการแก้ไขใน module ต่าง ๆ ลง

หนึ่งในวิธีการที่แนะนำคือ นำแนวคิดของ Event-based เข้ามาช่วยงาน

หรือ Mediator pattern จาก design pattern นั่นเอง
แสดงดังรูป

อธิบายการทำงานคร่าว ๆ เป็นดังนี้

  • เมื่อ module A ทำงานเรียบร้อยแล้ว ปกติจะต้องเป็นฝั่งที่เรียกใช้งาน module B เองต่อไป แต่ในแนวทางนี้ไม่ใช่
  • module A ทำการสร้าง event ขึ้นมาจากนั้น publish ออกไป
  • ทาง module B จะทำการสร้าง event handler สำหรับคอยรับ event type ที่ต้องการ
  • เมื่อมี event ที่ต้องการเกิดขึ้นมา ทาง module B ก็จะทำงานต่อไปเองแบบอัตโนมัติ ทำให้ทั้งสอง module ไม่ผูกมัดกันมากนัก
  • โดยทั้งสอง module ทำงานใน process เดียวกัน ดังนั้น event ก็จะอยู่ภายในนั่นเอง
  • อีกอย่าง แนวคิดนี้มันก็เอื้อต่อการแยกในอนาคตอีกด้วย !!

ตัวอย่างของการพัฒนาจะมีดังนี้

ลองนำไปเล่นกันดูครับ เป็นอีกหนึ่งแนวคิดที่น่าสนใจ

Reference websites


Viewing all articles
Browse latest Browse all 1997

Trending Articles