Nuovi framework di sviluppo web stanno spuntando a un ritmo più veloce di quanto chiunque potrebbe tenere il passo. In questo articolo, stabiliremo come decidere un framework per la creazione della tua prossima applicazione web hot.
In questo giorno ed età attuali, spingere fuori un'applicazione ben rifinita prima che il tuo concorrente sia la chiave. Codificare tutto da zero, escludendo anche le cose banali, può essere estremamente dispendioso in termini di tempo e consente allo sviluppatore di dedicare tempo a reinventare la ruota, tempo che sarebbe preferibilmente impiegato per implementare nuove funzionalità o per rafforzare la base di codice. È qui che entrano in gioco i framework di sviluppo Web. Spesso coprono tutti gli aspetti usuali di un'applicazione, tra cui accesso al database, autenticazione, gestione delle sessioni e molto altro.
Oggi daremo un'occhiata ai vari aspetti di cui dovresti preoccuparti prima di scegliere un quadro. Interessato? Iniziamo subito!
Prima ancora di iniziare a guardare i framework, devi fare una lista dei tuoi requisiti e se un framework è adatto a tale scopo.
Prima di iniziare a sviluppare con un framework, vedere che tipo di licenza viene distribuita sotto il framework. Mentre la maggior parte delle licenze sono abbastanza liberali con cui lavorare e ti consente di creare applicazioni commerciali, alcune di esse non sono così generose. L'ultima cosa che vorresti è creare un'intera applicazione solo per scoprire che la licenza non ti permette di distribuirla commercialmente. Meglio fare la tua ricerca prima che soffrire dopo.
Si noti che questo non è limitato al solo framework. Il plug-in o l'estensione che hai utilizzato per la funzionalità extra potrebbe avere una clausola nascosta. Controlla anche la sua licenza!
Quasi ogni framework là fuori utilizza esclusivamente il pattern MVC. MVC, che sta per Model-View-Controller, ti aiuta a mantenere i tuoi dati: il modello, la logica: il controller e l'interfaccia utente: la vista, separata l'una dall'altra. Questo a sua volta consente di scrivere un codice migliore e più rigoroso che alla fine si traduce in applicazioni migliori.
Solo perché quasi tutti usano MVC non significa che sia tutto ciò che devi sapere. Ci sono un paio di varianti tra cui MVP: Model-View-Presenter, MVA: Model-View-Adapter e AVC: Application-View-Controller.
Come sviluppatori web, potremmo essere inclini a creare applicazioni su piattaforme all'avanguardia, ma spesso la necessità e il budget del cliente vengono prima di tutto. Spesso potrebbe essere fuori budget ottenere un host dedicato su cui posizionare le nostre applicazioni e dovremo accontentarci di hosting condiviso con normali moduli e impostazioni.
I framework che funzionano bene con l'hosting condiviso includono:
Framework che richiedono impostazioni relativamente non tradizionali:
In tutta onestà, comunque, puoi ancora gestire framework come Django da un host condiviso. Richiederà solo che il server abbia installato il modulo necessario. Potresti essere in grado di eseguirlo da CGI ma sarà molto più lento rispetto a eseguirlo in modo nativo.
La facilità di installazione gioca un ruolo molto importante mentre si sceglie un framework. Un framework, per quanto possa essere ricco di funzionalità o veloce, può rappresentare un problema se si devono eseguire diversi passaggi solo per installarlo e funzionare.
Ciò costituirà anche un grosso problema una volta che l'applicazione è pronta, testata e deve essere distribuita al server di produzione. Un framework con facilità di installazione e altrettanto facile implementazione ottiene punti brownie qui.
Per molti framework, impostare è semplice come impostare i giusti valori nel file di configurazione, mentre per altri potrebbe essere un affare molto dispendioso in termini di tempo. Scegli un framework che ti permetta di alzarti e correre il più rapidamente possibile.
Ogni framework ha il suo piccolo universo: convenzioni di denominazione, struttura delle directory e cosa no. Alcuni framework sono piuttosto flessibili quando si tratta di questi, mentre altri sono molto, molto rigidi che generano errori al minimo errore. Alcuni framework seguono le convenzioni generali mentre implementano una funzionalità mentre altri possono risolverlo e fare le proprie cose. Mentre scegli un framework, ricorda di sceglierne uno che abbia la curva di apprendimento più piccola possibile.
Se non conosci la lingua in cui è scritto il framework, prendi nota di includere la lingua stessa nella curva di apprendimento. Ho visto un numero di sviluppatori saltare a Django da CakePHP e faticare perché hanno bisogno di imparare sia Python che Django allo stesso tempo. Se hai bisogno di imparare sia il quadro che il linguaggio in cui è stato scritto, fai un passo!
Affrontiamolo; è per la libreria di base che molte persone adottano un framework. La libreria deve essere in modo tale che ti liberi dalla scrittura di codice ripetitivo, ma ti fornisce comunque un modo per armeggiare con esso se hai bisogno di più controllo o funzionalità.
La maggior parte dei framework offre librerie che coprono quasi tutto il seguente elenco:
Naturalmente, non tutti hanno bisogno di un quadro ricco di funzionalità. Un sacco di gente preferisce le strutture per gestire il minimo indispensabile mentre lascia che lo sviluppatore gestisca il resto. In questi casi, dovrai assicurarti che il framework in questione abbia solo le funzionalità di cui hai bisogno.
Una tendenza corrente tra i framework è che sono creati come una libreria di librerie. In altre parole, ti consente di scambiare parti della libreria con un'altra parte di tua scelta. Un eccellente esempio di questo sarebbe piloni. Permette di cambiare quasi tutte le sue parti a partire dall'ORM fino al suo linguaggio dei template. Le persone amano questi quadri liberamente accoppiati tanto quanto le strutture che sono strettamente legate ai suoi componenti principali.
Quasi tutte le applicazioni devono accedere a un database per leggere i dati o modificarne il contenuto. In entrambi i casi, lo farai per tutta la lunghezza dell'applicazione e con questo in mente, la maggior parte dei framework ti consente di utilizzare una classe di accesso al database che puoi utilizzare. Quindi, mentre scegli un'applicazione, scegline una che permetta alla tua applicazione di diventare indipendente dal database. Non dovrai mai preoccuparti della parte del database in quanto è necessario cambiare i database se il tuo framework si prende cura di questo.
La seconda parte a cui dovrai pensare è la capacità ORM del framework. Senza ottenere informazioni tecniche, ORM o Object Relational Mapping consente di esprimere i dati come un oggetto e vedere come si relaziona con altri oggetti. Immagina un database di oggetti da cui puoi estrarre le informazioni, se vuoi.
I framework con funzionalità ORM includono CakePHP, Django e Ruby. Con framework come Pylons, puoi usare il tuo ORM di scelta.
Un altro punto di contesa è la libreria JavaScript in bundle. Mentre la maggior parte delle librerie ti consente di scambiare la libreria con facilità, i metodi AJAX all'interno del framework sono in gran parte ancora orientati verso una specifica libreria JS. Questo implicitamente significa che dovrai scrivere manualmente la funzionalità da solo. D'altra parte ci sono framework con metodi agnostici di libreria che ti permettono di scambiare la libreria JavaScript con poco o nessun problema.
Solo come riferimento, sia CakePHP che Ruby on Rails vengono forniti con Prototype e Scriptaculous come standard.
Sono uno di quegli sviluppatori che giurano su test unitari. Wikipedia definisce il test unitario come:
Il test unitario è un metodo di verifica e validazione del software in cui un programmatore verifica se singole unità del codice sorgente sono idonee all'uso. Un'unità è la più piccola parte testabile di un'applicazione.
I framework che mi permettono di scrivere test unitari sono un vantaggio decisivo in questo caso. Un sacco di framework inclusi Code Igniter, CakePHP e Zend ti consentono di creare test personalizzati oltre ai test di base per verificare le parti critiche della tua applicazione.
Lo sviluppatore web medio non deve preoccuparsi della scalabilità di un framework. Come spesso accade, l'I / O e la latenza della rete sono spesso il problema piuttosto che la scalabilità di un framework. Persino il mitico problema di scalabilità di Twitter non era colpa del framework in questione.
Se qualcuno ti chiede di licenziare un quadro sottolineando problemi di ridimensionamento, ignorarli. Raramente il framework è il motivo del problema del ridimensionamento. Certo, potresti ottimizzare un po 'il codice, ma spesso il problema del ridimensionamento si trova altrove.
La documentazione di un framework è spesso la chiave del suo successo. Ben spiegato, la documentazione dettagliata attira i potenti utenti e gli evangelisti che poi portano più persone. Con documentazione scadente e confusa, le persone si allontanano confuse e infastidite.
Cerca un framework che abbia una documentazione completa con molti esempi, frammenti, codice di esempio, articoli ed esercitazioni. Screencast come quelli di Jeffrey sono un vantaggio speciale dato che ti lasceranno passare il tempo.
Inevitabilmente, anche con una documentazione adeguata, vi imbatterete in errori per rettificare quali, dovrete chiedere alla comunità dietro la struttura di supporto. Ho interagito personalmente con le comunità che hanno attaccato vetrificamente nuovi programmatori e li hanno derisi mentre all'estremo opposto ho visto le comunità accogliere con gioia i neofiti e insegnare loro i trucchi del mestiere. Penso che non sia necessario dire quale framework ho finito per scegliere e ho iniziato a lavorare in modo permanente.
Come spesso accade, le comunità dietro a un quadro fanno o rompono il quadro. Troppo snob e ti risentirai del quadro invece delle persone. Ben educato e ti graviterò verso il quadro. Scegli un framework che abbia una community amichevole che aiuti gli sviluppatori di nuovo sulla piattaforma.
Uno dei motivi per cui gli sviluppatori web evitano di creare i propri framework è il fatto che sono gli unici a dover correggere bug e aggiornamenti. Con un grande framework, hai letteralmente migliaia di programmatori che passano attraverso il codice e lo eseguono quotidianamente. Bug, se e quando vengono trovati, vengono schiacciati il prima possibile dopo che sono stati trovati.
Scegli un quadro che non sia stagnante. Non vuoi che un hacker ti dica che esiste una vulnerabilità di sicurezza nel framework attraverso una pagina che ha violato sul tuo sito. Preferiresti sentirlo dagli sviluppatori del framework, magari con un link a una patch del problema. Scegli un framework che viene aggiornato spesso, è aperto sui bug che trova e, più importante, corregge i bug che le persone incontrano il prima possibile.
Mentre un framework copre tutte le basi importanti di un'applicazione, è probabile che dovrai ancora scrivere una serie di codice. Rendilo abbastanza generico e puoi ri-definirlo in un componente adatto per il riutilizzo nelle tue altre applicazioni o, ancora meglio, distribuirlo al pubblico in modo che ne faccia uso nelle loro applicazioni ...
Scegli un framework che ti permetta di estendere la struttura facilmente e con il minimo sforzo. Ad esempio con CakePHP, l'estensione di un controller è gestita da componenti e viste di aiutanti. In entrambi i casi, la creazione di un'estensione è semplice quanto la definizione di una nuova classe che eredita da una classe base genitore.
Durante la scelta di un framework, tieni presente anche la disponibilità di plug-in. Spesso non avrai il tempo di creare un'estensione personalizzata da zero. Avere un enorme pool di estensioni tra cui scegliere riduce notevolmente questo problema. Scegli non dal numero di estensioni ma dalla qualità delle estensioni.
E abbiamo finito! Abbiamo esaminato tutti gli aspetti da considerare prima di scegliere un framework di sviluppo web. Abbiamo esaminato tutto, dalla mappatura del suo adeguamento ai nostri scopi alle correzioni di bug e aggiornamenti. Spero che questo ti sia stato utile e l'hai trovato interessante.
Domande? Belle cose da dire? Critiche? Colpisci la sezione dei commenti e lasciami un commento. Buona programmazione!