ควรเก็บรหัสในการควบคุมเวอร์ชันอย่างไร


19

ควรเก็บรหัสในการควบคุมเวอร์ชันอย่างไร

นักพัฒนาเป็นมิตร ? เพื่อให้โปรแกรมเมอร์สามารถใช้งานล่าสุดและสามารถเรียกใช้จากตัวแก้ไขของเขาได้อย่างรวดเร็วโดยไม่ต้องทำการเปลี่ยนแปลงมากมาย? (เช่นไฟล์กำหนดค่าที่ชี้ไปยัง dev DB..etc)

หรือ

มันควรจะเป็นมิตรกับการผลิตหรือไม่? แหล่งที่มาควรอยู่ในลักษณะที่ง่ายต่อการปรับใช้ในสภาพแวดล้อมการผลิตและเมื่อนักพัฒนาใช้เวลาล่าสุดเขาควรทำการเปลี่ยนแปลงตามความต้องการในการพัฒนาของเขา

คำตอบ:


56

ทำไมต้องเลือก? มันควรจะเป็นทั้ง

สภาพแวดล้อมการพัฒนาของคุณควรได้รับการกำหนดค่าเพื่อให้ง่ายเหมือนการชำระเงินเปิดสร้างสร้างเรียกใช้ดีบัก (เช่น: ไม่มีเส้นทางที่สมบูรณ์!) คุณสามารถทำได้อย่างง่ายดายด้วยคำสั่งการคอมไพล์การกำหนดค่าคลาส + การพึ่งพาการฉีดหรือแม้แต่เทคนิคเช่น perso.config ใน ASP.NET

สคริปต์สร้างอัตโนมัติของคุณควรได้รับการปรับแต่งให้เพียงพอเพื่อดูแลการกำหนดค่าการผลิตเฉพาะการล้างค่าการบรรจุ ฯลฯ


perso.config คืออะไร Google ด่วนไม่ได้ช่วยฉัน
ทิมเมอร์ฟี

1
ในไฟล์กำหนดค่าแอปพลิเคชัน. NET คุณสามารถอ้างอิงไฟล์กำหนดค่าแอปพลิเคชั่นอื่นที่พบได้จะแทนที่การตั้งค่าที่ระบุ ดังนั้นคุณสามารถสร้างไฟล์ dev.config ที่แทนที่สิ่งต่าง ๆ เช่นสายอักขระการเชื่อมต่อและสิ่งอื่น ๆ และแยกออกจาก repos

5
+1 - นักพัฒนาไม่ควรคิดว่าจะได้รับแหล่งข้อมูลที่ถูกต้อง นอกจากนี้การปรับใช้การผลิตไม่ควรเกิดขึ้นโดยตรงจากแหล่งควบคุม แต่มีชิ้นส่วนที่สร้างขึ้นทดสอบและติดตามได้อย่างเหมาะสม กระบวนการนี้ควรเป็นไปโดยอัตโนมัติอย่างสมบูรณ์

9

เมื่อเป็นโครงการโอเพนซอร์ซที่ซึ่งผู้คนคาดหวังว่าจะมีส่วนร่วมฉันจะเลือกนักพัฒนาที่เป็นมิตร

สิ่งที่ฉันไม่ชอบมากที่สุดเกี่ยวกับโครงการโอเพ่นซอร์สคือที่เก็บไม่ค่อยมีการอ้างอิงทั้งหมดที่จำเป็นในการสร้างรหัส (บางครั้งสำหรับเหตุผลทางกฎหมายหรือทางปฏิบัติ) แต่เมื่อพวกเขาทำไม่ได้ - บางคนไม่สนใจที่จะบอกคุณว่า คุณต้องการหรือที่สำคัญกว่านั้นคือเวอร์ชั่นที่คุณต้องการ (และโดยเฉพาะอย่างยิ่งที่จะได้รับพวกเขาจาก)

บางครั้งคุณสามารถใช้เวลามากกว่าครึ่งวันในการดึงข้อมูลและรวบรวมโครงการอื่น ๆ อีกหลายโครงการเพื่อสร้างโครงการที่คุณติดตาม

แน่นอนว่ามันเกี่ยวข้องกับการพัฒนาบน Windows เท่านั้น


1
มันทำให้นรกออกไปจากฉัน คุณยังพบมันบน OSS ที่รู้จักกันดี
ทิมเมอร์ฟี

1
มีระบบที่ช่วยบรรเทาปัญหาดังกล่าวโดยดึงการอ้างอิงโดยอัตโนมัติ เช่น Apache Maven, Ivy หรือ scons
sleske

4

