2008-12-17 67 views
3

我有一個類文件,其中包含特定Web應用程序所需的所有類。目前我在7269行,它包含許多類。我並不特別擔心,但我已經開始注意到,在處理這個文件時,Visual Studio響應速度較慢。我認爲這可能是由文件的大小造成的,Visual Studio在每次輸入按鍵後都會重新編譯。每個文件是否有推薦的代碼行數?

是否有人對每個文件的每個文件的行數有限制或者可能的指導方針,以瞭解/爲什麼我應該將類移動到單獨的文件中?

我發現這對於Java,但我特別用VB和Visual Studio 2005年有關

Maximum lines of code permitted in a Java class?

感謝

編輯 有大約50 +類的文件中,一些微小的,一些大!

回答

17

Egad。

幾乎每個人都強烈建議每個班級將文件包含在文件中。

線條不直接相關,但它可能是您創建過於複雜的上帝階級並需要打破邏輯的症狀。單元測試驅動的開發在正確完成時強制執行。

編輯(注意到了 「爲什麼」):

從你問它應該是顯而易見的:)

幾(的原因很多)這樣的事實:

  • 很難直觀地看到大文件中的實際代碼佈局

  • 大多數IDE都默認設置爲顯示多個文件es,但不是同一個文件的多個視圖

  • 對單個文件的源代碼管理可能是一個問題:「您可以檢查{godfile},以便我可以在該項目上工作嗎?」

  • 分段代碼爲命名空間/封裝/分支是一個問題,每個文件

+0

嗨,文件包含大約50+類,有些很大,所以我可以理解需要每個類的文件,但有些很小,每個文件看起來像是過度殺傷 – 2008-12-17 11:35:11

+0

您的編輯稱它爲我喜歡的{godfile}概念不是文件),因爲我可以理解你爲什麼這是錯誤的原因。 – 2008-12-17 11:38:55

6

一個頂層類型是傳統的 - 雖然嵌套類型也還行,千萬不要做得太過火。有一些例外 - 如果我需要聲明一些委託,我經常會將它們全部放在一個文件中(例如C#的Delegates.cs) - 這很有意義,因爲每個委託類型基本上只包含一個方法簽名。有些人對枚舉也是這樣,儘管我不喜歡。

這使得您的代碼更易於導航,編譯更快,並且更容易顯示源代碼管理中的更改。

除此之外 - 我開始擔心,如果一個班級超過1000行代碼沒有真的很好的理由。可能有很好的理由,但你至少應該看看這個班級是否有太多的責任。我已經看過在現在之前已經有足夠功能的類別,它們應該擁有自己的命名空間(使用適當數量的小類提供所需的功能)...

從問題中不清楚您是否有任何個別課程是巨大的,但將課程分成「每個文件一個」應至少有助於開始。

0

1類1文件,annakata是絕對正確的。

在某些情況下,您可能會考慮使用部分類將其拆分到不同的文件中。

只有一個真正的大文件......在團隊中工作必然是一場噩夢,你們怎麼做?我猜測沒有任何源代碼管理,並且您需要做的每一項更改都必須將其複製到項目的部署副本中。

這是一場等待發生的災難。想象一下,如果有可能一個文件被損壞了?

0

一類。我儘量不要超過200行每個文件(不包括評論),但它確實發生。

重構,重構,重構!

0

像這裏幾乎所有人一樣,我建議你每個文件1類。我總是試圖保持清晰並將概念分開,並且自然傾向於低於600行代碼。

我正在通過命名空間進行單元測試,我的文件正在通過3k-4k的代碼。現在,我已將它們分成多個文件。更容易維護,並且如果您擁有像ReSharper這樣的插件(ReSharper超過2k行減慢VS),則速度更快。