Chúng tôi có một dự án trong đó mã UI sẽ được phát triển bởi cùng một nhóm nhưng bằng ngôn ngữ khác (Python / Django) từ lớp dịch vụ (REST / Java). Mã cho mỗi lớp thoát trong các kho mã khác nhau và có thể theo các chu kỳ phát hành khác nhau. Tôi đang cố gắng đưa ra một quy trình sẽ ngăn chặn / giảm các thay đổi phá vỡ trong lớp dịch vụ theo quan điểm của lớp UI.
Tôi đã nghĩ sẽ viết các bài kiểm tra tích hợp ở cấp lớp UI mà chúng tôi sẽ chạy bất cứ khi nào chúng tôi xây dựng giao diện người dùng hoặc lớp dịch vụ (chúng tôi đang sử dụng Jenkins làm công cụ CI của chúng tôi để xây dựng mã trong hai repos Git) và nếu có những thất bại sau đó một cái gì đó trong lớp dịch vụ bị phá vỡ và cam kết không được chấp nhận.
Sẽ là một ý tưởng tốt (đó có phải là một cách thực hành tốt nhất không?) Để nhà phát triển lớp dịch vụ tạo và duy trì thư viện máy khách cho dịch vụ REST tồn tại trong lớp UI mà họ sẽ cập nhật mỗi khi có sự thay đổi đột phá trong API dịch vụ của họ? Có thể hiểu được, sau đó chúng ta sẽ có lợi thế của API được nhập tĩnh mà mã UI xây dựng dựa trên. Nếu API thư viện máy khách thay đổi, thì mã UI sẽ không được biên dịch (vì vậy chúng tôi sẽ sớm biết rằng có một thay đổi đột phá). Tôi vẫn sẽ chạy các kiểm tra tích hợp khi xây dựng lớp UI hoặc lớp dịch vụ để xác nhận thêm rằng tích hợp giữa UI và (các) dịch vụ vẫn hoạt động.