Eu tenho um caso de uso específico e encontrei três maneiras de fazer isso na Internet, definidas para casos de uso vago. Estou encarando esses três imaginando qual aplicar.
Costumo ficar lá sem saber o que fazer - depois não fazendo nada ... Existe uma boa maneira de escolher? Devo tentar todos eles?
Para ser mais específico em algum contexto, estou tentando criar um jogo de tabuleiro muito leve, no qual preciso de uma parte da tela para poder girar a grade do jogo de tabuleiro, aumentar o zoom na grade e mover peças nessa grade . Eu não tinha ideia de como fazer isso, mas encontrei coisas on-line como Core Animation, Core Graphics, Sprite Kit e vi argumentos a favor e contra eles - por exemplo, o kit Sprite é de alto nível, mas mantém a taxa de quadros em 60, o que é um desperdício de bateria quando nada está realmente se movendo na tela. A Core Animation era uma API de nível inferior, que se opõe às orientações da Apple de "obter o mais alto nível de abstração". Não quero aprender três coisas para usar 1. Existe uma maneira de escolher e me soltar?
Estou deixando isso como uma pergunta vaga, propositalmente, pois acho que se aplica a toda a área de software.
fonte
Como um adendo à excelente resposta de Robert Harvey, aqui estão meus 2 centavos:
Escolha a abordagem que parece ser o menor esforço para começar, mas certifique-se de manter a porta aberta para mudar para uma abordagem diferente quando a solução que você escolheu primeiro apresentar muitos problemas. E se você suspeitar de certos problemas em determinadas áreas do seu cenário de uso, certifique-se de implementá-las primeiro, para receber feedback antecipado, antes que seja tarde demais para reverter sua decisão inicial.
O quão bem isso funciona depende muito do caso. Por exemplo, se você precisar de uma biblioteca simples para acessar um dispositivo externo ou determinado formato de arquivo, certifique-se de encapsular todo o acesso à biblioteca em uma camada do seu aplicativo. No entanto, caso você não tenha certeza sobre qual estrutura escolher ou qual linguagem de programação escolher, provavelmente uma análise completa de custo / benefício é tudo o que você pode fazer.
Às vezes, é melhor tomar uma decisão, mesmo que seja apenas a segunda melhor, desde que você realmente a tome.
fonte