ข้อดีและข้อเสียของการจัดการ versioning - konlawatit/SWDEV-BBP-PLUS GitHub Wiki

ข้อดี

  • แยกส่วนการใช้งาน API จากผู้ใช้งาน ผู้ใช้งานจะเห็นเพียง API จาก gateway เท่านั้น ว่าต้องส่ง request ไปที่ไหนมี input อย่างไร ได้ output อย่างไร วิธีการนี้จะส่งผลดีต่อการแก้ไขปรับปรุง API ที่อยู่ด้านในระบบ โดยไม่กระทบต่อผู้ใช้งานโดยตรง
  • ใช้สำหรับป้องกันการโจมตีจากผู้บุกรุก ทั้ง SQL Injection, XML exploit และ Denial-of-Service (DoS) เนื่องจากเป็น layer ที่ผู้ใช้งานจากภายนอกจะเข้าถึง API ได้
  • ช่วยลดความซับซ้อนของ service ต่าง ๆ ลงไป
  • ทำให้ทดสอบระบบได้ง่ายขึ้น

ข้อเสีย

  • เวลาขึ้น Version ใหม่ต้องทำ Adapter ขึ้นมาใหม่ ซึ่งบางครั้งหาก Structure มีการเปลี่ยนมากๆจะส่งผลเสีย ทั้งนี้รวมไปถึงการ Performance และ ระยะเวลากว่าข้อมูลจะไหลไปถึง Codebase อีกด้วย
  • อาจมีการเกิดขึ้นของ Single Point of Failure ได้
  • จำเป้นต้องใช้เครื่องมือ และ ระบบที่เหมาะสมกับการ Config และ Deploy ด้วย มิเช่นนั้นจะส่งผลเสียต่อประสิทธิภาพของงาน

วิธีการรับมือกับข้อเสีย

  • ใช้หลักการ Micro service ในการพัฒนาเพื่อช่วยลด Single point of failure
  • เลือกใช่เครื่องมือโดยพิจารณาจากความเหมาะสมและความคุ้นชินของสมาชิกในทีม