2012-03-28 76 views
-1

我有一個相當理論上的問題。我的公司有一個工作標準(記錄),對於C++來說相當廣泛,但在涉及到C#時幾乎不存在,其中唯一的指令是編碼標準應遵循微軟針對C#的風格指南。 MSDN確實有指導原則,但是這會在我們公司的代碼中導致兩種語言的代碼有相當大的差異。C++和C編碼標準#

這裏有幾個編碼標準,我們有C++(沒有什麼新的頭腦你):

  1. 類成員名稱應該開始與M_和駱駝的情況下,請即bool m_isValid;

  2. 方法PARAMS應該以_e開頭,繼續駱駝案例void Foo(bool _isValid);

  3. 局部變量是常規駱駝案例,即bool isValid;

由於您立即知道什麼是成員,什麼是參數以及什麼是局部變量,這使得讀取長整型函數時讀取的代碼非常易讀。

現在談到C#......通常的做法是所有三種情況。閱讀起來要困難得多,你必須將鼠標懸停在變量上,或者點擊它來知道它是哪一個。

如果您的決定在哪裏,您是否會強制執行兩種語言的相同編碼標準?你會執行大部分相同的編碼標準嗎?或者你會用不同的語言採用不同的標準方法?

謝謝...

+0

您將如何選擇正確答案? – Matt 2012-03-28 17:31:28

+1

本身並不是真正的編程問題,兩種語言在風格和功能上都有差異,使得統一標準最適合。拋出Java也會讓你頭痛不已。 – 2012-03-28 17:31:43

+0

@MattH我的猜測:哪一個人同意他們的假設。因此,爲什麼我們投票結束,我猜測;)(當然,我知道你是在問你的問題,以說明我們的選票結束的原因) – 2012-03-28 17:33:35

回答

5

如果在您的決定,你會執行兩種語言相同的編碼標準?

絕對不是。我會按照normal conventions for C#。如果您嘗試使語言中的代碼看起來像另一種語言中的代碼,那麼您可能也會開始使用該語言的習語......並最終以C++口音說出C#。

閱讀長功能

所以只要有可能,避免產生長方法這使得非常可讀的代碼......我非常很少發現一個問題使用有所有這三種變量相同的約定 - 而長的方法最終是痛苦的無論使用什麼慣例。

+0

我只是不得不接受Jon Skeet的回答。無法抗拒。沒有認真,這很有意義。 @馬特H,這就是我的選擇:一個很好的論點。謝謝喬恩。 – sprite 2012-03-28 21:09:22

5

我在不同的公司工作,有的像匈牙利表示法和一些不。編碼風格更多的是一個意見問題,所以我會做什麼最適合你和你的團隊如何發展。

+0

沒錯;這主要是一個意見問題。 (我的意見恰巧匹配 - 並且部分由Jon Skeet組成)。順便說一句,這是解決這個問題的一個重要原因。無論如何,這個答案+1。 – 2012-03-28 17:36:57