У нас є проект, де код UI буде розроблений тією ж командою, але іншою мовою (Python / Django) з рівня послуг (REST / Java). Код кожного шару залишається в різних сховищах коду і може дотримуватися різних циклів випуску. Я намагаюся розробити процес, який запобіжить / зменшить порушення змін рівня сервісу з точки зору рівня користувальницького інтерфейсу.
Я думав написати інтеграційні тести на рівні шару користувальницького інтерфейсу, які ми будемо виконувати щоразу, коли ми будуємо інтерфейс або рівень послуг (ми використовуємо Дженкінса як наш інструмент CI для створення коду, який знаходиться у двох репортажах Git) і якщо виникають збої, тоді щось на рівні сервісу зламалося, і фіксація не приймається.
Чи було б також хорошою ідеєю (чи це найкраща практика?), Щоб розробник рівня послуг створював і підтримував клієнтську бібліотеку для служби REST, що існує на рівні користувальницького інтерфейсу, яку вони оновлюватимуть кожного разу, коли відбудеться перервна зміна їх сервісний API? Можливо, тоді ми мали б перевагу статичного типу API, на якому створюється код інтерфейсу. Якщо API клієнтської бібліотеки зміниться, код UI не буде компілюватися (тому ми швидше дізнаємось, що відбулася переломна зміна). Також я б ще запустив тести інтеграції після побудови інтерфейсу користувача або рівня сервісу для подальшої перевірки того, що інтеграція між інтерфейсом користувача та сервісами все ще працює.