2010-08-02 50 views
0

我試圖保持控制xcode混沌。也就是說,如何在項目之間重用我的小型組件/類。一種策略是將每個類或緊密耦合的類集合放入一個靜態庫中,每個類都是一個不同子項目的產卵,其中包含單元測試,演示,當然還有庫。Xcode和iPhone可以處理數百個靜態庫嗎?

現在看來,我可以看到最終的應用程序是由一些自定義代碼組成的,也就是說有幾百個庫。這讓我害怕,但是它應該如何?性能會受損嗎?多庫方法是否存在其他限制會使其變得不切實際?

+0

爲了澄清 - 對於這個問題,我只關心有很多圖書館的技術缺點,最好是有第一手經驗的人在項目中擁有10或20個圖書館。是否有很多圖書館會招致任何懲罰,並且是他們的上限?問問你自己,如果你有它的腳本,你可以做一個有10,000個圖書館的項目嗎?它會運行嗎? – 2010-08-04 15:27:17

回答

0

經過一些離線討論後,共識是100個圖書館不會減慢執行速度,但在鏈接過程中可能會很痛苦。

管理大量圖書館的複雜性當然可能會使得解決方案比疾病更糟糕。

3

擁有100個靜態庫並不能控制混亂,這使得它變得更糟。把你的代碼邏輯地分組到靜態庫中是一個好主意,但每個類都有一個很好的粒度。 100多個圖書館等於數百個維護量很大的項目。

+0

但是,它會工作嗎?性能會不會停下來? – 2010-08-02 11:13:28

+0

在某些時候,它將不得不對性能產生一些影響,因爲xcode需要做更多的工作。我不會浪費我的時間嘗試它,但你可以自由地這樣做,並將你的發現報告回來:) – Gary 2010-08-03 04:44:09

1

如果你關心的是可管理性,你有沒有考慮過使用svn:externals或git submodules?

它是來自不同存儲庫的子目錄,與您的其餘樹不同,因此除了僅用於測試共享代碼的項目之外,您可以使用最新版本的共享代碼來創建多個項目。文件層次看起來是這樣的:

測試/ < - svn籤

  • 共享代碼/
  • 測試碼/

項目1/< - svn籤

  • shared-code/< -svn:外部測試/共享鱈魚E/
  • P1-特定碼/

項目2/< - svn籤

  • 共享代碼/ < - SVN:外部測試/共享碼/
  • P2專用代碼/

有一個小的svn舞蹈SVN標記時要做到:外部組件,而且我相信git的子模塊需要不同的舞蹈WH將它們的內容更新爲HEAD,但這些都與保持多個項目中的通用代碼同步所涉及的頭痛有關。

+0

我對管理複雜性的技巧很感興趣,而且不幸的是,我很熟悉git和svn的優點和缺點。在某些情況下,這些可能是很棒的技巧。 現在,對於這個問題,我只對擁有大量圖書館的技術可行性感興趣。有些技術的速度會呈指數級下降,我想知道添加庫是否適合該類別,並且希望能夠找到具有第一手經驗的人。 – 2010-08-04 15:24:49

相關問題