Tendo a lavorare di più con le applicazioni web e anche se sto cercando di essere generale, la mia risposta potrebbe non applicarsi alla tua area di programmazione.
Userò anche "framework" sinonimo di "libreria".
Prima di implementare un framework, bisogna considerare alcune cose, ecco alcuni esempi generali.
# 1. Il framework farà risparmiare tempo e fatica?
La risposta a questa domanda è quasi sempre sì . I frame tendono ad essere costruiti per risolvere problemi specifici e risolverli molto bene. Ad esempio, framework come EntityFramework possono salvarti completamente dalla scrittura di codice SQL. Il che può essere fantastico se il tuo team di programmazione non parla fluentemente SQL.
I frame sono costruiti per, a) aggiungere un'interfaccia intuitiva per i programmatori a componenti altrimenti complessi oppure b) aggiungere astrazione a componenti già noti (o consolidati).
Il secondo (o anche il primo in alcuni casi) può effettivamente ostacolare lo sviluppo. Ciò vale soprattutto quando voi o il vostro team di programmazione implementerà un nuovo framework, in cui non hanno mai lavorato prima.
Ciò potrebbe potenzialmente rallentare il processo di sviluppo, che potrebbe essere costoso.
# 2 La scala della tua applicazione
Si dice che "vale la pena esagerare" , ma di solito non è così. Probabilmente non c'è alcun buon motivo per implementare un framework di grandi dimensioni se il punto della tua applicazione è stampare "patata" .
Quando stai sviluppando un'applicazione (sia essa web, desktop, mobile o qualsiasi altro tipo immaginabile di applicazione) - se ritieni che la dimensione del tuo framework "nani" la tua (forse futura) implementazione di essa, allora questo potrebbe essere un grande segnale di avvertimento che il framework potrebbe solo gonfiare l'applicazione. Un buon aneddoto sarebbe se includessi jQuery, solo per aggiungere una classe "caricata" al tuo body-tag quando il documento è pronto. Farlo con solo JavaScript nativo potrebbe essere un po 'più difficile , ma non gonfia la tua applicazione.
D'altra parte, se un framework fa un sacco di lavoro sporco all'interno (ad esempio framework di database), potrebbe essere fattibile implementarlo, anche se si sta solo "parzialmente" utilizzando il framework. Un buon aneddoto sarebbe di non provare a creare il proprio driver ADO.NET o MongoDB, solo perché non è necessario utilizzare l'intera libreria.
A volte i framework sono open-source (e con licenze "fai tutto quello che vuoi"). Questo apre una nuova possibilità in cui un team di programmazione potrebbe optare solo per parti di un framework.
Questo alla fine si ricollega alla domanda n. 1 e n. 3.
# 3 Impatto.
Talvolta l'implementazione di un framework può avere un impatto diretto sull'utente finale. Ciò è particolarmente vero per le applicazioni Web, poiché avere grandi framework lato client potrebbe influire negativamente sull'esperienza dell'utente finale. Gli utenti con macchine più lente potrebbero riscontrare rendering lenti, problemi di prestazioni con javascript o problemi simili causati da macchine sotto-par. L'utente con connessioni lente potrebbe riscontrare tempi di caricamento lenti (almeno iniziali).
Anche in altri tipi di applicazioni, gli utenti finali potrebbero essere influenzati negativamente dalle dipendenze dell'applicazione. I frame occupano almeno sempre un po ' di spazio su disco e, se si sta sviluppando un'app mobile (o anche un'app desktop), potrebbe essere necessario tenerne conto.
I framework lato server (anche più specifici del Web) probabilmente non influenzeranno gli utenti finali, ma influenzeranno la vostra infrastruttura . Alcuni framework hanno dipendenze stesse che potrebbero richiedere il riavvio del server Web, solo del servizio o del server.
Alcuni framework potrebbero anche essere molto ricchi di risorse.
Questo ovviamente ricollega ai punti 1 e 2.
È solo una grande "cerchia di considerazioni" e non esiste un vero metodo scientifico per decidere se è necessario implementare un framework o meno.
Corbin March lo ha riassunto molto bene:
I gruppi con cui ho lavorato fanno tutti la stessa cosa: fai un'ipotesi su costi e benefici, scegli il percorso più produttivo e spero che abbiano ragione. Non è terribilmente scientifico: un'intuizione di una parte, tre parti di esperienza, una parte di suscettibilità al marketing, una parte di astuzia e un'opinione di cinque parti.
È anche importante non essere elitari . I frame sono strumenti che devono essere utilizzati. Conosco persone di entrambi gli estremi; da un lato hai il ragazzo che rende la vita molto difficile per se stesso, dall'altro hai il ragazzo che costruisce applicazioni lente e gonfie.
Tutti i framework hanno casi d'uso, è solo una questione di implementarli per gli scopi giusti.