2016-10-06 25 views
8

Tôi đang tìm một giải pháp cho một chút tình huống kỳ lạ. Chúng ta hãy xem nhanh dự án hạt giống góc 2 để tôi có thể giải thích rõ hơn: https://github.com/mgechev/angular2-seed/tree/master/src/client/app.Giao diện người dùng "dịch vụ vi mô" với Angular 2

Trong dự án đó, chúng tôi có 3 mô-đun bị cô lập - về, nhà riêng, được chia sẻ. Những gì tôi đang tìm kiếm là một cách để cô lập sự phát triển của chúng, vì vậy cuối cùng chúng ta có thể giải phóng từng phần một cách độc lập. Ví dụ: giả sử Đội A đang làm việc trên phần giới thiệu và Nhóm B đang làm việc ở nhà. Công việc đã hoàn thành cho mỗi công việc và chúng tôi sẵn sàng phát hành, tuy nhiên chúng tôi nhận thấy phần này thiếu một chức năng quan trọng, tuy nhiên chúng tôi vẫn muốn phát hành thay đổi cho phần nhà. Những gì chúng tôi đang tìm kiếm là một cách để đạt được điều này.

Dưới đây là một số giải pháp đã được khám phá, nhưng tôi không thực sự hài lòng với:

  • Có các ứng dụng hoàn toàn khác nhau cho home/về (trong mắt tôi, điều này loại bỏ rất nhiều những lợi ích của một SPA).
  • Yêu cầu mỗi mô-đun (về, ở nhà, chia sẻ) cuộn lên gói NPM của chính nó. Khi chúng tôi đi triển khai, chúng tôi sẽ có một số cách để dàn xếp việc kéo tất cả các gói NPM đã xuất bản cho các mô-đun này.
+0

Câu hỏi của bạn là gì? Các module 'about' và' home' được phân tách như thế nào? – KTCO

+0

@KTCO là một phần của những gì tôi vẫn cần phải tìm ra, có khả năng sẽ được gắn vào giải pháp cuối cùng. Doanh nghiệp muốn có thể phát hành các tính năng mới trong ứng dụng độc lập với nhau, thay vì sau đó phát hành toàn bộ ứng dụng cùng một lúc. Vì mỗi phần chức năng sẽ được sở hữu/làm việc bởi một nhóm khác, họ muốn Nhóm A có thể phát hành mã mới của mình mà không ảnh hưởng đến Đội B chút nào. Như đã đề cập trong tiêu đề, họ thực sự muốn đạt được kiến ​​trúc "dịch vụ vi mô" ở giao diện người dùng. – SpareWalrus

+0

@KTCO Trong khi tôi có đặt phòng của tôi về phương pháp này trên giao diện người dùng, tôi muốn ít nhất khám phá các tùy chọn trước khi thẳng lên nói không. – SpareWalrus

Trả lời

5

Orchestration:

Yêu cầu mỗi nhóm xây dựng một thư viện thành phần (NPM) và kéo những thành 2 ứng dụng kiễu góc duy nhất. Bằng cách đó, các nhóm có thể phát triển bằng cách sử dụng microservices principles, nhưng bạn có thể triển khai một khốiSPA monolith giúp giảm độ phức tạp.

thư viện phần lớn nên có nhiều bó và mô-đun để bạn có thể chọn lọc về những gì bạn kéo trong

Truyền thông giữa microservices:.

Nếu cần thiết, các thư viện thành phần có thể giao tiếp qua back- kết thúc tin nhắn xe buýt.

Nếu yêu cầu tích hợp phía máy khách trực tiếp giữa thư viện thành phần, bạn cần thư viện thành phần thứ 3 abouthome tùy thuộc vào dịch vụ tin nhắn/sự kiện có trọng lượng nhẹ. Bạn có thể triển khai dịch vụ đó bằng cách sử dụng RxJS Subjects.

Các vấn đề liên quan