Kami memiliki proyek di mana kode UI akan dikembangkan oleh tim yang sama tetapi dalam bahasa yang berbeda (Python / Django) dari lapisan layanan (REST / Java). Kode untuk setiap lapisan keluar dalam repositori kode yang berbeda dan yang dapat mengikuti siklus rilis yang berbeda. Saya mencoba untuk datang dengan proses yang akan mencegah / mengurangi kerusakan pada lapisan layanan dari perspektif lapisan UI.
Saya berpikir untuk menulis tes integrasi pada tingkat lapisan UI yang akan kita jalankan setiap kali kita membangun lapisan UI atau layanan (kita menggunakan Jenkins sebagai alat CI kami untuk membangun kode yang ada dalam dua repositori Git) dan jika ada kegagalan maka sesuatu di lapisan layanan rusak dan komit tidak diterima.
Apakah itu juga merupakan ide yang baik (apakah ini merupakan praktik terbaik?) Untuk membuat pengembang lapisan layanan membuat dan memelihara perpustakaan klien untuk layanan REST yang ada di lapisan UI yang akan mereka perbarui setiap kali ada perubahan pada API Layanan mereka? Dapat dibayangkan, kita kemudian akan mendapat keuntungan dari API yang diketik secara statis yang dibangun oleh kode UI. Jika pustaka klien perubahan API, maka kode UI tidak akan dikompilasi (jadi kami akan segera tahu bahwa ada perubahan yang melanggar). Saya juga masih menjalankan tes integrasi setelah membangun UI atau lapisan layanan untuk lebih memvalidasi bahwa integrasi antara UI dan layanan masih berfungsi.