ไม่มีอะไรผิดปกติกับการทำเช่นนั้นตราบใดที่ทุกคนสามารถลดต้นทุนผลประโยชน์และความเสี่ยง
... การแก้ไขดูเหมือนง่ายพอที่จะแก้ไขรหัสด้วยตัวเอง
เมื่อคุณมีงานต้องทำที่สมบูรณ์แบบ (มีห้องสมุดของบุคคลที่สามนั่นคือสิ่งที่คุณต้องการ) เป็นศัตรูของดีพอ (แก้ไขด้วยตัวคุณเอง) และบางครั้งคุณต้องทำสิ่งเช่นนั้น ฉันได้ทำโครงการหลายโครงการที่เราซื้อสิทธิ์การใช้งานแหล่งที่มาสำหรับห้องสมุดเชิงพาณิชย์เพื่อให้เราสามารถแก้ไขปัญหาก่อนที่ผู้ขายจะไปถึง
... ผู้ว่าต้องการที่จะโต้แย้งในกรณีที่เกือบจะเป็นความคิดที่ไม่ดีเพราะมันมีความเสี่ยงและมีความซับซ้อนที่ยุ่งยาก
มันเป็นความคิดที่ไม่ดีถ้าคุณไม่มีคนสับที่จะจัดการโค้ดของคนอื่นโดยแยกแยะระบุปัญหาและเขียนวิธีแก้ไข นั่นเป็นความจริงไม่ว่าจะเป็นรหัสใน บริษัท หรือบุคคลที่สาม ความแตกต่างเพียงอย่างเดียวคือไม่ว่ามันจะถูกโยนข้ามห้องเล็ก ๆ หรือผนังอาคารก่อนที่มันจะตกลงบนตัก
หากผู้ว่าของคุณเพียงแค่ปัดความคิดออกไปโดยไม่ต้องชั่งน้ำหนักค่าใช้จ่ายในการไม่ทำแพทช์นี้พวกเขาจะไม่ทำการบ้าน หากคุณมีรหัสในบ้านจำนวนมากที่ได้รับผลกระทบจากข้อผิดพลาดที่แพตช์ของคุณจะแก้ไขคุณจะต้องผ่านและเปลี่ยนมันเพื่อหลีกเลี่ยงมันและทดสอบทุกอย่างอีกครั้งเพื่อให้แน่ใจว่ามันทำงานได้อย่างถูกต้อง จากนั้นหากคุณเคยอัพเกรดแพ็คเกจเป็นรุ่นที่แก้ไขข้อผิดพลาดคุณอาจต้องค้นหาและลบวิธีแก้ปัญหาและทดสอบอีกครั้ง มีความเสี่ยงที่จะทำเช่นนั้นเช่นไม่มีกรณีที่คุณเปลี่ยนแปลงหรือทดสอบไม่เพียงพอ โดยส่วนตัวถ้าฉันมีโอกาสแก้ไขข้อผิดพลาดที่แหล่งที่มาฉันควรทำที่นั่นมากกว่าไล่ล่าโค้ดที่เหลือด้วย flyswatter และหวังว่าฉันจะได้ทุกอย่าง
... การเปลี่ยนแปลงรหัสทำได้โดยเรา ... มันจะต้องเป็นส่วนหนึ่งของฐานรหัสของเรา ... เราจะต้องแนะนำมันเป็นโครงการใหม่และรวมการสร้างอัตโนมัติในกระบวนการสร้างของเรา
หากคุณกำลังแก้ไขโปรแกรมแก้ไขนั้นเป็นส่วนหนึ่งของรหัสของคุณเองซึ่งหมายความว่าคุณต้องทำให้เป็นส่วนหนึ่งของกระบวนการของคุณ สิ่งนี้ไม่ได้แตกต่างไปจากการเพิ่มรหัส 100% ให้กับระบบของคุณ ปฏิบัติต่อการแจกจ่ายของบุคคลที่สามเป็นที่เคารพสักการะและนำไปใส่ในโมดูลเหมือนกับซอร์สโค้ด แพทช์ที่คุณเขียนจะถูกเก็บไว้ในไฟล์แยกและนำไปใช้เป็นส่วนหนึ่งของกระบวนการสร้าง ด้วยวิธีนี้คุณจะไปจากแหล่งที่มาที่สะอาดไปยังแหล่งที่ได้รับการแก้ไขไปยังผลิตภัณฑ์ที่สร้างขึ้นและสามารถแสดงสิ่งที่เกิดขึ้นได้อย่างแน่นอน (ผู้คนบางคนแกะแพทช์มือแพ็คใหม่และเก็บไว้ในการควบคุมเวอร์ชันนั่นแย่มาก)
... เราจะดึงรหัสของพวกเขาจากแหล่งเก็บข้อมูลการควบคุมของพวกเขาเป็นของเราและเราสูญเสียประวัติหลังการเปลี่ยนแปลงรหัสใด ๆ ...
หากคุณกำลังรักษาห้องสมุดบุคคลที่สามเป็นการพึ่งพาบุคคลที่สามคุณไม่มีประวัตินั้นเริ่มต้นด้วยและคุณจะไม่สูญเสียอะไรเลย หากคุณมีการเข้าถึงที่เก็บของบุคคลที่สามอย่างต่อเนื่องคุณสามารถปรึกษาที่คุณต้องการ การเผยแพร่ของบุคคลที่สามควรได้รับการปฏิบัติเหมือนเป็น amorphous blobs ที่คุณตรวจสอบในระบบของคุณเองโดยไม่เปลี่ยนแปลง หากคุณต้องการดูการเปลี่ยนแปลงระหว่างรุ่นที่คุณกำลังใช้และรุ่นที่ใหม่กว่าคุณสามารถทำเช่นนั้นได้และหากคุณต้องการให้มี patch เป็นเวอร์ชันเก่าที่รวมการเปลี่ยนแปลงที่คุณต้องการ
ดูเหมือนว่าบางสิ่งที่ซับซ้อนเกินไปสำหรับการเปลี่ยนรหัสเล็ก ๆ ที่ต้องทำ
หากกระบวนการสร้างของคุณมีความซับซ้อนเพียงพอการเพิ่มสิ่งนี้ไม่ควรยากกว่าการเพิ่มรหัสของคุณเอง มีแรงงานจำนวนเล็กน้อยในการทำให้ถึงจุดที่กระบวนการแกะ / แพ็ค / สร้างเป็นอัตโนมัติ แต่เมื่อทำเสร็จแล้วจะทำตลอดไป อาจมีข้อบกพร่องหนึ่งข้อในขณะนี้ แต่อาจมีอีกยี่สิบในอนาคต หากมีคุณจะมีความสุขมากขึ้นที่คุณวางรากฐานเพื่อรองรับสิ่งเหล่านี้ในตอนนี้เพราะมันจะทำให้การทำงานต่อไปของคุณมีน้อยลง 19 ข้อ