हमारे पास एक परियोजना है जहां यूआई कोड एक ही टीम द्वारा विकसित किया जाएगा लेकिन सेवाओं की परत (REST / Java) से एक अलग भाषा (पायथन / Django) में। प्रत्येक परत के लिए कोड अलग-अलग कोड रिपॉजिटरी में बाहर निकलता है और जो अलग-अलग रिलीज चक्र का पालन कर सकता है। मैं एक ऐसी प्रक्रिया के साथ आने की कोशिश कर रहा हूं, जो यूआई परत के परिप्रेक्ष्य से सेवाओं की परत में परिवर्तन को रोक / कम कर देगी।
मैंने UI लेयर स्तर पर एकीकरण परीक्षण लिखने के लिए सोचा है कि जब भी हम UI या सेवाओं की परत का निर्माण करेंगे (हम कोड को बनाने के लिए हमारे CI टूल के रूप में जेनकिंस का उपयोग कर रहे हैं जो दो Git repos में है) और यदि विफलताएं हैं, तो सेवाओं की परत में कुछ टूट गया और कमिट स्वीकार नहीं किया गया।
क्या यह भी एक अच्छा विचार होगा (क्या यह एक सर्वोत्तम अभ्यास है?) यूआई लेयर में मौजूद REST सेवा के लिए क्लाइंट लायब्रेरी बनाने और बनाए रखने के लिए डेवलपर की परत है कि जब भी कोई ब्रेकिंग चेंज होगा तो वे अपडेट करेंगे। उनकी सेवा एपीआई यकीनन, तब हमें एक स्टेटिकली टाइप्ड एपीआई का फायदा होगा जो यूआई कोड बनाता है। यदि क्लाइंट लाइब्रेरी API बदलता है, तो UI कोड संकलित नहीं होगा (इसलिए हम जल्द ही जान लेंगे कि एक ब्रेकिंग परिवर्तन था)। मैं अभी भी यूआई या सेवाओं की परत बनाने पर एकीकरण परीक्षण चलाऊंगा ताकि यह साबित हो सके कि यूआई और सेवा (एस) के बीच एकीकरण अभी भी काम करता है।