Luồng công việc với 2 người trong một dự án


18

Tôi đến với bạn với tư cách là một lập trình viên mới, người đang thực hiện dự án của riêng mình (đang tiến triển tốt đẹp). Người đồng sáng lập của tôi cũng đã học cách lập trình và đã đạt đến điểm mà anh ta có thể bắt đầu sửa chữa một số thứ và làm cho một số điều xảy ra.

Anh ấy hỏi một câu hỏi rất hay, đó là "nó sẽ hoạt động như thế nào". Một cái gì đó tôi chỉ có thể đưa ra giả thuyết về việc tôi chưa bao giờ lập trình với người khác. Bạn có thể tư vấn cho tôi về dòng công việc tốt nhất. Chúng tôi sử dụng git.

Chúng ta có nên sở hữu các bộ phận cụ thể của hệ thống? Kiểm tra mã trong? Xem lại mã?

Làm thế nào để bạn làm việc với> 1 dev?


1
Gợi ý tốt nhất của tôi là phải có một cái nhìn lúc này: nvie.com/posts/a-successful-git-branching-model Đây là một (tốt) cách để tổ chức mã trong nhóm, và chúng tôi sử dụng nó quá

bạn có viết bài kiểm tra không?
NARKOZ

... @ NARKOZ - chưa. Chúng tôi đã nhảy vào ngay. Đó là điều tôi muốn làm, chỉ cần mua một cuốn sách trong thực tế.

2
@Geoff Wright: Vui lòng truy cập vào hồ sơ của bạn và chấp nhận (nhấn nút đánh dấu bên cạnh) một số câu trả lời mà mọi người đã cung cấp rất nhiều cho câu hỏi của bạn: stackoverflow.com/users/661241/geoff-wright
iwasrobbed

1
Sử dụng bitbucket.com cho các kho riêng
Klevis Miho

Câu trả lời:


23

Tôi làm việc trong một nhóm sử dụng git, trong đó hơn 40 nhà phát triển đang làm việc trên nhiều kho lưu trữ mã (hơn 100) tại bất kỳ thời điểm nào. Chúng tôi cũng bắt đầu với rất ít nhà phát triển, tăng quy mô đội trong một vài năm. Ban đầu, mặc dù có ít người, bạn có thể thoát khỏi việc chỉ biết một mức tối thiểu của git. Theo thời gian, bạn sẽ cải thiện git fu của mình, khám phá các tính năng mạnh mẽ.

  1. Bạn sẽ cần một nơi để lưu trữ mã của bạn. Cân nhắc sử dụng github hoặc gitorious . Cả hai đều miễn phí sử dụng, nhưng kho của bạn sẽ được công khai và hiển thị cho người khác. Nếu bạn muốn các kho lưu trữ riêng tư, bạn có thể lưu trữ chúng trên github miễn phí hoặc cài đặt và lưu trữ máy chủ của riêng bạn .
  2. Ban đầu, tốt hơn hết là đừng lo lắng về các quy trình công việc nâng cao liên quan đến việc yêu cầu kéo, kéo. Bạn có thể bắt đầu bằng cách sử dụng git theo cách tập trung (rùng mình!). Hãy coi bản sao được lưu trữ của bạn là bản sao có thẩm quyền của mã nguồn của bạn. Hãy gọi kho lưu trữ này upstream.
  3. Một trong số các bạn cam kết tất cả mã vào kho lưu trữ git cục bộ và đẩy nó vào upstreamkho lưu trữ này .
  4. Các thành viên khác trong nhóm có thể sao chép kho lưu trữ này.
  5. Một tập hợp các lệnh tối thiểu bạn cần phải học là clone, pull, push, add, commit, log, status, diff, branch, stash, apply, reset, format-patch, branch. Tìm hiểu thêm về họ từ gittutorial .
  6. Bây giờ bạn có thể làm việc trên bất kỳ phần nào của mã. Đừng lo lắng điều gì xảy ra khi cả hai bạn chỉnh sửa cùng một tệp. Git thực sự giỏi trong việc xử lý các sự hợp nhất và khắc phục xung đột.
  7. Thực hiện các cam kết nguyên tử nhỏ và viết thông điệp tường trình tốt . Sử dụng thì hiện tại cho các bản ghi cam kết. Bạn có thể thực hiện bất kỳ số lượng cam kết nào bạn muốn cho bản sao địa phương của mình vì nó không ảnh hưởng đến công việc của người khác.
  8. Khi bạn nghĩ rằng mã của bạn đã sẵn sàng để được chia sẻ với người khác, hãy xuất bản nó lên upstreamkho lưu trữ. Một thực hành tốt là luôn luôn kéo trước khi bạn đẩy . Bằng cách này, bạn giữ cho kho lưu trữ của bạn đồng bộ với những thay đổi khác.
  9. Lặp lại các bước 78.

