ทำงานอย่างไรกับ 2 คนในโครงการ


18

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

เขาถามคำถามที่ดีมากซึ่งเป็น "งานนี้จะทำอย่างไร" บางสิ่งที่ฉันสามารถสร้างทฤษฎีเกี่ยวกับสิ่งที่ฉันไม่เคยตั้งโปรแกรมกับคนอื่น คุณช่วยแนะนำขั้นตอนการทำงานที่ดีที่สุดให้ฉันได้ไหม เราใช้คอมไพล์

เราควรเป็นเจ้าของส่วนต่าง ๆ ของระบบหรือไม่? กำลังตรวจสอบรหัสหรือไม่ ตรวจสอบรหัส?

คุณทำงานกับ> 1 dev อย่างไร


1
คำแนะนำที่ดีที่สุดของฉันคือการได้ดูสิ่งนี้: nvie.com/posts/a-successful-git-branching-modelมันเป็นวิธีหนึ่งที่ดีในการจัดระเบียบโค้ดในทีมและเราก็ใช้มันเช่นกัน

คุณเขียนข้อสอบไหม?
NARKOZ

... @ NARKOZ - ยังไม่เสร็จ พวกเราชอบกระโดดเข้าหามันเป็นสิ่งที่ฉันอยากจะทำแค่ซื้อหนังสือจริงๆ

2
@Geoff Wright: โปรดไปที่โปรไฟล์ของคุณและยอมรับ (กดปุ่มเครื่องหมายถูกถัดจาก) คำตอบบางส่วนที่ผู้คนให้กับคำถามของคุณอย่างสง่างาม: stackoverflow.com/users/661241/geoff-wright
iwasrobbed

1
ใช้ bitbucket.com สำหรับที่เก็บส่วนตัว
Klevis Miho

คำตอบ:


23

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

  1. คุณจะต้องมีที่สำหรับโฮสต์รหัสของคุณ พิจารณาใช้GitHubหรือgitorious ทั้งสองใช้งานได้ฟรี แต่ที่เก็บของคุณจะเปิดเผยต่อสาธารณะและปรากฏแก่ผู้อื่น หากคุณต้องการเก็บส่วนตัวคุณสามารถโฮสต์พวกเขาบน GitHub ฟรีหรือการติดตั้งและโฮสต์เซิร์ฟเวอร์ gitorious ของคุณเอง
  2. ในการเริ่มต้นจะดีกว่าที่จะไม่กังวลเกี่ยวกับเวิร์กโฟลว์ขั้นสูงที่เกี่ยวข้องกับการฟอร์กดึงคำขอ คุณสามารถเริ่มต้นด้วยการใช้คอมไพล์ในลักษณะรวมศูนย์ (ตัวสั่น!) ปฏิบัติต่อสำเนาที่โฮสต์ของคุณเป็นสำเนาที่เชื่อถือได้ของซอร์สโค้ดของคุณ ให้เรียกที่เก็บupstreamนี้
  3. หนึ่งในคุณยอมรับรหัสทั้งหมดไปยังพื้นที่เก็บข้อมูล git ท้องถิ่นและผลักดันมันไปยังupstreamพื้นที่เก็บข้อมูลนี้
  4. สมาชิกทีมอื่นสามารถโคลนที่เก็บนี้ได้
  5. ชุดคำสั่งขั้นต่ำที่คุณต้องเรียนรู้คือ clone , pull, push, add, commit, log, status, diff, branch, stash, apply, reset, ,format-patch เรียนรู้เพิ่มเติมเกี่ยวกับพวกเขาจาก gittutorialbranch
  6. ตอนนี้คุณสามารถทำงานกับส่วนใดส่วนหนึ่งของรหัสได้แล้ว ไม่ต้องกังวลว่าจะเกิดอะไรขึ้นเมื่อคุณทั้งคู่แก้ไขไฟล์เดียวกัน Git เก่งในการจัดการการรวมและแก้ไขข้อขัดแย้ง
  7. ให้กระทำอะตอมขนาดเล็กและข้อความเข้าสู่ระบบการเขียนที่ดี ใช้กาลปัจจุบันสำหรับการกระทำบันทึก คุณสามารถทำข้อผูกพันใด ๆ ตามจำนวนที่คุณต้องการให้กับสำเนาในพื้นที่ของคุณเนื่องจากจะไม่มีผลกับงานของบุคคลอื่น
  8. เมื่อคุณคิดว่ารหัสของคุณพร้อมที่จะแชร์กับผู้อื่นให้เผยแพร่รหัสนั้นในที่upstreamเก็บ การปฏิบัติที่ดีคือการดึงเสมอก่อนที่จะผลักดัน วิธีนี้ทำให้ที่เก็บข้อมูลของคุณซิงค์กับการเปลี่ยนแปลงอื่น ๆ
  9. ทำซ้ำขั้นตอนและ78

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

