เมื่อเร็ว ๆ นี้เราได้โยกย้ายซอร์สโค้ดเกือบทั้งหมดใน บริษัท ของฉันไปยังโซลูชันเดียว
ทำไม?
เดิมทีเรามีวิธีแก้ปัญหาหลายสิบวิธี บางโครงการจากโซลูชันนำโครงการกลับมาใช้ใหม่อีกโครงการหนึ่งและไม่มีใครสนใจเกี่ยวกับการใช้ตัวจัดการแพคเกจ วันที่คุณเปลี่ยนโครงการที่ใช้เกือบทุกที่คาดหวังว่าจะมีชั่วโมงและเวลาทำงานที่สูญเสียทั้ง บริษัท ในวันถัดไปหรือสัปดาห์ถัดไป ส่วนที่แย่ที่สุดคือคุณไม่รู้อะไรเลยจะได้รับผลกระทบจากการเปลี่ยนแปลง
การรวมรหัสทั้งหมดเข้าในโซลูชันเดียวเป็นทางเลือก มันใช้งานได้ดีในขณะนี้และตอนนี้การพึ่งพาง่ายต่อการติดตาม ต้องการที่จะปรับเปลี่ยนวิธีการ แต่ยังติดตามผลกระทบการเปลี่ยนแปลงนี้อาจมีที่ใดก็ได้ในฐานรหัส? Visual Studio สามารถทำได้อย่างง่ายดาย สำหรับฉันมันประสบความสำเร็จ
การรวมอย่างต่อเนื่องก็ง่ายขึ้นเช่นกัน ทางออกหนึ่งในการรวบรวมและปรับใช้ เกือบจะไม่มีการกำหนดค่าใด ๆ
ปรับขนาดได้หรือไม่
ผลการดำเนินงานที่ชาญฉลาดฉันรู้สึกประหลาดใจมากโดย Visual Studio ฉันคิดว่ามันจะเริ่มร้องไห้ด้วยวิธีแก้ปัญหาด้วยพูด 50 โครงการ วันนี้มีมากกว่า 200 โครงการ Visual Studio ดูเหมือนจะปรับขนาดได้เพียงพอที่จะจัดการพวกเขาราวกับว่ามีเพียง 20 คนเท่านั้น ใช่มีหลายสิ่งที่ต้องใช้เวลา หากคุณคอมไพล์ใหม่ทุกโครงการโดยมีสัญญา Code, การวิเคราะห์ Code ที่เปิดใช้งานโดยค่าเริ่มต้นเป็นต้นคาดว่าจะใช้เวลาสักครู่ แต่ไม่มีใครคาดว่าจะรวบรวม 200 โครงการเร็วที่สุดเท่าที่ 10 และไม่ควรทำเช่นนี้นั่นคือบทบาทของเซิร์ฟเวอร์การรวมอย่างต่อเนื่อง เวลาเริ่มต้น (เริ่มเย็นแล้วโหลดโซลูชัน) นั้นรวดเร็วอย่างน่าประทับใจ ; อาจจะไม่เร็วเท่ากับ 10 โครงการ แต่ก็ยังเป็นที่ยอมรับมาก (ภายใน 20 วินาทีบนเครื่องที่ซื้อมานานกว่าห้าปีที่แล้ว)
หากต้องการดำเนินการเพิ่มเติมให้ขนถ่ายโครงการอย่างเป็นระบบเป็นความคิดที่ดี (และง่ายมากเมื่อจัดโครงการในไดเรกทอรีภายในโซลูชัน) หากใครบางคนทำงานกับบางสิ่งที่ต้องการโหลดเพียงสามโครงการก็ไม่จำเป็นต้องโหลดโครงการทั้งหมด 200 โครงการ (เว้นแต่แน่นอนว่าการพึ่งพาอาจได้รับผลกระทบ)
การควบคุมเวอร์ชันทำงานได้ตามที่คาดหวังเช่นกัน (ฉันใช้เซิร์ฟเวอร์ SVN หากมีความสำคัญ) ฉันไม่ได้ทำงานในสภาพแวดล้อมที่เกิดขึ้นพร้อมกันจริง ๆ ด้วยนักพัฒนาหลายคนที่ยอมรับโค้ดบ่อยครั้ง แต่ฉันคิดว่ามันจะไม่มีปัญหามากเกินไป เพียงระวังกรณีที่นักพัฒนาจำนวนมากเพิ่มโครงการใหม่ในเวลาเดียวกัน: การรวมไฟล์. sln ไม่ใช่สิ่งที่ง่ายที่สุดในการทำ
ข้อสรุป
ถ้าฉันต้องเลือกการตัดสินใจอีกครั้ง:
ฉันจะยังคงโยกย้ายทุกอย่างเป็นโซลูชั่นเดียว สิ่งนี้จะช่วยลดความเจ็บปวดจากการพึ่งพาที่แตกสลายอย่างมหาศาลและประโยชน์นี้เพียงอย่างเดียวก็คุ้มค่า การมีสถานที่รวมศูนย์สำหรับรหัสทั้งหมดเป็นความคิดที่ดีเช่นกัน สิ่งนี้ทำให้เป็นไปได้ในการค้นหาบางสิ่งภายใน Visual Studio ฉันยังสามารถทำงานในสองโครงการที่เกี่ยวข้องอย่างอ่อนแอและยังคงเปิดหน้าต่าง Visual Studio เพียงหน้าต่างเดียว
ฉันจะศึกษา NuGet อีกเล็กน้อยและความสามารถในการโฮสต์เซิร์ฟเวอร์ NuGet ส่วนตัว การจัดการการพึ่งพาผ่าน NuGet สามารถแก้ไขปัญหาบางอย่างเมื่อคุณไม่ต้องการรวมโครงการบางอย่างเข้ากับโซลูชันทั่วไป โดยส่วนตัวฉันไม่มีกรณีเช่นนี้ แต่ฉันคิดว่า บริษัท อื่นอาจมี
ในที่สุดการลงทุนใน SSD สำหรับนักพัฒนาทุกคนสามารถสร้างความแตกต่างอย่างมาก แต่คุณไม่จำเป็นต้องและในกรณีของฉันฐานรหัสยังคงเก็บไว้ในฮาร์ดไดรฟ์ธรรมดา