2011-02-02 2 views
1

나는이 달성하기 위해이 무엇인지 당신은 여러 가지 방법을 생각 궁금 해요 : 보석/플러그인을 작성 공유 파일공유보기 3 응용 프로그램

  • 에 대한

    1. 사용 심볼릭 링크를 그 공유 파일 및 코드

    2. 캐시에보기/파셜 필요한 응용 프로그램에서 저장을 끌어 웹 서비스를 만들기를 제공

    제 목적은 대형 응용 프로그램의 복잡성을 줄이는 것입니다. 온라인 커뮤니티를 만들고 싶은데, 하나의 앱이 포럼을 다루고, 다른 하나는 사용자 갤러리를 다루고, 다른 하나는 사용자를 관리하고 다른 앱에 공통된 시각을 제공하기를 원한다고 가정 해 봅시다.

    따라서 마스터 애플리케이션은 공통 레이아웃과 위젯을 다른 모든 앱에 제공해야하며 각 앱은 마스터 앱에도 일부보기를 제공해야합니다.

    예를 들어, 레이아웃에 각 앱에 대한 항목이있는 기본 메뉴가 있고 각 항목에 크기가 큰 하위 메뉴가 있기 때문에 레이블 및 URL 쌍의 간단한 목록을 가질 수는 없습니다.

    아마도 마스터 응용 프로그램은 각 하위 응용 프로그램에 비공개 API를 통해 메뉴 항목과 내용을 제공하고, 메뉴를 작성하고, 캐시에 출력을 저장하고, 요청시 각 응용 프로그램에 전체 메뉴를 전송할 것입니다.

    알다시피, 나는 이미 옵션 3에 기대고 있지만, 내 접근법에 대한 피드백과 더 나은 방법이 있는지 알고 싶습니다.

    입력 해 주셔서 감사합니다.

  • 답변

    1

    하나의 레일스 애플리케이션을 사용해야하는 것처럼 당신이 묘사 한 바가 정말 들립니다. 뷰의 상호 의존성은 당신이이 접근 방식의 이점을 누릴 수 있다고 생각하게 만듭니다. 또한 '응용 프로그램'이 세 개의 실제 Rails 응용 프로그램에 걸쳐 있기 때문에 테스트가 더 어려울 것이라고 생각합니다.

    그렇다면 세 가지 응용 프로그램을 사용하도록 설정 한 경우 및 API를 사용하지 않는 것이 좋습니다. API는 데이터 (json, xml ...)를 앞뒤로 전달할 때 유용하지만 뷰에 적합하지 않습니다. 내 권장 사항은 별도의 자식 저장소에 저장할 수 있으며 단순히 각 응용 프로그램 내에서 사용할 수있는 공통 뷰 플러그인을 만드는 것입니다. 그런 식으로 공통 코드가 응용 프로그램간에 공유되지만 여전히 모든 응용 프로그램에 로컬로 액세스 할 수 있습니다.

    +1

    내 앱이 훨씬 복잡하다. 예제로 사용했다. 웹 서비스가 많이 필요하기 때문에 플러그인을 사용하는 것이 옳다는 것을 알게된다. 더 많은 복잡성, 나는 그들 중 하나가 다운되면 마스터 및 어린이 애플 리케이션에 캐시해야 할 것. – Ivan

    +0

    레일 3의 엔진에 대해 읽었습니다. 원하는대로 완벽 해 보입니다. 유용한 정보는 다음과 같습니다. http://www.themodestrubyist.com/2010/03/05/rails-3-plugins---part-2---writing-an-engine/ – Ivan

    +0

    시작하기에 좋은 장소 인 것처럼 보입니다. . –

    관련 문제