2011-06-08 78 views
1

我的團隊在大多數情況下一直在我們自己的項目中工作。我編寫代碼,將其簽入源代碼管理,並且很少有人看到它(除最終產品外)。其他人都遵循相同的基本流程。返回基礎知識:什麼是良好的簽入流程?

隨着我們的工作項目,團隊開始增長。我們很快就需要開始一起編寫項目的代碼。這位新人在嘗試遵循任何檢查過程時一直不太成功,導致構建破損。

我們中的一些人一直在討論如何記錄我們的流程,作爲確保我們都處於同一頁面的第一步。這將是輕讀,不一定詳細「點擊這個,鍵入這個,現在點擊」的東西。例如,我們的第一個流程文檔是「如何檢查您的代碼」。

在我看來,這一進程將是類同...

  1. 辦理登機手續前,請確認您的代碼構建和本地執行。
  2. 獲取最新信息。
  3. 手動解決任何衝突。
  4. 確保使用上述步驟中檢索到的最新位本地生成並執行本地任務。
  5. 入住

所以,關於這個問題。一個良好的登記過程需要哪些附加步驟?做這樣的事情真的有意義嗎?我傾向於這樣認爲,因爲假設我們都知道該做什麼並沒有真正解決。

謝謝!

+1

你似乎已經忘記了在登記前通過的所有單元測試的步驟... – 2011-06-08 19:03:26

+0

@Sam - 是的,單元測試。寶貝步驟,我正在努力讓單元測試成爲過程的一部分。 – DenaliHardtail 2011-06-08 19:09:14

+1

沒有同行代碼審查? – 2011-06-08 19:35:37

回答

0

我認爲您列出的5個步驟是您必須確保構建不被破壞的最小步驟。

作爲最後一步,您可能還想運行任何代碼驗證(單元測試,樣式警察,FX警察,代碼格式)。您可能還想在提交之前進行代碼審查,或者提交到臨時區域進行審查。

您可能還想做一個乾淨的檢出和之後的構建/測試,因爲這可以捕獲尚未添加的本地文件。如果你有一個構建服務器,這可能會走得太遠,因爲它會抓住這一點。

1

我敢打賭任何程序,假設用戶將遵循它。人類很少這樣做。 但還有一種方法可以鼓勵所有人按照自己的想法(以及更多,適當的方式)做:
1.設置一個持續集成服務器,並對其進行配置以編譯您的代碼並運行它(與您期望的代碼相同傢伙'執行本地')。
2.破解構建令人感到羞恥。這樣做是依賴於文化的;有時候只是分享統計數據會有所斬獲,有時你需要通過電子郵件直接打電話給任何破壞構建的人的經理,無論如何。

有了這個程序,如果正確實施,每個人都會做它所需要的(例如,如果沒有做最新的風險,他們會學習如何做到)。

另一個需要考慮的問題是執行同行代碼審查,但是這真的取決於團隊的規模和文化是工作(即使它總是具有成本效益,根據我的經驗它甚至不能工作)。

+0

+1即使對於一個小團隊來強制執行該過程 – Paolo 2011-06-30 09:12:48

1

而不是增加的過程,爲什麼不說話「新傢伙」,並告訴他什麼是預期的。在提交清單時,他們需要靈活併爲常識提供空間。我一直處於需要進行四小時構建+兩小時自動化測試才能進行字符串更改的情況。不要讓它變得荒謬。

應該有關於提交很少的具體規則。我喜歡這些規則:

  1. 不要提交破損的代碼。它必須按預期進行編譯和運行。
  2. 合併時要留意。

如果開發者的提交斷裂生成,羞辱他們。如果開發者引入合併損害,那麼他們就會感到羞恥。話雖如此,我喜歡有一些工具來確保事情不會失控。

  • SCM一旦提交就立即向整個團隊發送提交差異。
  • 持續集成立即建立。根據我的經驗,檢查每15分鐘更換是不夠的。通過掛鉤觸發CI構建或每隔1-5分鐘檢查一次更改。
  • 請提交歷史通過瀏覽器方便。

我也希望每個提交都被另一個團隊成員簽名。一些SCM系統可以幫助完成這個工作流程。