3

默認情況下,StyleCop(4.7.14.0)具有「分析設計器文件」設置,我想知道是否有任何推理可以證明設計器生成的文件上的代碼樣式檢查。爲什麼「分析設計器文件」是StyleCop的默認設置?

我知道我可以(以及如何)禁用它檢查這些文件(我正在考慮這樣做),但問題是,爲什麼它會默認分析這些?

這些文件不是獨自存放的嗎?爲什麼我們應該試着讓它們符合StyleCop?

+0

這是微軟的默認設置。不是你的,你無法做任何事情。 – 2012-03-26 12:52:13

+0

@HansPassant好吧,我可以改變它,它會存儲在'Settings.StyleCop'文件中,如果這是你的意思,那麼這個文件將被項目範圍內的任何人檢出。但是我想知道它背後是否有一些推理(實際上'* .designer.cs'文件默認情況下甚至不符合StyleCop)。這似乎很奇怪,因爲StyleCop開發人員肯定知道如果將其保留在默認情況下會發生什麼(並且唯一的在線討論似乎是關於如何更改默認設置,而不是爲什麼它首先出現)。 – 2012-03-26 16:01:43

回答

0

我能想到的主要原因是,沒有絕對的保證名稱中帶'designer'的文件只會自動生成。

在這些強烈分離和使用詳細和明確名稱的能力的日子裏,它可能只是在默認情況下小心謹慎。

但我同意,如果你確定它們總是自動生成的,那麼你不應該嘗試清理它們。

OTOH,我的Dynamics CRM服務器生成一個12MB的XRM參考文件,所以我傾向於修剪那個!

+0

那麼,後綴必須是'.Designer.cs',例如'WebDesigner.cs'不會被視爲設計器文件。我真的懷疑人們會將文件命名爲「MyClass.Designer.cs」。另外,如果你碰巧有一個名爲'Designer.cs'的文件,它不會有完整的後綴,所以我敢肯定它也不會被忽略。不過,我有點好奇你如何清理12 MB文件。 – 2012-03-25 23:52:14

+0

一個特別的事情是將類刪除到我不使用的CRM功能,雖然這是一件相當罕見的事情;最重要的是實現部分類,這樣我就可以將我需要的功能分成多個文件,這些文件單獨不會阻塞編譯器/ resharper。 – 2012-03-26 00:19:55

1

可能需要將生成的代碼保存爲與手動創作的代碼相同的標準。當然,對於像StyleCop那樣的純代碼風格問題,這比FxCop這樣的工具所涉及的「正確性」問題更不重要,但即使對於風格來說,檢查工具生成的代碼仍然是有說服力的理由的問題。例如: -

  1. 如果所生成的目標代碼的工具是一個撰寫的工具,那麼它是不是在所有不尋常的以將其保持爲手工編寫代碼同樣的標準。畢竟,這是一種完全控制生成代碼的內容和風格的情況。

  2. 從實際角度來看,該工具可以在生成代碼後的任何時候被移除或禁用,在這種情況下,最終可以手動維護代碼。如果強制執行樣式規則以增強可讀性和可維護性,則允許生成的代碼偏離編碼標準太多可能不是理想的。

+0

這聽起來似乎是一種可能的情況,即檢查我們自己製作的工具生成的代碼樣式。但是看起來很奇怪,缺省值是「Check'.designer.cs'文件,但不檢查'.generated.cs'文件」(所以它明確默認不檢查工具生成的代碼的樣式,而是檢查Windows窗體設計器代碼)。 – 2012-03-26 16:08:23

相關問題