Wir haben ein Projekt, in dem UI-Code vom selben Team entwickelt wird, jedoch in einer anderen Sprache (Python / Django) als die Serviceschicht (REST / Java). Der Code für jede Schicht Exits in verschiedenen Code - Repositories und welche können unterschiedliche Freisetzungszyklen folgen. Ich versuche, einen Prozess zu entwickeln, der das Brechen von Änderungen in der Serviceschicht aus Sicht der UI-Schicht verhindert / reduziert.
Ich habe mir überlegt, Integrationstests auf der Ebene der Benutzeroberfläche zu schreiben, die wir ausführen, wenn wir die Benutzeroberfläche oder die Dienstebene erstellen (wir verwenden Jenkins als unser CI-Tool, um den Code zu erstellen, der sich in zwei Git-Repos befindet) und wenn Es gibt Fehler, dann ist etwas in der Serviceschicht kaputt gegangen und das Festschreiben wird nicht akzeptiert.
Wäre es auch eine gute Idee (ist dies eine bewährte Methode?), Dass der Entwickler der Serviceschicht eine Clientbibliothek für den in der UI-Ebene vorhandenen REST-Service erstellt und verwaltet, die bei jeder Änderung aktualisiert wird ihre Service-API? Es ist vorstellbar, dass wir dann den Vorteil einer statisch typisierten API haben, gegen die der UI-Code erstellt. Wenn sich die API der Clientbibliothek ändert, wird der UI-Code nicht kompiliert (sodass wir früher wissen, dass eine wichtige Änderung vorliegt). Ich würde auch weiterhin die Integrationstests beim Erstellen der Benutzeroberfläche oder der Serviceschicht ausführen, um weiter zu überprüfen, ob die Integration zwischen der Benutzeroberfläche und den Diensten noch funktioniert.