ฉันเป็นนักพัฒนารุ่นน้องในรุ่นพี่และกำลังดิ้นรนมากกับการเข้าใจความคิดเหตุผล
ฉันกำลังอ่านการออกแบบที่ขับเคลื่อนด้วยโดเมน (DDD) และไม่เข้าใจว่าทำไมเราต้องสร้างคลาสจำนวนมาก ถ้าเราทำตามวิธีการออกแบบซอฟต์แวร์เราจะจบด้วยชั้นเรียน 20-30 ชั้นซึ่งสามารถแทนที่ได้ด้วยไฟล์มากที่สุดสองไฟล์และฟังก์ชั่น 3-4 อย่าง ใช่มันอาจยุ่งเหยิง แต่มันสามารถดูแลและอ่านได้มากกว่า
เมื่อใดก็ตามที่ฉันต้องการดูว่าบางอย่างEntityTransformationServiceImpl
ทำอะไรฉันต้องติดตามคลาสอินเทอร์เฟซการเรียกใช้ฟังก์ชันการสร้างการสร้างและอื่น ๆ มากมาย
คณิตศาสตร์ง่าย ๆ :
- รหัสจำลอง 60 บรรทัดเทียบกับ 10 คลาส X 10 (สมมติว่าเรามี logics ที่แตกต่างกันโดยสิ้นเชิง) = 600 บรรทัดของรหัสยุ่งกับ 100 ชั้นเรียน + อีกมากมายที่จะรวมและจัดการ อย่าลืมเพิ่มการฉีดพึ่งพา
- อ่านรหัสยุ่ง 600 เส้น = หนึ่งวัน
- 100 คลาส = หนึ่งสัปดาห์ยังคงลืมว่าหนึ่งจะทำอะไรเมื่อ
ทุกคนบอกว่าง่ายต่อการบำรุงรักษา แต่เพื่ออะไร ทุกครั้งที่คุณเพิ่มฟังก์ชันการทำงานใหม่คุณจะเพิ่มคลาสอีกห้าคลาสด้วยโรงงานหน่วยงานบริการและค่านิยม ฉันรู้สึกว่ารหัสประเภทนี้เคลื่อนที่ช้ากว่ารหัสที่ยุ่งเหยิงมาก
สมมติว่าถ้าคุณเขียนรหัสยุ่ง 50K LOC ในหนึ่งเดือนสิ่ง DDD ต้องการการตรวจสอบและการเปลี่ยนแปลงมากมาย (ฉันไม่สนใจการทดสอบในทั้งสองกรณี) การเพิ่มหนึ่งอย่างง่ายๆอาจใช้เวลาหนึ่งสัปดาห์หากไม่มากกว่านั้น
ในหนึ่งปีคุณเขียนโค้ดยุ่งจำนวนมากและยังสามารถเขียนซ้ำได้หลายครั้ง แต่ด้วยรูปแบบ DDD คุณยังคงมีฟีเจอร์ไม่เพียงพอที่จะแข่งขันกับโค้ดยุ่ง
กรุณาอธิบาย. ทำไมเราต้องการสไตล์ DDD และรูปแบบมากมาย?
UPD 1 : ฉันได้รับคำตอบที่ยอดเยี่ยมมากมายคุณช่วยกรุณาเพิ่มความคิดเห็นได้ไหมหรือแก้ไขคำตอบของคุณพร้อมลิงค์สำหรับอ่านรายการ (ไม่แน่ใจว่าจะเริ่มต้น DDD, รูปแบบการออกแบบ, UML, รหัสเสร็จสมบูรณ์, Refactoring, Pragmatic) .. หนังสือดี ๆ มากมาย) แน่นอนว่ามีการเรียงลำดับดังนั้นฉันจึงสามารถเริ่มทำความเข้าใจและกลายเป็นรุ่นพี่อย่างที่คุณทำ