ชุดรูปแบบซ้ำในงานพัฒนาของฉันคือการใช้หรือการสร้างสถาปัตยกรรมปลั๊กอินภายในองค์กร ฉันเคยเห็นมันเข้าหาหลายวิธี - ไฟล์การกำหนดค่า (XML, .conf และอื่น ๆ ) เฟรมเวิร์กการสืบทอดข้อมูลฐานข้อมูลไลบรารีและอื่น ๆ จากประสบการณ์ของฉัน:
- ฐานข้อมูลไม่ได้เป็นสถานที่ที่ดีในการจัดเก็บข้อมูลการกำหนดค่าของคุณโดยเฉพาะอย่างยิ่งร่วมกับข้อมูล
- การพยายามทำสิ่งนี้ด้วยลำดับชั้นการสืบทอดจำเป็นต้องมีความรู้เกี่ยวกับปลั๊กอินที่จะเข้าสู่ระบบซึ่งหมายความว่าสถาปัตยกรรมปลั๊กอินนั้นไม่ได้เป็นแบบไดนามิกทั้งหมด
- ไฟล์กำหนดค่าทำงานได้ดีสำหรับการให้ข้อมูลที่เรียบง่าย แต่ไม่สามารถจัดการกับพฤติกรรมที่ซับซ้อนกว่านี้ได้
- ดูเหมือนว่าห้องสมุดจะทำงานได้ดี แต่ต้องสร้างการอ้างอิงแบบทางเดียว
ในขณะที่ฉันพยายามเรียนรู้จากสถาปัตยกรรมที่หลากหลายที่ฉันทำงานด้วยฉันก็กำลังมองหาคำแนะนำจากชุมชนเช่นกัน คุณนำสถาปัตยกรรมปลั๊กอินไปใช้อย่างไร อะไรคือความล้มเหลวที่เลวร้ายที่สุดของคุณ (หรือความล้มเหลวที่เลวร้ายที่สุดที่คุณเคยเห็น) คุณจะทำอย่างไรถ้าคุณจะใช้สถาปัตยกรรมปลั๊กอินใหม่ โครงการ SDK หรือโอเพ่นซอร์สใดที่คุณทำงานด้วยมีตัวอย่างที่ดีที่สุดของสถาปัตยกรรมที่ดี?
ตัวอย่างเล็ก ๆ น้อย ๆ ที่ฉันพบด้วยตัวเอง:
- Perl's Module :: PlugableและIOCสำหรับการฉีดพึ่งพาใน Perl
- Spring Framework ต่างๆ (Java, .NET, Python) สำหรับการฉีดแบบพึ่งพา
- คำถาม SOกับรายการสำหรับ Java (รวมถึงการให้บริการของผู้ให้บริการการเชื่อมต่อ )
- คำถาม SOสำหรับ C ++ ที่ชี้ไปยังบทความดร. Dobbs
- คำถาม SOเกี่ยวกับความคิดที่ปลั๊กอินที่เฉพาะเจาะจงสำหรับ ASP.NET MVC
ตัวอย่างเหล่านี้ดูเหมือนจะเล่นกับจุดแข็งด้านภาษาต่างๆ สถาปัตยกรรมปลั๊กอินที่ดีจำเป็นต้องเชื่อมโยงกับภาษาหรือไม่ เป็นการดีที่สุดที่จะใช้เครื่องมือในการสร้างสถาปัตยกรรมปลั๊กอินหรือใช้กับรุ่นต่อไปนี้ของตัวเอง?