2009-08-18 22 views
5

在我的C項目中,我有一個相當大的utils.c文件。它真的有很多種不同的工具。我覺得有點頑皮,只是在那裏填充不同的雜項功能。例如,它有一些與低級別的東西相關的實用工具,例如小寫()函數,它也有一些非常複雜的工具,例如轉換爲/從不同的顏色格式轉換。它有一個大型的公用文件頑皮嗎?

我的問題是,是不是很調皮有許多不同類型的公用事業它這麼大的utils.c?我應該把它分解成許多不同種類的實用程序文件嗎?比如graphics_utils.c等等你覺得怎麼樣?

+0

頑皮=雜亂無章? – Alex 2009-08-18 03:28:47

+0

Domenic,我覺得這篇文章的答案(似乎都是說同一件事)在設計模式是'主觀'的同一意義上是'主觀的';換言之,'主觀'標籤是不恰當的:) – horseyguy 2009-08-18 03:38:20

+3

不,淘氣=打開。 – 2009-08-18 03:38:41

回答

6

如果它只是你將永遠保持的東西,它是在複雜到達那裏你會發現自己尋找的東西點的問題。那將是重構和重組的時刻(重組需要花費成本,就像沒有重組一樣)。

如果它可能是任何人都將維持一個項目,包括你的utils的,你必須考慮他們的痛點決定何時重組時。他們比你低很多。

6

我傾向於將它們分解爲各種子實用程序,正如您所說(graphics_utils)適用時。

9

打破他們成基於類別的單獨的文件(即圖形,字符串等)會導致更好的組織,使其更容易找到的代碼的某些部分,具有較小的文件穿過去,而不是一個大文件。

2

這絕對不是猶太教,因爲下一個通過你的代碼的人將不知道在哪裏尋找任何東西。按功能分解它,你的同事們會感謝你!

+4

當然,他會的。它將在巨型的utils文件中! – womp 2009-08-18 03:41:51

+1

@womp:lol + 5chars – 2010-10-18 05:40:02

3

分手。東西將更容易找到,更容易重用,更容易重構,更容易進行單元測試。我最近需要從一個巨大的Java實用工具類的靜態方法中獲得一組ISO-8601日期處理方法,並且很難找到我需要的5%的代碼。

0

像其他人一樣,我會打破他們。但是我現在傾向於使用擴展方法,所以我會爲每個類擴展一個類(和一個文件)(例如,StringExtensionsSqlDataReaderExtensions等)。我發現這往往很好地分解了效用方法。

7

你想打破它,不只是組織方面的原因,而是因爲你將不得不依賴於這一個很多其他文件。因爲一切都取決於這個文件,所以這個文件很難改變,因爲它可能導致大範圍的破壞。

http://ifacethoughts.net/2006/04/15/stable-dependencies-principle/

+0

它可能會使構建時間不那麼理想,因爲鏈接到此文件的所有內容如果發生更改都需要重新編譯。 – 2009-12-10 17:47:53

2

是來自分手文件到中隔離的另一個優點是,當你把它的源代碼控制下,可以有更加精確的控制。如果您經常調整/擴展/專用的位和其他相對穩定的位,這非常有用。

2

另一點:你應該組織你的代碼,我。即把它分成小模塊和分類,因爲在某些時候你最終會爲同一件事寫第二個和第三個函數,只是因爲你不會找到你知道它在那裏的那個函數,但是你不記得它的名字。

我有(相當大)項目,這種模塊有編程邏輯,其中有多達5-6實現(同樣的事情)。

相關問題