2010-08-02 51 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

相关问题