2013-03-27 3 views
2

우리의 응용 프로그램은 Javascript MVC 프레임 워크를 사용하는 대규모 Javascript 응용 프로그램입니다. 우리는 SVN을 통해 모든 사이트에서 MVC 앱 폴더를 사용하고 있습니다 : 외부 사이트이며 각 사이트에도 자체 파일이 있습니다. 설정 파일은 해당 사이트에만 적용됩니다.큰 공유 코드 기반, 기능 확장

우리는 시스템이 각 사이트마다 다른 기능을 가질 수 있어야합니다. 핵심 기능은 동일하게 유지되어야합니다. 현재와 ​​새로운 개발자들에게 유지 보수가 가능한 솔루션을 유지하면서 핵심 코드를 확장해야합니다.

현재 우리가 생각했던 옵션은 다음과 같습니다

A : 핵심 내에서 기능 조건문을 포함하기 및 온/오프 설정이

B 파일을 통해 기능을 켜 : 재정/상속 기존 컨트롤러를

c : 코어 내에 무제한 후크가있는 모듈러 시스템 (플러그인)을 구현하고 settings.json을 통해로드/활성화되는 플러그인을 구성하십시오.

옵션 a에는 lon을 유지하기 어렵다는 문제가 있습니다. g 용어이며 상당히 해킹됩니다.

옵션 B는 이미 구현하지만, 우리는 새로운 기능이있는 경우, 우리는 그것이

을 덮어

옵션 C는 우리가 최근의 생각 솔루션입니다되어있는 경우 각 사이트의 파일을 편집 할 필요가로 (유지하기 어렵다된다 공유 (플러그인) 컨트롤러를 사용하고 사이트 별 설정 파일을 편집하여 수정을 시도하고 분리 할 수 ​​있습니다.

우리가 이미 생각한 옵션을 경험 한 사람이 누구인지, 다른 사람이 더 잘 맞는 옵션을 알고 있다면

+0

OpenAjax를 사용하기 때문에 공유 코드를 사이트 특정 코드와 분리 할 수 ​​있습니다. 우리는 또한 도둑질을 사용합니다.종속 관리자 인 js – Scott

+0

실제 작업에 따라 옵션 b와 옵션 c를 모두 사용하여 종료했습니다. 옵션 b를 사용하여 이라는 모델 메서드를 덮어 쓰고 양식 유효성 검사 (사이트에 새로운 규칙 추가 코어에 추가하고 기능 토글을 사용하는 것보다) – Scott

답변

0

옵션 C쪽으로 기울임.

대규모 응용 프로그램은 모듈 형 패턴을 따르는 것이 크게 도움이됩니다. 앞으로도 더 나은 유지 보수를 위해 코드를 느슨하게 분리 할 수 ​​있으며 많은 개발자가 한 번에 개별 조각을 작업 할 수 있습니다. 그리고 사이트 특정 설정 파일을 통해 핵심 모듈과 애드온을로드하십시오. 아주 잘

중보자, 외관, 펍/하위 pattersn 작업 :

은 당신이 대규모 응용 프로그램의 주제에 애디 오스 마니의 기사를 체크 아웃하는 것이 좋습니다 그리고 모듈 로더와 함께 모듈 로더를 연결하면, RequireJS과 같이 커다란 어플리케이션을위한 훌륭한 기초가됩니다. 저는 이것을 직장에서 사용했고, 모든 것을 유지하고 관리하기에 좋은 방법이라고 생각했습니다.

+0

고맙습니다. 사이트 별 변경을 수행 할 수있는 공유 코드를 시도하는 데 다른 옵션이 있다고 생각합니까? – Scott

+0

@scott 다른 패턴을 사용할 수 있습니다. 해결책은 없습니다. 따라서 응용 프로그램의 이점을 누릴 수 있다고 생각하는 다른 패턴을 검토하는 것이 좋습니다. 여기에 더 많은 독서가 있습니다 : http://addyosmani.com/resources/essentialjsdesignpatterns/book/#summarytableddesignpatterns – sweetamylase

+0

고마워, 내가 보게. – Scott