เมื่อสร้างแอปพลิเคชันจากศูนย์ฉันควรเริ่มต้นด้วยโมเดลเชิงวัตถุ (OO) หรือโมเดลเอนทิตีสัมพันธ์ (ER) หรือไม่
เมื่อสร้างแอปพลิเคชันจากศูนย์ฉันควรเริ่มต้นด้วยโมเดลเชิงวัตถุ (OO) หรือโมเดลเอนทิตีสัมพันธ์ (ER) หรือไม่
คำตอบ:
คุณอาจต้องการลองสังเกตหลักการของการชะลอการตัดสินใจทางสถาปัตยกรรมให้นานที่สุด ความคิดนี้เกิดขึ้นเพื่อที่คุณจะได้รู้ในอนาคตเกี่ยวกับโดเมนปัญหาของคุณมากกว่าที่คุณทำในตอนนี้ดังนั้นการตัดสินใจใด ๆ ที่คุณทำในวันนี้เป็นที่น่าสงสัย
หลักการที่ดีอีกข้อหนึ่งในการจับคู่กับสิ่งนี้คือพยายามที่จะพยายามเสี่ยงส่วนที่คุณต้องการก่อน - ความคิดที่ว่าถ้าคุณทำส่วนที่ง่ายแล้วพบว่าส่วนที่เสี่ยงย้ายคุณไปในทิศทางที่แตกต่างกันคุณไม่มี เพื่อทำชิ้นส่วนที่ง่ายได้อีกครั้ง ความเสี่ยงที่นี่หมายถึงสิ่งที่คุณไม่แน่ใจว่าคุณควรทำอย่างไร
เมื่อพิจารณาจากทั้งสองนี้และเมื่อฉันพยายามเข้าใกล้สิ่งต่าง ๆ จากมุมมองของ OO คุณอาจลองเริ่มต้นด้วยโมเดล OO ของส่วนที่เสี่ยงที่สุดในการสมัครของคุณก่อนและใช้โค้ดที่มีความเป็นไปได้น้อยที่สุด ข้อกำหนดที่มีความเสี่ยง จากนั้นเริ่มขยายโมเดล OO ของคุณตามต้องการเพื่อเพิ่มฟังก์ชันการทำงานที่คุณต้องการ ในขณะที่คุณสามารถชะลอการตัดสินใจว่าจะใช้ SQL หรือ NoSQL หรือ flatfiles หรือที่เก็บข้อมูลบนคลาวด์หรืออะไรก็ตาม ... และในที่สุดคุณอาจพบว่าคุณไม่ต้องการความสัมพันธ์เลย (ยกเลิกความต้องการรุ่น ER)
โมเดล ER กำหนดวิธีเก็บรักษาข้อมูลของแอปพลิเคชันและรุ่น OO จะตัดสินว่าข้อมูลเดียวกันนั้นจะถูกเก็บไว้ในหน่วยความจำหรือขณะที่แอปพลิเคชันทำงาน ดังนั้นการออกแบบคีมาฐานข้อมูล (โมเดล ER) และการออกแบบโครงสร้างคลาส (โมเดล OO) เป็นข้อควรพิจารณาในการออกแบบที่เกี่ยวข้องและมักจะคิดเกี่ยวกับการพร้อมกัน อันที่จริงถ้าคุณใช้เครื่องมือการทำแผนที่วัตถุเชิงสัมพันธ์ (ORM)โมเดล ER ของคุณและโมเดล OO ของคุณอาจเป็นหนึ่งเดียวกัน กล่าวอีกนัยหนึ่งคลาสของคุณ (โมเดล OO) อาจมีคำอธิบายประกอบในลักษณะที่พวกเขาเองระบุรุ่น ER
ก่อนที่จะออกแบบให้แน่ใจว่าคุณมีความคิดที่ดีมากเกี่ยวกับข้อกำหนดที่แท้จริงของซอฟต์แวร์สิ่งที่จะใช้สำหรับวิธีการใช้งานและผู้ที่จะใช้ นักพัฒนาหลายคนเริ่มคิดเกี่ยวกับการตัดสินใจออกแบบก่อนที่พวกเขาจะเข้าใจความต้องการที่จะได้รับจากผลิตภัณฑ์และจบลงด้วยการออกแบบที่ไม่เหมาะสมสำหรับวัตถุประสงค์ที่แท้จริงของแอปพลิเคชัน