저는 새로운 CMS 시스템을 개발 중이고 특정 고객을 위해 코어를 확장하거나 덮어 쓰길 원합니다. 밖에있는 정보는 sparse입니다. 또는 충분히 잘 보이지는 않았지만 다른 개발자들의 실제 경험을 원합니다.확장 성 디자인 패턴은 무엇이며 장단점은 무엇입니까?
0
A
답변
2
CMS를 디자인 할 때 당신이 찾고있는 것은 아마 플러그 인 방법 일 것입니다. 귀하의 확장 지점을 잘 생각하고 생각하고 있습니다. 확장 성 측면
- Pluggable Architecture 도움이 Open/Close Principle, Interface Segregation 원리와 같은 디자인 측면 표준 패턴을
- Architecture & Design
에 대해 다음 링크를 확인하세요.
궁극적으로 CMS의 플러그 가능한 정도와 핵심 구성 요소의 소비자가 새로운 구성 요소를 추가하기 위해 얼마나 많은 노력을 기울여야하는지에 관한 내용입니다. 이 stackoverflow thread도 유용 할 수 있습니다.
0
시작하려면 복잡해 보입니다. 그러나 IMO는 기본 사항을 따르기 만하면 가능합니다. 상속 등을 통해 모든 코드에 대한
쓰기 단위 테스트를 조성 선호, 인터페이스 항상 코드 - -
을 모듈 식 설계를위한 노력 - 당신은 당신의 프레임 워크를 개발하는 동안 당신은 다음에 강한 초점을해야 이것은 테스트가 느슨하게 결합 된 디자인으로 안내 할뿐만 아니라 그러한 프로젝트에서 중요한 문제인 하위 호환성을 확인하는 데 중요하다는 것을 알게 될 것이므로 매우 중요합니다.
너무 많은 초기 설계 및 과도 설계를 피하십시오. - 프레임 워크는 빌드 프론트가 아닌 코드에서 추출하는 것이 가장 좋습니다. 그런 프로젝트에서는 매우 쉽게 돌아 다니고 필요없는 것을 만들 수 있습니다. 원치 않는 기능은 시간과 돈을 낭비 할뿐만 아니라 미래의 변경을 어렵게 만듭니다. 지나치게 많은 선행 디자인을 수행하지 않고 작은 반복 작업, 리팩토링을 자주하고 단위 테스트를 안전망으로 사용하지 마십시오.
관련 문제
- 1. 지연 성 소켓 - 확장 성?
- 2. AOP의 기본 디자인 패턴은 무엇입니까?
- 3. 이 애플리케이션의 디자인 패턴은 무엇입니까?
- 4. 통화 변환을위한 디자인 패턴은 무엇입니까?
- 5. 전략에 맞는 디자인 패턴은 무엇입니까?
- 6. Liftweb Comet의 장단점은 무엇입니까?
- 7. 겸허 한 오브젝트 패턴은 무엇이며 언제 유용합니까?
- 8. 명령 줄 인수 처리를위한 디자인 패턴은 무엇입니까
- 9. 내 아이폰 앱의 디자인 패턴은 무엇입니까
- 10. 창을 관리 할 디자인 패턴은 무엇입니까?
- 11. 당신이 만난 가장 흥미로운 디자인 패턴은 무엇입니까?
- 12. Notification 시스템에 유용한 디자인 패턴은 무엇입니까?
- 13. 여러 페이지에 대한 안드로이드 디자인 패턴은 무엇입니까?
- 14. 이 시나리오에서 청구서에 맞는 디자인 패턴은 무엇입니까?
- 15. 이 문제에 가장 적합한 디자인 패턴은 무엇입니까?
- 16. 단순한 ORM 쿼리를 구성하는 디자인 패턴은 무엇입니까?
- 17. 파일 기반 통신을위한 디자인 패턴은 무엇입니까?
- 18. 이메일 템플릿의 추천 디자인 패턴은 무엇입니까?
- 19. 일반적인 Windows 서비스 디자인 패턴은 무엇입니까?
- 20. PEAR DB_DataObject가 구현하는 디자인 패턴은 무엇입니까?
- 21. 탭 모양 탐색보기의 올바른 디자인 패턴은 무엇입니까?
- 22. '색상'구조에 가장 적합한 디자인 패턴은 무엇입니까?
- 23. Gmail의 자바 스크립트에 사용되는 디자인 패턴은 무엇입니까?
- 24. 이 작업을 수행 할 디자인 패턴은 무엇입니까?
- 25. "monkeypatching"의 공식적인 디자인 패턴은 무엇입니까?
- 26. 이 코드의 냄새에 맞는 디자인 패턴은 무엇입니까?
- 27. 2D iPhone 게임에 사용할 디자인 패턴은 무엇입니까?
- 28. HTML 및 CSS의 디자인 패턴은 무엇입니까?
- 29. Oracle Forms의 확장 성
- 30. Ext4의 확장 성
이 질문은 너무 구체적이지 않습니다. 좀 더 연구하고 특정 패턴 사이의 절충점을 요구할 수 있습니다. –