ในโลกของการออกแบบซอฟต์แวร์การมีเพศสัมพันธ์เป็นเหมือนที่น่ารำคาญในแผนของคุณที่สามารถปิดระบบทั้งหมดได้ ในฐานะผู้จัดหาคัปปลิ้งฉันได้เห็นโดยตรงว่าการมีเพศสัมพันธ์สูงสามารถเปลี่ยนโครงการซอฟต์แวร์ที่ราบรื่นได้เป็นฝันร้าย ดังนั้นเรามาขุดว่าเราสามารถลดการมีเพศสัมพันธ์ในการออกแบบซอฟต์แวร์ได้อย่างไร
เข้าใจการมีเพศสัมพันธ์
ก่อนที่เราจะเริ่มลดการมีเพศสัมพันธ์เราจำเป็นต้องรู้ว่ามันคืออะไร การมีเพศสัมพันธ์หมายถึงระดับของการพึ่งพาซึ่งกันและกันระหว่างโมดูลซอฟต์แวร์ เมื่อโมดูลมีคู่สูงการเปลี่ยนแปลงในโมดูลเดียวอาจมีผลกระทบระลอกคลื่นในโมดูลอื่น ๆ มันเหมือนบ้านของการ์ด ดึงการ์ดหนึ่งใบออกมาและสิ่งทั้งหมดก็พังทลายลง
การมีเพศสัมพันธ์สูงทำให้ซอฟต์แวร์ยากต่อการดูแลทดสอบและขยาย ตัวอย่างเช่นหากคุณกำลังทำงานกับแอปพลิเคชันขนาดใหญ่ E - Commerce และโมดูลการจัดการสินค้าคงคลังจะควบคู่ไปกับโมดูลการประมวลผลคำสั่งอย่างแน่นหนาการเปลี่ยนแปลงใด ๆ ในกฎสินค้าคงคลังอาจทำให้ฟังก์ชันการประมวลผลคำสั่งซื้อ
ความสำคัญของการลดการมีเพศสัมพันธ์
การลดการมีเพศสัมพันธ์มีประโยชน์มากมาย ก่อนอื่นจะช่วยปรับปรุงการบำรุงรักษาของซอฟต์แวร์ เมื่อโมดูลมีการรวมกันอย่างหลวม ๆ คุณสามารถทำการเปลี่ยนแปลงโมดูลหนึ่งโมดูลโดยไม่ต้องกังวลเกี่ยวกับการส่งผลกระทบต่อผู้อื่น นี่หมายถึงเวลาที่ใช้ในการดีบักน้อยลงและมีเวลามากขึ้นในการเพิ่มคุณสมบัติใหม่
นอกจากนี้ยังช่วยเพิ่มความสามารถในการทดสอบ ด้วยการมีเพศสัมพันธ์ต่ำคุณสามารถทดสอบแต่ละโมดูลได้อย่างอิสระซึ่งทำให้กระบวนการทดสอบเร็วขึ้นและเชื่อถือได้มากขึ้น และเมื่อพูดถึงความสามารถในการปรับขนาดซอฟต์แวร์คู่แบบหลวม ๆ สามารถขยายได้อย่างง่ายดายโดยการเพิ่มโมดูลใหม่โดยไม่ต้องเขียนใหม่ที่มีอยู่
กลยุทธ์ในการลดการมีเพศสัมพันธ์
การใช้อินเทอร์เฟซ
อินเทอร์เฟซเป็นเหมือนสัญญาในการออกแบบซอฟต์แวร์ พวกเขากำหนดชุดของวิธีการที่คลาสจะต้องใช้ ด้วยการใช้อินเทอร์เฟซคุณสามารถแยกรายละเอียดการใช้งานจากลูกค้าที่ใช้การใช้งานเหล่านั้น
สมมติว่าคุณกำลังสร้างเกมที่มีตัวละครประเภทต่าง ๆ แทนที่จะมีการวนรอบเกมหลักโต้ตอบโดยตรงกับคลาสอักขระที่เฉพาะเจาะจงคุณสามารถกำหนดอินเทอร์เฟซสำหรับตัวละครได้ จากนั้นเกมจะโต้ตอบกับอินเทอร์เฟซและคลาสอักขระที่แตกต่างกันจะใช้อินเทอร์เฟซนั้น ด้วยวิธีนี้คุณสามารถเพิ่มประเภทตัวละครใหม่โดยไม่ต้องเปลี่ยนรหัสลูปเกม
การฉีดพึ่งพา
การฉีดพึ่งพาอาศัยกันเป็นเทคนิคที่คุณให้การพึ่งพาชั้นเรียนจากภายนอกแทนที่จะให้ชั้นเรียนสร้างตัวเอง สิ่งนี้จะช่วยลดการมีเพศสัมพันธ์ระหว่างคลาสเนื่องจากคลาสไม่จำเป็นต้องรู้วิธีการสร้างการพึ่งพา
ตัวอย่างเช่นในเว็บแอปพลิเคชันหากคลาสบริการผู้ใช้ต้องการเข้าถึงฐานข้อมูลแทนที่จะสร้างการเชื่อมต่อฐานข้อมูลภายในคลาสบริการผู้ใช้คุณสามารถฉีดวัตถุเชื่อมต่อฐานข้อมูลลงในบริการผู้ใช้ ด้วยวิธีนี้หากคุณต้องการเปลี่ยนประเภทฐานข้อมูลคุณจะต้องเปลี่ยนวัตถุที่ฉีดไม่ใช่คลาสบริการผู้ใช้เอง
เหตุการณ์ - สถาปัตยกรรมที่ขับเคลื่อน
เหตุการณ์ - สถาปัตยกรรมที่ขับเคลื่อนเป็นอีกวิธีที่ยอดเยี่ยมในการลดการมีเพศสัมพันธ์ ในสถาปัตยกรรมนี้โมดูลสื่อสารกันโดยการส่งและรับกิจกรรม เมื่อเหตุการณ์เกิดขึ้นโมดูลที่เกี่ยวข้องจะได้รับแจ้งและพวกเขาสามารถดำเนินการที่เหมาะสม
ตัวอย่างเช่นในแอปพลิเคชันการสตรีมสื่อเมื่อผู้ใช้หยุดวิดีโอจะส่งเหตุการณ์ โมดูลอื่น ๆ เช่นโมดูล Analytics สามารถฟังเหตุการณ์นี้และบันทึกเวลาหยุดชั่วคราว โมดูลเครื่องเล่นวิดีโอไม่จำเป็นต้องรู้เกี่ยวกับโมดูลการวิเคราะห์และในทางกลับกัน นี้แยกส่วนต่าง ๆ ของแอปพลิเคชัน
สถาปัตยกรรมชั้น
สถาปัตยกรรมเลเยอร์แบ่งซอฟต์แวร์ออกเป็นเลเยอร์ที่แตกต่างกันเช่นเลเยอร์การนำเสนอเลเยอร์ตรรกะทางธุรกิจและเลเยอร์การเข้าถึงข้อมูล แต่ละเลเยอร์มีความรับผิดชอบเฉพาะและพวกเขาสื่อสารกันผ่านอินเตอร์เฟสที่กำหนดไว้อย่างดี
ตัวอย่างเช่นในแอปพลิเคชันธนาคารเลเยอร์การนำเสนอมีหน้าที่รับผิดชอบในการโต้ตอบกับผู้ใช้เลเยอร์ตรรกะทางธุรกิจจัดการการดำเนินงานของธนาคารเช่นธุรกรรมและเลเยอร์การเข้าถึงข้อมูลเกี่ยวข้องกับฐานข้อมูล การแยกข้อกังวลนี้ช่วยลดการมีเพศสัมพันธ์ระหว่างส่วนต่าง ๆ ของแอปพลิเคชัน
ตัวอย่างจริง - โลกและผลิตภัณฑ์ที่เกี่ยวข้อง
ในโลกแห่งความเป็นจริงการลดการมีเพศสัมพันธ์เป็นสิ่งสำคัญในหลายอุตสาหกรรม ตัวอย่างเช่นในอุตสาหกรรมการผลิตระบบซอฟต์แวร์ใช้เพื่อควบคุมเครื่องจักรต่างๆ เครื่องเหล่านี้มักจะมีส่วนประกอบเช่นชุดล้อขับเคลื่อน-เกียร์ตรง /ขดลวด, และบัฟเฟอร์เครน-
ซอฟต์แวร์ที่ควบคุมส่วนประกอบเหล่านี้จะต้องมีการรวมกันอย่างหลวม ๆ เพื่อให้การเปลี่ยนแปลงใด ๆ ในตรรกะการควบคุมสำหรับองค์ประกอบหนึ่งไม่ส่งผลกระทบต่อผู้อื่น ตัวอย่างเช่นหากคุณต้องการอัพเกรดชุดล้อไดรฟ์เป็นรุ่นขั้นสูงซอฟต์แวร์ควรจะสามารถปรับได้โดยไม่ต้องเขียนระบบควบคุมทั้งหมดใหม่
บทสรุป
การลดการมีเพศสัมพันธ์ในการออกแบบซอฟต์แวร์ไม่ใช่เรื่องง่าย แต่มันก็คุ้มค่ากับความพยายามอย่างแน่นอน ด้วยการใช้เทคนิคเช่นอินเทอร์เฟซการฉีดพึ่งพาเหตุการณ์ - สถาปัตยกรรมที่ขับเคลื่อนและสถาปัตยกรรมแบบเลเยอร์คุณสามารถสร้างซอฟต์แวร์ที่สามารถบำรุงรักษาได้สามารถทดสอบได้และปรับขนาดได้มากขึ้น
ในฐานะซัพพลายเออร์ที่มีเพศสัมพันธ์ฉันเข้าใจถึงความสำคัญของการจัดหาโซลูชั่นที่ช่วยในการลดการมีเพศสัมพันธ์ในระบบต่างๆ ไม่ว่าคุณจะกำลังทำงานกับแอปพลิเคชันขนาดเล็กหรือระบบระดับองค์กรขนาดใหญ่หลักการของการลดการมีเพศสัมพันธ์ยังคงเหมือนเดิม


หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการที่ผลิตภัณฑ์ข้อต่อของเราสามารถช่วยคุณในโครงการออกแบบซอฟต์แวร์ของคุณหรือหากคุณต้องการหารือเกี่ยวกับข้อกำหนดเฉพาะสำหรับการลดการมีเพศสัมพันธ์อย่าลังเลที่จะเข้าถึงการอภิปรายการจัดซื้อจัดจ้าง เราอยู่ที่นี่เพื่อช่วยคุณสร้างซอฟต์แวร์ที่ดีขึ้นด้วยการมีเพศสัมพันธ์ที่ต่ำกว่า
การอ้างอิง
- Gamma, E. , Helm, R. , Johnson, R. , & Vlissides, J. (1994) รูปแบบการออกแบบ: องค์ประกอบของซอฟต์แวร์ที่นำกลับมาใช้ใหม่ - ซอฟต์แวร์ที่มุ่งเน้น แอดดิสัน - เวสลีย์
- Fowler, M. (2004) การฉีดพึ่งพา Martinfowler.com
- Martin, RC (2009) Clean Code: คู่มือของงานฝีมือซอฟต์แวร์ Agile Prentice Hall