ทั้งสองอย่าง แต่ก็ขึ้นอยู่กับว่าคุณผลิตงานบ่อยแค่ไหน สำหรับแอปพลิเคชันที่กำหนดเองจำนวนมากการปรับใช้จะกระทำด้วยตนเองและภายใน ในทางกลับกันนักพัฒนาซอฟต์แวร์จะส่งรหัสอย่างต่อเนื่องไม่ว่าโครงการจะเล็กหรือใหญ่ ในความคิดของฉันฉันคิดว่ามันสำคัญกว่าที่จะตรวจสอบให้แน่ใจว่านักพัฒนาสามารถใช้การควบคุมเวอร์ชันได้อย่างถูกต้องจึงทำให้ชีวิตของพวกเขาง่ายขึ้นเพื่อให้พวกเขามีเวลาจดจ่อกับรหัสแทนที่จะค้นหาวิธีผ่านการควบคุมเวอร์ชัน


การปรับใช้การผลิตควรไม่ใช่ปัญหาถ้าคุณใช้โปรแกรมการปรับใช้อย่างต่อเนื่องเพื่อสร้าง

1

ควรเป็นมิตรกับการผลิตไม่เช่นนั้นจะมีปัญหาในการดูแลการสร้างอัตโนมัติ


8
ทำไม? สคริปต์การสร้างอัตโนมัติสามารถทำการแปลที่จำเป็นทั้งหมดเพื่อปรับโครงสร้างแหล่งที่มาลงในแบบฟอร์มที่ปรับใช้ได้ อย่าไปรบกวนคนที่มีบางสิ่งที่ระบบอัตโนมัติสามารถแก้ไขได้
Joeri Sebrechts

1

ฉันทั้งหมดเพื่อลดแรงเสียดทานเพื่อให้ง่ายต่อการทำงานให้สำเร็จ แต่คุณต้องคำนึงถึงโหมดความล้มเหลวด้วย

หากเวอร์ชันที่เก็บข้อมูลต้นทางถูกกำหนดค่าเสมอสำหรับการใช้งานจริงผลที่ตามมาของนักพัฒนาไม่สามารถกำหนดค่าใหม่ก่อนที่จะเรียกใช้ระบบคืออะไร นักพัฒนาใช้รหัสกับการผลิต

ไม่ว่าจะมีอุปสรรคอื่น ๆ ในทางของนักพัฒนาที่ทำการเปลี่ยนแปลงแบบสุ่มกับการผลิตหรือไม่การสร้างในโหมดความล้มเหลวที่กระตุ้นให้เกิดขึ้นนั้นดูเหมือนจะเป็นอันตราย

ผมขอแนะนำให้เป็นค่าเริ่มต้นที่รวมอยู่ในรหัสมุ่งมั่นที่ควรจะเป็นที่ปลอดภัย ตรวจสอบไฟล์การกำหนดค่าการผลิตลงในการควบคุมแหล่งเช่นกันถ้าคุณชอบ - ฉันมักจะทำ แต่ให้เก็บไว้ที่ไหนสักแห่ง "ไม่ได้อยู่"


0

ฉันมักจะพยายามเป็นมิตรกับการผลิต มันทำให้งานสร้างของคุณสะอาดและป้องกันการตั้งค่าที่ไม่เกี่ยวข้องทำให้เป็นการผลิต


0

นักพัฒนาเป็นมิตรอย่างแน่นอนพร้อมสคริปต์เพื่อทำการเปลี่ยนแปลงอัตโนมัติสำหรับ QA & การผลิต


-1

ทำไมไม่มีสาขา (ขึ้นอยู่กับการควบคุมเวอร์ชันที่คุณใช้ - ฉันใช้ Git) สำหรับโค้ดที่ปรับใช้ได้และอื่น ๆ สำหรับเวอร์ชันที่พร้อมสำหรับนักพัฒนา ฟังดูดีขึ้นมากและไม่ยากในการติดตั้ง

คุณสามารถทำงานและยอมรับการเปลี่ยนแปลงของคุณแล้วรวมเข้ากับเวอร์ชันที่ปรับใช้ได้


เพราะกิ่งไม้ที่มีอายุยืนยาวมีราคาแพงในการจัดการและมักจะยากที่จะผสาน คุณต้องจำไว้ว่าให้ทำการเปลี่ยนแปลงทั้งหมดในสาขาทั้งสอง ดีกว่ามากที่จะทำให้ทั้งสองรุ่นเหมือนกันและ / หรือมีสคริปต์เพื่อสร้าง artifcat ที่ปรับใช้ได้จากรหัสนักพัฒนาพร้อม
bdsl
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.