У меня есть конкретный вариант использования, и я нашел 3 способа сделать это через Интернет, которые определены для расплывчатых случаев использования. Я смотрю на эти три вопроса о том, что нужно применять.
Я склонен сидеть там, не зная, что делать, а потом ничего не делать ... Есть ли хороший способ выбора? Должен ли я попробовать все из них?
Чтобы быть более конкретным для некоторого контекста, я пытаюсь сделать очень легкую настольную игру, где мне нужна часть экрана, с помощью которой я могу вращать сетку настольной игры, увеличивать сетку и перемещать части этой сетки . Я понятия не имел, как это сделать, но я нашел в Интернете такие вещи, как Core Animation, Core Graphics, Sprite Kit, и я увидел аргументы за и против них - например, Sprite kit имеет высокий уровень, но поддерживает частоту кадров 60, что Это пустая трата батареи, когда на экране ничего не движется. Core Animation - это API более низкого уровня, который противоречит указаниям Apple «взять наивысший уровень абстракции». Я не хочу изучать 3 вещи для использования 1. Есть ли способ, которым я могу выбрать и отклеиться?
Я целенаправленно оставляю это как довольно расплывчатый вопрос, так как считаю, что он применим ко всей области программного обеспечения.
источник
В качестве дополнения к отличному ответу Роберта Харви, вот мои 2 цента:
Выберите тот подход, который кажется наименее трудным для начала, но убедитесь, что вы оставляете дверь открытой для переключения на другой подход, когда выясняется, что решение, которое вы выбрали первым, имеет слишком много проблем. И если вы подозреваете определенные проблемы в определенных областях вашего сценария использования, убедитесь, что вы сначала внедрили эти области, чтобы получить обратную связь на ранней стадии, пока не станет слишком поздно, чтобы отменить ваше первоначальное решение.
Насколько хорошо это работает, сильно зависит от случая. Например, если вам нужна простая библиотека для доступа к внешнему устройству или определенному формату файла, убедитесь, что вы инкапсулировали весь доступ к библиотеке на уровне вашего приложения. Однако, если вы не уверены, какую платформу выбрать или какой язык программирования выбрать, вам, вероятно, следует провести тщательный анализ затрат и выгод.
Иногда лучше просто принять решение, даже если оно только 2-е лучшее, если вы на самом деле это делаете.
источник