Anti-Corruption Layer(ACL)

เป็นหนึ่งใน Design Pattern ที่ใช้ในการแปลงข้อมูลระหว่างสองระบบที่มีการออกแบบแตกต่างกัน ซึ่งช่วยป้องกันระบบใหม่จากความซับซ้อนและข้อจำกัดของระบบเก่า

เหตุผลในการใช้งาน Anti-Corruption Layer

เมื่อเราพัฒนาระบบใหม่ที่ต้องสื่อสารกับระบบเก่าหรือระบบอื่นที่มีโครงสร้างข้อมูล โมเดล หรือรูปแบบ API ที่แตกต่างกัน มักจะเกิดปัญหาในการสื่อสารและการผสมผสานข้อมูล การใช้ ACL ช่วยแก้ปัญหานี้โดยทำหน้าที่เป็นชั้นกลางสำหรับแปลงข้อมูลและโปรโตคอล ทำให้ระบบใหม่ไม่ต้อง "รับ" ความซับซ้อนที่ไม่จำเป็นจากระบบเก่า

โครงสร้างและการทำงานของ Anti-Corruption Layer

Anti-Corruption Layer ทำหน้าที่เป็น Adapter หรือ Translator โดยจะอยู่ระหว่างระบบใหม่และระบบเก่า โดยที่จะ

  • แปลงข้อมูลจากรูปแบบของระบบหนึ่งไปยังอีกรูปแบบหนึ่ง

  • ป้องกันไม่ให้ระบบใหม่รับรู้ถึงรูปแบบหรือการทำงานที่ซับซ้อนของระบบเก่า

  • ช่วยให้การ Design ระบบใหม่สามารถที่จะทำการ direction ที่ต้องการได้(Tech stack ใหม่ Protocol ใหม่) โดยไม่ต้องปรับเปลี่ยนตามข้อจำกัดของระบบเดิม

ข้อดี Anti-Corruption Layer

  1. ลดความซับซ้อน: ระบบใหม่ไม่ต้องปรับโครงสร้างหรือโมเดลตามระบบเก่า ช่วยให้การออกแบบในระบบใหม่มีความยืดหยุ่นและง่ายขึ้น

  2. ป้องกันการ "ปนเปื้อน": ระบบใหม่จะไม่ต้องรับรู้ถึงข้อจำกัดของระบบเก่าซึ่งอาจซับซ้อนหรือมีโครงสร้างที่ล้าสมัย

  3. ลดค่าใช้จ่ายในการบำรุงรักษา: การแยกส่วน ACL ช่วยลดภาระในการดูแลระบบใหม่จากความซับซ้อนที่ไม่จำเป็น

ข้อเสีย Anti-Corruption Layer

  1. ความซับซ้อนเพิ่มขึ้น: ACL ต้องการการออกแบบและการพัฒนาเพิ่มเติม ซึ่งอาจเพิ่มค่าใช้จ่ายและเวลา

  2. เพิ่ม latency: ข้อมูลที่ต้องผ่าน ACL เพื่อแปลงอาจใช้เวลาเพิ่มขึ้นเล็กน้อย ทำให้เกิด latency ในการสื่อสารระหว่างระบบ

การนำไปใช้งาน

ACL เหมาะกับระบบที่:

  • ต้องเชื่อมต่อกับระบบเก่าหรือระบบที่มีโครงสร้างแตกต่าง

  • ต้องการให้ระบบใหม่มีโครงสร้างที่ชัดเจนและไม่ซับซ้อน

  • ต้องการหลีกเลี่ยงการปรับโครงสร้างตามข้อจำกัดของระบบอื่น เช่น การเชื่อมต่อระหว่างระบบ ERP แบบเก่ากับระบบ e-commerce แบบใหม่

Reference

Last updated

Was this helpful?