ปกติคุณจะเข้าถึงปัญหาการพึ่งพาสกรรมกริยาที่เกิดขึ้นในขณะใช้งานในโครงการซอฟต์แวร์ขนาดใหญ่ได้อย่างไร
ในช่วงสามสัปดาห์ที่ผ่านมาฉันพยายามเริ่มส่วนประกอบของซอฟต์แวร์ชิ้นใหญ่ภายในส่วนประกอบอื่นของซอฟต์แวร์ แต่เป็นระยะ ๆ จะตายเนื่องจากปัญหาการพึ่งพาสกรรมกริยาซึ่งเป็นที่รู้จักกันในเวลาทำงานเท่านั้น
โดยปัญหาการพึ่งพาสกรรมกริยาฉันหมายความว่าการอ้างอิงบางอย่างของการอ้างอิงของโครงการที่กำหนดชนกับการพึ่งพาอื่น ๆ ในเวลาทำงานทำให้เกิดความไม่แน่นอนหรือความล้มเหลวทันที
มีหลายร้อยคนต่อการใช้งานหลายร้อยคนและมีโครงการย่อยประมาณ 50 โครงการที่เชื่อมโยงกับเครื่องมือที่ทำงานแยกจากทีมอื่น ๆ โดยที่โมดูลทั้งหมดมีการพึ่งพาซ้อนกันระหว่างกันอย่างลึกซึ้ง ไม่มีใครรู้ว่าโครงการย่อยทั้งหมดจะถูกใช้เพื่อกำหนดขนาดและความซับซ้อนของโครงการ
ในสถานการณ์นี้คุณจะพยายามสร้างการแสดงภาพของ DAG สำหรับแต่ละการพึ่งพาของส่วนประกอบที่ได้รับผลกระทบและพยายามกำหนดตำแหน่งที่อาจเกิดการชนในเวลาทำงานหรือไม่ ฉันไม่สามารถควบคุมวิธีการจัดการการพึ่งพาในโครงการย่อยอื่น ๆ และไม่สามารถเปลี่ยนรหัส Java ใด ๆ ที่เขียนโดยนักพัฒนาอื่น ๆ
วิธีแก้ปัญหาที่ฉันเกิดขึ้นกับการทำงานเพียงหนึ่งชั่วโมงหรือสองชั่วโมงจากนั้นพวกเขาก็หยุดทำงานเนื่องจากการเปลี่ยนแปลงส่วนประกอบต้นน้ำ ตัวอย่างขององค์ประกอบต้นน้ำคือสิ่งประดิษฐ์ที่โครงการที่ฉันกำลังทำงานนั้นขึ้นอยู่กับสิ่งที่ถูกสร้างขึ้นในขั้นตอนก่อนหน้านี้ใน CI ไปป์ไลน์
ตามคำขอของผู้อื่นฉันจะรวมข้อมูลเกี่ยวกับเทคโนโลยีที่ใช้อยู่ในความเสี่ยงที่จะต้องปิดคำถามเพื่อให้ข้อมูลมากเกินไปหรือร่างกายมีความยาวมากเกินไป:
- Maven ใช้สำหรับการจัดการการพึ่งพา และ
- สปริงใช้เป็นภาชนะ DI
- ส่วนใหญ่ของปัญหาการพึ่งพาเกี่ยวข้องกับบริบทถั่วที่ทับซ้อนกันเป็นผลมาจากบริบทของโมดูลอื่น ๆ ที่ถูกโหลดในเวลาทำงาน
- ผลิตภัณฑ์ทำงานอย่างถูกต้องและมี smorgasbords ของการทดสอบหน่วยและการทดสอบการรวมเพื่อหลีกเลี่ยงความถูกต้องการทำงานของโปรแกรม
โดยทั่วไปฉันกำลังมองหาวิธีใช้ภาษาที่ไม่เชื่อเรื่องพระเจ้าในการระบุวิธีการแก้ไขความขัดแย้งในการพึ่งพาโดยไม่ต้องระบุถึงการรวมกันที่เป็นไปได้ทั้งหมดของการขึ้นต่อกันของโครงการ
ฉันไม่สามารถสร้างโครงการใหม่เพิ่มประตูคุณภาพเพิ่มเติมผลักดันกระบวนทัศน์ใน บริษัท หรือเปลี่ยนภาษาเป็นวิธีแก้ปัญหา