2010-08-02 2 views
0

Я пытаюсь держать xcode хаос под контролем. А именно, как повторно использовать мои небольшие компоненты/классы между проектами. Одна из стратегий состоит в том, чтобы сделать каждый класс или тесно связанную коллекцию классов в статической библиотеке, каждый из которых является икру другого подпроекта с несколькими целями, такими как модульные тесты, демонстрации и, конечно же, библиотека.Может ли Xcode и iPhone обрабатывать сотни статических библиотек?

Как он выглядит сейчас, я мог бы увидеть, что последнее приложение состоит из какого-то пользовательского кода и, скажем, нескольких сотен библиотек. Это меня пугает, но так ли? Будет ли производительность страдать? Существуют ли другие ограничения для многобиблиотечного подхода, которые сделают его нецелесообразным?

+0

Чтобы уточнить - для этого вопроса меня интересуют только технические недостатки, связанные с наличием большого количества библиотек, предпочтительно у кого-то из первых рук, имеющего, скажем, 10 или 20 библиотек в проекте. Имеет ли много библиотек какие-либо штрафы за производительность и является ли их верхним пределом? Спросите себя, можете ли вы создать проект с 10 000 библиотек? Будет ли это работать? –

ответ

0

После некоторого обсуждения в автономном режиме консенсус состоял в том, что 100-е библиотеки не замедлят выполнение, но могут быть болезненными во время связывания.

Сложность управления множеством библиотек могла бы, конечно, сделать решение хуже, чем болезнь.

3

Наличие 100-ти статических библиотек не удерживает контроль над хаосом, что делает его намного хуже. Группировка вашего логически логически в статических библиотеках - отличная идея, но одна в классе слишком мелкая. 100-й из библиотек насчитывает сотни проектов, в которых много обслуживания.

+0

но, не так ли?Будет ли производительность прерываться? –

+0

В какой-то момент это должно будет повлиять на производительность, так как для xcode требуется просто больше работы. Я не буду тратить свое время на это, но не стесняйтесь делать это самостоятельно и сообщать о своих выводах здесь :) – Gary

1

Если вы заинтересованы в управляемости, рассмотрели ли вы использование svn: externals или git subodules?

Это подкаталог из другого репозитория, чем остальная часть вашего дерева, поэтому вы можете иметь несколько проектов, используя последнюю версию вашего общего кода, в дополнение к проекту, предназначенному только для тестирования этого общего кода. Иерархия файлов будет выглядеть примерно так:

тесты/< - СВН проверки

  • разделяемой код/​​
  • тест-код/​​

проект 1/< - СВН проверки

  • общий код/​​< - svn: внешний к испытаниям/shared-cod е/
  • p1-специфический код/​​

проект 2/< - СВН кассе

  • разделяемой код/​​< - SVN: внешние по отношению к тестам/разделяемой код/​​
  • p2 конкретного код/​​

Там немного СВН танец быть сделано, когда мечения с SVN: внешние ссылки, и я считаю Git подмодуль требует различного танцевального ВГА обновляя их содержимое до HEAD, но они оба далеки от головной боли, связанные с поддержанием общего кода в синхронизации по нескольким проектам.

+0

Меня интересуют методы управления сложностью, и я, к сожалению, слишком хорошо разбираюсь в плюсах и минусах git и svn. Это может быть отличная техника для некоторых обстоятельств. Прямо сейчас, для этого вопроса, меня интересует только техническая возможность иметь множество библиотек. Некоторые технологии замедляются, скажем, экспоненциально, и мне было интересно, добавили ли библиотеки в эту категорию и надеялись найти кого-то из первых рук. –

Смежные вопросы