Khi bạn cảm thấy thoải mái với quy trình công việc này, bạn có thể phát triển thành các công cụ nâng cao hơn như - các nhánh hàng đầu, rèn, kéo yêu cầu, sáp nhập, tương tác lại các cam kết, v.v.

Nếu bạn thực sự muốn đánh giá mã, chỉ có thể sử dụng git và email. Khi quy mô nhóm của bạn tăng hơn 10+, điều này lý tưởng hơn là được thực hiện tốt hơn với một số loại công cụ trực tuyến. Vì vậy, trong thực tế có nhiều cách để làm điều này, và đây chỉ là một cách đơn giản:

  1. Tạo một bộ các cam kết sẽ được xem xét với git format-patch. Điều này sẽ tạo ra một tập hợp các tập tin vá. Gửi email các bản vá này cho người đánh giá.
  2. Người xem xét có thể áp dụng các bản vá với git apply. Điều này áp dụng các bản vá nhưng không tạo ra một cam kết.
  3. Xem lại mã và gửi lại email với các đề xuất.
  4. Lặp lại 1-2-3 cho đến khi đạt yêu cầu.
  5. Người xem xét xác nhận rằng các bản vá có thể được đẩy upstream.

Tôi cũng muốn thêm git rebase vào danh sách này.
alock27

1
Tôi không đồng ý rằng đó stash, apply, format-patchlà một phần của kiến ​​thức tối thiểu. Tôi thường đợi một vài tháng trước khi dạy những điều đó. Tôi đoán rằng> 50% số người không tham gia.
Michael Durrant

1
Gọi upstream originvà nó sẽ giúp làm cho các ví dụ khác (thường sử dụng origin) dễ theo dõi hơn.
Michael Durrant

2

Tôi sử dụng github và tất cả chức năng của nó cho việc này. kiểm tra nó tại http://www.github.com/ Vì vậy, bạn có thể sử dụng các nhánh, nhánh, vấn đề, kéo yêu cầu để làm việc với đối tác của mình.


0

Điều đầu tiên tôi sẽ làm là xem xét một kho lưu trữ mã trung tâm để các thay đổi có thể được hợp nhất và giữ đồng bộ giữa hai dự án của bạn. SVN là một thứ dễ dàng tốt mà tôi đã sử dụng trong quá khứ và nó đã tồn tại đủ lâu để SVN khá trưởng thành .

Sau đó tôi sẽ xác định giữa hai bạn vai trò của một trong hai bạn

  1. Bạn sẽ viết chức năng của mã trong tandom hay là một người sẽ sửa lỗi trong khi người kia tiếp tục với các tính năng.
  2. Bạn có muốn tạo một tập hợp các tiêu chuẩn mã hóa cơ bản, ví dụ như vị trí dấu ngoặc, đặt tên biến thành viên riêng, quy ước đặt tên biến và phương thức (CamelCase, v.v.)
  3. Tần suất bạn cần đăng ký. Tôi sẽ đề xuất ít nhất một lần một ngày để đảm bảo cả hai bạn đều thấy những gì người kia đang làm đặc biệt là sớm. Mặc dù luôn đảm bảo trước khi đăng ký, mã có thể được xây dựng.
  4. Anh ấy là ông chủ, nhưng bạn sẽ là người dẫn đầu lập trình?

Chúc may mắn!


1
SVN là một lựa chọn hợp lý (và tôi hiện đang sử dụng nó tại nơi làm việc) ... nhưng Git và Hg tôi đã thấy tốt hơn một chút vì tôi có thể cam kết tại địa phương (và hoàn nguyên khi tôi làm điều gì đó ngớ ngẩn) mà không buộc người khác phải giải quyết (nếu họ cập nhật svn) với mã của tôi có thể không hoạt động. Thành thật tôi đã bắt đầu sử dụng Git tại văn phòng vì lý do này nhưng tôi vẫn có thể xuất bản các thay đổi của mình trở lại SVN bằng git-svn
Ken Henderson
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.