2010-05-11 31 views
1

我正在做一些項目的隱形敏捷開發。領導程序員認爲單元測試,重構等是浪費資源,沒有辦法說服他。他的哲學是「如果沒有破產就不要修理」,我理解他的觀點。他在這個項目上工作了十多年,並且知道內部和外部的代碼。我不打算討論開發實踐。當您無法更改其他文件時打破依賴關係?

我是新來的項目,我的任務是添加一項新功能。我之前從事的是遺留項目,並且使用了敏捷開發實踐,並取得了良好的效果,但這些團隊更願意接受這一想法,並且不害怕對代碼進行更改。

我被告知我可以使用任何我想要的開發方法,但我必須將更改限制爲僅添加該功能所必需的更改。我正在使用tdd來編寫我正在編寫的新類,但是我一直在進入由自由使用全局變量和我需要與之交互的類中的高耦合所導致的路障。通常我會開始爲這些類提取接口,並通過將它們作爲構造函數參數或公共屬性注入來顯式依賴全局變量。

我可以爭辯說,這些變化是必要的,但考慮到領導從來沒有讓他們,我懷疑他會看到我的方式。我可以使用哪些技術來打破這些依賴關係,而不會破壞首席開發者的羽毛?

我做了使用了一些進展:

  • 提取接口(新類我創建)
  • 延伸並與測試樁覆蓋任性類。 (幸運的是大多數方法都是公開的虛擬)

但是,這兩個只能讓我到目前爲止。

注意

的領導的職責之一是審查提交的代碼。他可能會將反腐敗層級解釋爲過度,最壞的情況是侮辱。

+3

我會讓這是一個評論,而不是一個阻止火焰的答案。我會建議打磨簡歷,並開始保持你的耳朵在一個新的位置。您將會在更友好的環境中進一步發展並學習更多。 *不*說戒菸或做任何事情,但如果氣氛沒有改善,6-12個月內我會有一份新工作。 – 2010-05-11 19:05:03

回答

0

你應該創建一個反腐層,在那裏你基本上使用包裝類保持你和「專家」代碼之間的一層。這將是處理這種廢話的代價。

還有一些模擬框架允許您處理不必更改現有的代碼,但這些可能會讓您在政治上比簡單的包裝類更麻煩。

+0

他永遠不會同意檢查單元測試。它們只存在於我自己的機器上,所以我可以自由地使用我需要測試的任何框架。不幸的是,我的選擇受到項目編寫語言的限制。 – codemuncher 2010-05-11 18:55:13

+1

用什麼語言*寫的項目?這肯定會允許更有用的答案? – 2010-05-11 19:12:37

+0

它寫在對象pascal。 – codemuncher 2010-05-11 19:14:36

0

在這種情況下,反腐敗層可能會起作用,但您必須小心,因爲太多這些會導致非常可怕的結果。

有了這樣一個圖層,您可能會威脅系統的其他部分,因爲您會威脅到外部資源。