Se ci sono due modi per affrontare un'attività, come si dovrebbe scegliere tra loro?


11

Ho un caso d'uso specifico e ho trovato 3 modi per farlo su Internet, che sono definiti per casi di utilizzo vaghi. Sto fissando queste tre domande su quale applicare.

Tendo a sedermi lì senza sapere cosa fare, quindi non fare nulla ... C'è un buon modo di scegliere? Dovrei provarli tutti?

Per essere più specifico per un determinato contesto, sto cercando di creare un gioco da tavolo molto leggero in cui ho bisogno di una parte dello schermo in cui posso ruotare la griglia del gioco da tavolo, ingrandire la griglia e spostare i pezzi su questa griglia . Non avevo idea di come farlo, ma ho trovato cose online come Core Animation, Core Graphics, Sprite Kit e ho visto argomenti a favore e contro di loro - ad esempio Sprite kit è di alto livello, ma mantiene il frame rate a 60, che è uno spreco di batteria quando nulla si muove davvero sullo schermo. Core Animation era un'API di livello inferiore, che si oppone alla guida di Apple di "prendere il massimo livello di astrazione". Non voglio imparare 3 cose da usare 1. C'è un modo in cui posso scegliere e sbloccarmi?

Sto lasciando questa domanda piuttosto vaga intenzionalmente poiché penso che si applichi in tutta l'area del software.

Risposte:


16

Si esegue un'analisi costi / benefici su ciascuno degli approcci e si sceglie l'approccio con il rapporto costi / benefici complessivo più elevato.

Nel caso di librerie concorrenti che svolgono essenzialmente la stessa funzione, il modo migliore, più semplice e più rapido per eseguire tale analisi è di alzare piccoli prototipi usando ciascuna libreria. Quale preferire dovrebbe quindi diventare abbondantemente chiaro.

Possibili considerazioni di costi / benefici per le biblioteche:

  • manutenibilità
  • Facilità d'uso
  • Documentazione adeguata
  • Curva di apprendimento
  • Prestazioni complessive
  • Acquista contro Build

... ecc. Nota che molte di queste considerazioni possono essere in qualche modo soggettive.

Che si tratti di un hobby o di una carriera, non importa. Dovrai (e dovresti) utilizzare lo stesso processo se decidi di continuare le tue esplorazioni in una carriera reale.

Strategia decisionale alternativa: scegli quella che ti piace.


4
In caso di libs e implementazioni di terze parti, aggiungerei: supporto della comunità , versioni stimabili (non beta, rilascio candidati o istantanee) , documentazione sul saldo
Laiv


15

Come aggiunta all'ottima risposta di Robert Harvey, ecco i miei 2 centesimi:

Scegli un approccio che sembra essere il minimo sforzo per iniziare, ma assicurati di tenere la porta aperta per passare a un approccio diverso quando si scopre che la soluzione che hai scelto per prima ha troppi problemi. E se sospetti determinati problemi in determinate aree dello scenario di utilizzo, assicurati di implementare prima quelle aree, in modo da ottenere un feedback anticipato, prima che sia troppo tardi per ripristinare la tua decisione iniziale.

Quanto bene funziona dipende fortemente dal caso. Ad esempio, se hai bisogno di una semplice libreria per accedere a un dispositivo esterno o un determinato formato di file, assicurati di incapsulare tutto l'accesso alla libreria in un livello dell'applicazione. Tuttavia, nel caso in cui non si sia sicuri su quale framework scegliere o su quale linguaggio di programmazione scegliere, un'analisi costi / benefici completa è probabilmente tutto ciò che si può fare.

A volte è meglio prendere una decisione, anche se è solo la seconda migliore, purché lo si faccia effettivamente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.