2016-10-06 2 views
8

이상한 상황에 대한 해결책을 찾고 있습니다. 이제 angle2-seed 프로젝트를 살펴보고 더 잘 설명해 드리겠습니다. https://github.com/mgechev/angular2-seed/tree/master/src/client/app.각도 2 인 프런트 엔드 "마이크로 서비스"

그 프로젝트에는 약 3 개의 고립 모듈이 있습니다. 내가 찾고있는 것은 이들의 개발을 분리하는 방법이며, 그래서 우리는 궁극적으로 각 조각을 독립적으로 릴리스 할 수 있습니다. 예를 들어 팀 A가 about 섹션에서 작업 중이고 팀 B가 집에서 작업 중이라고 가정 해 보겠습니다. 각각에 대한 작업이 완료되어 출시 할 준비가되었지만 about 섹션에 중요한 기능이 누락되었음을 알았지 만 여전히 변경 사항을 홈 섹션에 릴리스하려고합니다. 우리가 찾고있는 것은 이것을 성취하는 방법입니다. 여기

이미 탐구 일부 솔루션,하지만 난 정말 행복하지 않다 :

  • 하는 가정을위한 완전히 다른 응용 프로그램을/약 (내 눈에, 이것은 SPA의 혜택을 많이 제거).
  • 각 모듈 (about, home, shared)을 자체 NPM 패키지로 롤업하십시오. 배포를 진행할 때 게시 된 모든 NPM 패키지를이 모듈에 맞게 조정할 수있는 방법이 있습니다.
+0

정확하게 당신의 질문은 무엇입니까? 'about' 모듈과'home' 모듈은 얼마나 분리되어 있습니까? – KTCO

+0

@KTCO는 내가 알아야 할 부분 중 일부이며 최종 솔루션에 묶일 것입니다. 기업은 전체 응용 프로그램을 한 번에 릴리스하지 않고 응용 프로그램 내에서 독립적으로 새로운 기능을 릴리스 할 수 있기를 원합니다. 각 기능은 다른 팀에서 소유/작업하므로 팀 B는 팀 B에게 전혀 영향을 미치지 않고 새 코드를 릴리스 할 수 있기를 원합니다. 제목에서 언급했듯이 프런트 엔드에서 "마이크로 서비스"아키텍처를 실제로 구현하고자합니다. – SpareWalrus

+0

@KTCO 프런트 엔드에서이 방법에 대한 내 예약을하는 동안, 적어도 아니오라고 말하기 전에 옵션을 탐색하고 싶습니다. – SpareWalrus

답변

5

오케스트레이션 :

각 팀이 구성 요소 라이브러리 (NPM)를 구축하고 하나의 각도 2 응용 프로그램에 사람들을 끌어 되세요. 그렇게하면 microservices principles을 사용하여 팀을 개발할 수 있지만 복잡성을 줄이는 SPA 단일체을 배포 할 수 있습니다. . 당신은 당신이 끌어 것에 대한 선택이 될 수 있도록

대형 구성 요소 라이브러리는 여러 번들과 모듈을해야 microservices 사이

통신 :

필요한 경우, 구성 요소 라이브러리는 백을 통해 통신 할 수 있습니다 엔드 메시지 버스.

구성 요소 라이브러리간에 직접 클라이언트 측 통합이 필요한 경우 가벼운 주입 가능 메시지/이벤트 서비스가 포함 된 abouthome이 종속 된 세 번째 구성 요소 라이브러리가 필요합니다. RxJS Subjects을 사용하여 해당 서비스를 구현할 수 있습니다.