ลิงก์ไปยังบทความเกี่ยวกับสื่อกลาง
ตรวจสอบบทความเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับแนวคิดและการนำไปใช้
Clean Architecture เป็นโซลูชันสถาปัตยกรรมซอฟต์แวร์ที่ใช้งานได้จริงจาก Robert C. Martin ในตำนาน (aka“ Uncle Bob”) ด้วยการใช้กฎสากลของซอฟต์แวร์ ar chitecture คุณสามารถปรับปรุงประสิทธิภาพการทำงานของนักพัฒนาได้อย่างมากตลอดอายุการใช้งานของระบบซอฟต์แวร์ใด ๆ
ทำไมต้องเพิ่มจำนวนการตัดสินใจที่ไม่ได้ทำมากที่สุด !! เราในฐานะนักพัฒนารู้โดยการทดลองว่าเฟรมเวิร์กที่เราเลือกในตอนต้นของโครงการ (ฐานข้อมูลหรือเฟรมเวิร์กเว็บ ฯลฯ ) ยากที่จะแทนที่ในช่วงชีวิตของโครงการและนั่นเป็นเพราะการมีเพศสัมพันธ์ที่แน่นหนาและการตัดสินใจในช่วงต้นอื่น ๆ คำตอบคือเราควรสร้างสถาปัตยกรรมที่เปิดใช้งานการเปลี่ยนแปลงใช่ฉันเน้นการเปลี่ยนแปลง การเปลี่ยนแปลงขององค์ประกอบต่ำและเฟรมเวิร์กโดยไม่ต้องตีตรรกะหลักและส่วนประกอบระดับสูง
รูปแบบเน้นว่าโครงการซอฟต์แวร์ทุกโครงการสร้างขึ้นเพียงสององค์ประกอบของนโยบายและรายละเอียด นโยบาย (ส่วนประกอบระดับสูง) เป็นแกนหลักของระบบซอฟต์แวร์ซึ่งรวมถึงกฎเกณฑ์ทางธุรกิจทั้งหมดเอนทิตีทั้งหมดและทุกสิ่งที่ทำให้เป็นเอกลักษณ์เฉพาะกับซอฟต์แวร์นั้น เช่นเดียวกับนิติบุคคลลูกค้าหรือการดำเนินการชำระเงินในแพลตฟอร์มอีคอมเมิร์ซ รายละเอียด (ส่วนประกอบระดับล่าง) เป็นวิธีที่มนุษย์สามารถโต้ตอบกับกฎทางธุรกิจชื่อรูปแบบเหล่านี้เป็นอุปกรณ์ IO ฐานข้อมูลเว็บเซิร์ฟเวอร์ ฯลฯ เช่นปุ่มชำระเงินที่กระตุ้นกฎธุรกิจที่เกี่ยวข้อง
เป้าหมายสุดท้ายของรูปแบบคือการแยกส่วนประกอบระดับสูงออกจากส่วนประกอบระดับต่ำและพยายามทำให้พวกเขาทำงานร่วมกันและสร้างภูมิคุ้มกันระดับสูงจากการเปลี่ยนแปลงรายละเอียด ให้ฉันสร้างความคิดทั้งหมดนี้ในใจของคุณโดยตัวอย่าง ลองนึกภาพซอฟต์แวร์ที่สร้างขึ้นบนฐานข้อมูลเชิงสัมพันธ์เช่น MySQL และใช้ Express JS เป็นเว็บเซิร์ฟเวอร์หลังจากนั้นหนึ่งปีผู้มีส่วนได้ส่วนเสียแนะนำข้อกำหนดและคุณสมบัติใหม่ที่ไม่สอดคล้องกับฐานข้อมูลเชิงสัมพันธ์และต้องการฐานข้อมูล NOSQL หากการใช้งานซอฟต์แวร์เป็นไปตามสถาปัตยกรรมที่ดีด้วยการมีเพศสัมพันธ์แบบหลวมระหว่างส่วนประกอบคุณไม่จำเป็นต้องปฏิวัติด้วยการเปลี่ยนแปลง มันค่อนข้างง่ายที่จะเปลี่ยนฐานข้อมูลหรือเว็บเซิร์ฟเวอร์หรือรายละเอียดอื่น ๆ ของซอฟต์แวร์ที่เหมาะกับโซลูชันโดยไม่ส่งผลกระทบต่อกฎทางธุรกิจและส่วนประกอบระดับสูง
ลุงบ๊อบเน้นหลักการที่เป็นของแข็งรวมเข้ากับรูปแบบสถาปัตยกรรมที่สะอาดเพื่อสร้างโซลูชันซอฟต์แวร์ที่สามารถใช้งานได้จริงสามารถปรับขนาดได้และปรับใช้ได้ง่าย