2008-11-13 52 views
2

我在一個團隊與約10名開發人員工作。一些開發人員的格式需求非常嚴格。我想找到一個漂亮的打印機,我可以配置這些規格,然後添加到生成過程。通過這種方式,無論其他人在從源代碼控制中拉下來時都弄亂了格式,它看起來都可以接受。尋找一個可配置的漂亮打印機的C#代碼

回答

1

最簡單的解決方案是團隊領導需要一種格式,每個人都使用它。 VS的默認值相當不錯。

Jeff Atwood在Stack Overflow上爲我們做了這件事,而當我起初反叛時,我克服了它:)讓一切變得更容易!

+0

你們是否使用StyleCop來執行規則,或者手動執行? – mmcdole 2008-11-13 05:10:18

0

我第二Jarrod的答案。如果您有兩位開發人員編碼偏好衝突,那麼讓其餘的團隊投票,然後讓老闆支持多數決定。

此外,試圖自動應用漂亮的打印機的問題是,總是會出現例外的情況,即您的一攬子編碼標準不是最好或最可讀的解決方案,並且您將通過擠壓一個自動化工具。

編碼標準就是這樣的標準。他們不稱他們爲編碼法則或編碼規則,這有一個很好的理由。

1

編碼標準絕對是我們擁有的。我所談論的編碼格式是由一個灰白色的建築師強加的,可以說,他的方式非常特別。讓我們假裝我們無法解決人爲因素。我正在尋找一種方法來規避整個人類進程。

視覺工作室的默認設置可悲地不能很好地處理換行符。我只是做這行斬波式的上升,但....

ServiceLocator.Logger.WriteDefault(string.format("{0}{1}" 
               ,foo 
               ,bar) 
            ,Logging.SuperDuper); 

格式化的Visual Studio的另一個例子是不是太熱....

if(foo 
    && (bar 
     || baz 
     || apples 
     || oranges) 
    && IsFoo() 
    && IsBar()){ 
    } 

的Visual Studio完全不發揮好所有的東西都會這樣。目前我們正在使用ReSharper來允許更精細的格式化,但很遺憾,它在很多領域都有分歧。

儘管編碼標準很好,但請不要誤解我的意思。作爲構建過程的一部分,漂亮的打印機的目標是無論人們關注或計算空間的程度如何,都能獲得「完美」的代碼。

圍繞代碼格式化的邊緣案例是非常可解的,因爲它是一個定義明確的語法。

就VS默認值而言,我只能說:BSD風格或死亡!

因此,所有這一切都讓我回到了:是否有一個可配置的漂亮的C#打印機?就像詞彙分析和解析讓我着迷,讓我的填充製作一個YAML C#工具鏈。

1

您的問題是創建NArrange(測試版)的主要目的。它允許對C#代碼進行可配置的重新格式化,並且可以使用一個通用配置文件由整個團隊共享。由於其重點主要放在對類和控制區域中的成員進行重新排序,所以仍然缺少許多必要的格式選項(特別是在成員代碼行中的格式化)。

正常使用情況是每個開發人員在辦理登機手續前運行該工具。我沒有意識到任何運行它的人都是他們構建過程的一部分,但沒有理由不能這樣做,因爲它是一個命令行工具。我設想的一個想法是在文件上運行NArrange作爲預先提交步驟的一部分。如果檢入的原始文件內容與源存儲庫服務器上的NArrange格式化輸出不匹配,則開發人員不會重新格式化規則,並且可能引發簽入錯誤。

欲瞭解更多信息,請參閱我的CodeProject文章Using NArrange to Organize C# Code

+0

我每天使用NArrange。真的很棒。它現在與async關鍵字有點混淆,但是保持文件有序的好方法。 – 2013-11-29 15:40:37