2009-07-21 104 views
0

我正在維護一個大的asp.net應用程序。C#概述。大括號或區域

我的目標是確定爲響應特定票據而添加的行。雖然可以使用我們的SVN,但我想把它放在代碼中。因爲這些更改對代碼的第一次閱讀者來說看起來很奇怪。

所以它概括方法更適合於這個目的

{ 
//response to ticket #xxxxx 
... 
... 
.. 
} 

OR

#region response to ticket xxxxx 
.. 
... 
.. 
#endregion 

或有任何其他方法更適合這個

回答

13

在這兩者之間,肯定使用評論 - 他們非常靈活。區域對這類事情沒有好處 - 如果多張票據需要重疊的代碼更改會怎樣?這很容易在較長的評論中解釋。

不過,我反對在評論中加入這類信息。實際上,沒有人會絆倒一年前編寫的代碼,並去查看票證。代碼應該是不言自明的,而在非常奇怪情況不是這樣,意見應說明代碼實際上做,不爲什麼。爲了解決您對新讀者的特別關注 - 您的同事不需要爲什麼代碼是這樣。他們會認爲這是出於某種原因,並且在進行其他更改時總會嘗試維持現有的功能。這是基本的專業行爲。

如果有人需要歷史信息,您的變更集應該與ticket#關聯。有一系列理由說明爲什麼事情是他們存儲在每個文件上的方式。這是存儲在您的代碼庫的外部 - 無論是在您的源代碼管理或其他存儲庫。

根據我的經驗,在代碼中加入票號通常是不良行爲的徵兆。它表示與設計的偏差而不是固定設計。一個票號說:「這是如何代碼,這是如何是現在。」代碼庫不應該反映他們自己的歷史 - 所有重要的是他們如何工作現在

0

試一下,看看你的同事們在想什麼。

任何東西,但你最有可能通過你的源散佈改變的更簡單的改變 - 所以使用SVN怪/註解將是最好的選擇。

0

我們使用JIRA插件SVN來直接查看哪些代碼文件已被修改爲特定票證。

地區可能變得笨重作爲療法可能是其中的一行代碼是用來固定兩張票的情況。所以,選擇第一張票#

0

第一個選項。 「//響應票#xxxxx」

第一次這樣做......

int defaultVal = 12; 

對此...

int defaultVal = 13; 

如果您決定使用#地區範例,您將會討厭您的生活。一行/兩行代碼修復是常態,我從經驗中知道,通過不必要地隱藏數據,過度使用區域會隨着視覺流程而變得混亂。

這樣做會更好地隱藏你知道廢話的物品。

#region Old Code 
//int defaultVal = 12; 
#endregion 
int defaultVal = 13; //Changed by Ticket:13414 

這使新代碼在默認情況下可見,而舊代碼隱藏。

1

對選項1的響應:爲票證添加註釋會降低代碼的可讀性。我認爲(在我的公司鼓勵這一點),當您簽入一個票證修復程序時,您還應該更適當地記錄該部分代碼,但再次添加票證號碼可能會造成混淆。

對選項2的反應:區域用於將具有相似目的的功能組合在一起,所以我也不會推薦這個選項。

建議的選項:使用///評論函數的標準,並添加一個這是什麼被改變。元件。這種修復方法不會中斷正常的可讀性,但很容易看到涉及票證的功能。作爲一個額外的好處,這種機制是自我記錄,所以這些會自動被放入你生成的文件。注意:您可能需要檢查是否支持自定義標籤。