หากคุณต้องการบทวิจารณ์โค้ดจริงๆสามารถทำได้ด้วย git และอีเมลเพียงอย่างเดียว เมื่อขนาดทีมของคุณเติบโตเกินกว่า 10+ สิ่งนี้จะทำได้ดีกว่าด้วยเครื่องมือออนไลน์บางประเภท ดังนั้นในทางปฏิบัติมีหลายวิธีในการทำเช่นนี้และนี่เป็นวิธีง่ายๆเพียงวิธีเดียว:

  1. git format-patchสร้างชุดของกระทำที่จะถูกตรวจสอบด้วย สิ่งนี้จะสร้างชุดไฟล์แก้ไข ส่งอีเมลปะเหล่านี้ไปยังผู้ตรวจทาน
  2. git applyวิจารณ์สามารถใช้แพทช์ด้วย สิ่งนี้ใช้โปรแกรมปะแก้ แต่ไม่สร้างการส่งข้อมูล
  3. ตรวจสอบรหัสและอีเมลกลับพร้อมคำแนะนำ
  4. ทำซ้ำ 1-2-3 จนกว่าจะพอใจ
  5. upstreamยืนยันวิจารณ์ว่าแพทช์สามารถผลักดัน

ฉันต้องการเพิ่ม rebase git ในรายการนี้
alock27

1
ฉันไม่เห็นด้วยที่stash, apply, format-patchเป็นส่วนหนึ่งของความรู้ขั้นต่ำ ฉันมักจะรอไม่กี่เดือนก่อนที่จะสอนสิ่งเหล่านั้น ฉันเดาว่า> 50% ของผู้พัฒนาไม่ได้ซ่อน
Michael Durrant

1
โทรupstream originและมันจะช่วยทำให้ตัวอย่างอื่น ๆ (ซึ่งปกติใช้origin) ง่ายต่อการติดตาม
Michael Durrant

2

ฉันใช้ GitHub และฟังก์ชั่นทั้งหมดสำหรับสิ่งนี้ ตรวจสอบได้ที่http://www.github.com/ ดังนั้นคุณสามารถใช้สาขาส้อมปัญหาดึงคำขอเพื่อทำงานกับคู่ของคุณ


0

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

หลังจากนั้นฉันจะระบุระหว่างคุณสองคนในบทบาทที่คุณกำลังจะเล่นคือ

  1. คุณกำลังจะเขียนฟังก์ชันการทำงานของรหัสใน tandom หรือเป็นคนหนึ่งที่จะทำการแก้ไขข้อบกพร่องในขณะที่คนอื่น ๆ ยังคงมีคุณสมบัติ
  2. คุณต้องการสร้างชุดของมาตรฐานการเข้ารหัสพื้นฐานเช่นตำแหน่งวงเล็บปีกกาการตั้งชื่อตัวแปรส่วนตัวสมาชิกแบบแผนตัวแปรและการตั้งชื่อเมธอด (CamelCase ฯลฯ )
  3. คุณต้องเช็คอินบ่อยแค่ไหนฉันขอแนะนำอย่างน้อยวันละครั้งเพื่อให้แน่ใจว่าคุณทั้งคู่เห็นว่าคนอื่นทำอะไรโดยเฉพาะในช่วงต้น แม้ว่าจะตรวจสอบให้แน่ใจก่อนทำการเช็คอินเสมอ
  4. เขาเป็นหัวหน้า แต่คุณจะเป็นผู้นำในการเขียนโปรแกรมหรือไม่

โชคดี!


1
SVN เป็นตัวเลือกที่ดี (และฉันกำลังใช้งานอยู่ในที่ทำงาน) ... แต่ Git และ Hg ฉันพบว่าดีขึ้นเล็กน้อยเนื่องจากฉันสามารถคอมมิชชันภายในเครื่อง (ถ้าพวกเขา svn update) ด้วยรหัสของฉันที่อาจไม่ทำงาน สุจริตฉันเริ่มใช้ Git ที่สำนักงานด้วยเหตุผลนี้ แต่ฉันยังสามารถเผยแพร่การเปลี่ยนแปลงของฉันกลับไปที่ SVN โดยใช้ git-svn
Ken Henderson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.