บริษัทแห่งหนึ่งมีระบบที่ Stored Procedure ในฐานข้อมูลเก็บตรรกะธุรกิจทั้งหมด แต่นักพัฒนาใหม่บ่นว่าดูแลรักษายาก ปัญหานี้เกิดจากสิ่งใด
กปัญหาเกิดจากนักพัฒนาใหม่ขาดทักษะ SQL
ขการใช้ Stored Procedure ไม่ถูกต้อง ควรใช้ View แทน
คการรวม Business Logic ไว้ใน Database Layer ทำให้ผิดหลัก Separation of Concerns
งระบบควรใช้ NoSQL Database เพื่อหลีกเลี่ยงปัญหา
เฉลยอธิบาย
หลัก Separation of Concerns กำหนดให้แต่ละชั้น (Layer) ของระบบรับผิดชอบงานเฉพาะของตน Business Logic ควรอยู่ใน Application Layer ไม่ใช่ Database Layer การรวม Business Logic ใน Stored Procedure ทำให้ดูแลรักษายาก ทดสอบยาก และขยายระบบยาก ตัวเลือก A View ใช้สำหรับแสดงข้อมูลไม่ใช่ธุรกิจ Logic ตัวเลือก C การเปลี่ยน Database ไม่แก้ปัญหาหลัก ตัวเลือก D โทษนักพัฒนาไม่ใช่การวิเคราะห์ปัญหาที่แท้จริง