Phicha Studio

Phicha Studio

← Back to blog

Published on Tue Feb 11 2025 12:00:00 GMT+0000 (Coordinated Universal Time) by Naruchet Phicharattanachai

ADR คืออะไร ???

ADR หรือ Architectural Decision Record เป็นเอกสารที่ใช้บันทึกการตัดสินใจเกี่ยวกับสถาปัตยกรรมซอฟต์แวร์ เพื่อให้ทีมสามารถย้อนกลับมาทบทวนหรือเข้าใจเหตุผลเบื้องหลังของการออกแบบโครงสร้างซอฟต์แวร์ได้อย่างชัดเจน

ทำไม ADR ถึงสำคัญ ???

บันทึกการตัดสินใจ – ช่วยให้ทีมสามารถย้อนกลับมาดูว่าเหตุใดจึงตัดสินใจเลือกแนวทางใดแนวทางหนึ่ง

ช่วยให้ทีมเข้าใจตรงกัน – ลดความสับสนและช่วยให้สมาชิกใหม่สามารถเข้าใจโครงสร้างซอฟต์แวร์ได้เร็วขึ้น

รองรับการเปลี่ยนแปลง – เมื่อระบบเติบโตขึ้น ADR จะช่วยให้การอัปเดตหรือเปลี่ยนแปลงเป็นไปอย่างมีเหตุผลและมีการบันทึกไว้เป็นหลักฐาน

ช่วยในการสื่อสาร – ทำให้ผู้ที่ไม่ได้อยู่ในกระบวนการตัดสินใจสามารถเข้าใจได้ว่ามีการเลือกใช้เทคโนโลยีหรือแนวทางใดบ้าง

โครงสร้างของ ADR

ADR มักจะประกอบด้วยโครงสร้างดังนี้:

  1. Context – อธิบายปัญหาหรือความต้องการที่นำไปสู่การตัดสินใจ
  2. Decision – สรุปการตัดสินใจที่เกิดขึ้น
  3. Consequences – ผลกระทบของการตัดสินใจทั้งในด้านดีและด้านเสีย

ตัวอย่าง ADR

# ADR-001: เลือกใช้ PostgreSQL เป็นฐานข้อมูลหลัก

## Context
ในโครงการนี้ เราต้องการฐานข้อมูลที่รองรับการทำงานแบบ ACID, มีความสามารถในการขยายตัวได้ดี และรองรับ JSONB เพื่อการจัดเก็บข้อมูลแบบยืดหยุ่น

## Decision
เราเลือกใช้ **PostgreSQL** เป็นฐานข้อมูลหลัก เนื่องจาก:
- รองรับ ACID
- มีประสิทธิภาพสูงสำหรับการ Query
- รองรับ JSONB สำหรับการจัดเก็บข้อมูลแบบกึ่งโครงสร้าง

## Consequences
✅ รองรับการทำงานที่ซับซ้อน และช่วยให้โค้ดสามารถจัดการข้อมูลได้อย่างมีประสิทธิภาพ
⚠️ อาจต้องใช้ทรัพยากรเซิร์ฟเวอร์มากกว่าฐานข้อมูลแบบ NoSQL

สรุป

ADR เป็นเครื่องมือที่ช่วยให้การพัฒนาซอฟต์แวร์เป็นระบบมากขึ้น โดยบันทึกการตัดสินใจด้านสถาปัตยกรรม ทำให้ทีมสามารถเข้าใจเหตุผลเบื้องหลังของการออกแบบและเตรียมพร้อมสำหรับการเปลี่ยนแปลงในอนาคตได้ง่ายขึ้น หากคุณยังไม่เคยใช้ ADR ลองเริ่มต้นวันนี้เพื่อให้โครงการของคุณมีการจัดการที่เป็นระบบมากขึ้น! 🚀

Written by Naruchet Phicharattanachai

← Back to blog
  • ADR คืออะไรทำไมถึงสำคัญ ???

    ADR คืออะไรทำไมถึงสำคัญ ???

    Architectural Decision Record (ADR) เป็นเครื่องมือที่ช่วยให้ทีมซอฟต์แวร์สามารถบันทึกและติดตามการตัดสินใจด้านสถาปัตยกรรมได้อย่างเป็นระบบ ทำให้สามารถอ้างอิงและพัฒนาโค้ดในระยะยาวได้อย่างมั่นใจ 🚀

  • อ่านเลขยาว ๆ ง่ายขึ้น แค่เติม _ ใน Golang

    อ่านเลขยาว ๆ ง่ายขึ้น แค่เติม _ ใน Golang

    Golang ช่วยให้การอ่านตัวเลขยาว ๆ เป็นเรื่องง่ายขึ้น ด้วยการใช้ _ คั่นระหว่างหลักตัวเลข ทำให้โค้ดดูสะอาด อ่านง่ายขึ้น และลดโอกาสผิดพลาด แค่เติม _ ไว้ในค่าตัวเลข ก็ช่วยให้เข้าใจได้ทันทีว่าเลขนั้นมีค่าเท่าไหร่ 🚀