개발 작업에서 반복되는 주제는 사내 플러그인 아키텍처를 사용하거나 작성하는 것이 었습니다. 구성 파일 (XML, .conf 등), 상속 프레임 워크, 데이터베이스 정보, 라이브러리 등 여러 가지 방법으로 접근하는 것을 보았습니다. 내 경험상 :
- 데이터베이스는 특히 데이터와 함께 구성 정보를 저장하기에 좋은 장소가 아닙니다.
- 상속 계층 구조로 이것을 시도하려면 플러그인에 대한 지식이 필요합니다. 플러그인 아키텍처가 그다지 역동적이지는 않습니다.
- 구성 파일은 간단한 정보를 제공하는 데 효과적이지만 더 복잡한 동작을 처리 할 수 없습니다
- 라이브러리는 잘 작동하는 것처럼 보이지만 단방향 종속성은 신중하게 만들어야합니다.
함께 일한 다양한 아키텍처에서 배우려고 노력하면서 커뮤니티에도 제안을 구하고 있습니다. SOLID 플러그인 아키텍처를 어떻게 구현 했습니까? 최악의 고장은 무엇입니까? 새로운 플러그인 아키텍처를 구현하려는 경우 어떻게 하시겠습니까? 함께 작업 한 SDK 또는 오픈 소스 프로젝트 중 가장 좋은 아키텍처의 예는 무엇입니까?
내가 직접 찾은 몇 가지 예 :
- Perl의 모듈 :: Perl의 의존성 주입을위한 플러그 가능 및 IOC
- 의존성 주입을위한 다양한 Spring 프레임 워크 (Java, .NET, Python).
- Java 목록이 있는 SO 질문 ( 서비스 제공 업체 인터페이스 포함 )
- Dr. Dobbs 기사를 가리키는 C ++에 대한 SO 질문
- SO 질문 ASP.NET MVC에 대한 특정 플러그인 아이디어에 대한
이 예제는 다양한 언어 강점으로 재생되는 것 같습니다. 좋은 플러그인 아키텍처는 반드시 언어와 연결되어 있습니까? 플러그인 아키텍처를 만들거나 자신의 다음 모델에서 도구를 사용하는 것이 가장 좋습니까?