Одна кодовая база для Snow Leopard и Leopard

Следующая ссылка обеспечивает на идущем сравнении между многими языками программирования. Это должно дать Вам общее представление о некоторых достоинствах и недостатках Python через различные проблемные области.

Игра

Сравнительных тестов языка программирования

6
задан John Gallagher 22 October 2009 в 14:01
поделиться

2 ответа

Ваше внутреннее впечатление о GCD верное. Фактически, любой API, использующий блоки, отсутствует, если вы не обусловите выполнение этого кода только на Snow Leopard. Это имеет смысл, если код предназначен для поддержки функций, которые доступны только в Snow Leopard, но если это функция, которую вы также собираетесь поддерживать в Leopard, вы также можете просто использовать путь кода Leopard во всех случаях, добавив конкретный Snow Leopard path, который не обеспечивает видимых улучшений для пользователя, просто усложнит ваш код и увеличит накладные расходы на тестирование.

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

if (snowLeopard) {
  [NSSnazySnowLeopardClass doSomething];
} else {
  [NSBoringLeopardClass doSomethingEquivalent];
}

Обычно, если изменения настолько просты, Apple обрабатывает их внутри класса, не меняя API. Другими словами, вопрос не в том, можете ли вы использовать более простой код управления потоками в Snow Leopard, а в том, зачем вам это делать, если вам в любом случае понадобится сделать жесткую версию для Leopard. Дополнительный путь кода - это дополнительный путь кода, и до тех пор, пока вы не откажетесь от поддержки Leopard, используя значительно отличающиеся API-интерфейсы на Snow Leopard (даже если они проще в использовании, чем Leopard), это просто дополнительная работа.

Я бы подумал, действительно ли вы хочу нацелить Леопарда. Принятие Snow Leopard было справедливым, Snow Leopard - это дешевое обновление, и из-за изменений API на пользователей будет оказываться сильное давление со стороны мелких разработчиков, создающих приложения только для Snow Leopard. Единственная группа пользователей, которые собираются оставаться на Leopard надолго, - это те, кто не подкован технически (кто вряд ли установит много стороннего программного обеспечения), и те, кто все еще использует Mac PPC (кто не купил новый Mac через 3 года, поэтому, вероятно, не будет покупать много программного обеспечения). Если вы думаете, что это приложение будет выпущено через 3–9 месяцев, я бы сказал, что переход только на Snow Leopard, вероятно, будет разумным вариантом и значительно сократит ваши затраты на разработку и тестирование.

9
ответ дан 9 December 2019 в 22:36
поделиться

Один из способов - понять, какие API в Leopard были изменены в Snow Leopard для использования GCD. Например, NSOperation и NSOperationQueue в Leopard работают как всегда. Однако в Snow Leopard они были переписаны, чтобы использовать преимущества GCD. Вуаля. Мгновенное обновление для вашего 10. 6.

Другой вариант - использовать что-то вроде PLBlocks и самостоятельно компилировать GCD в свой код. Понятия не имею, сработает ли это, но, возможно, стоит попробовать. =)

2
ответ дан 9 December 2019 в 22:36
поделиться