Django Framework

Django Framework, cos’è e perché usarlo

Pubblicatodi il Ago 8, 2019 in Open Source, Programmazione
5 commenti

Che cos’è, a cosa serve e perché si usa Django Framework.

Per prima cosa Django è un framework scritto in Python.

Che cos’è un framework?

Wikipedia lo definisce così:

Un framework, termine della lingua inglese che può essere tradotto come intelaiatura o struttura, in informatica e specificatamente nello sviluppo software, è un’architettura logica di supporto (spesso un’implementazione logica di un particolare design pattern) su cui un software può essere progettato e realizzato, spesso facilitandone lo sviluppo da parte del programmatore.

Se volessimo utilizzare una definizione meno formale potremmo dire che un framework è come una cassetta degli attrezzi.

Al suo interno racchiude tutta una serie di strumenti già pronti all’uso che ci semplificano la vita durante lo sviluppo di un software.

Un framework ci toglie il peso di dover sviluppare tutta una serie di componenti per il nostro software.

Probabilmente la domanda che ti starai facendo è:

Sì ma se io sono un programmatore, perché mai dovrei affidarmi a qualcosa di già fatto? Vuoi mettere la soddisfazione di svilupparmi da solo tutto?

Questo è vero fino a quando stai imparando.

Devi imparare un nuovo linguaggio di programmazione? O magari stai proprio imparando a programmare? Bene, allora sicuramente un framework non è il giusto punto di inizio.

Devi iniziare dalle basi, dal doverti scrivere ogni singola riga di codice.

Mano mano che imparerai ti renderai conto di quanto lavoro c’è da fare per poter completare l’idea che hai in mente.

Quando poi ti troverai a dover realizzare qualcosa per lavoro, con un cliente che aspetta impaziente la consegna, ti posso garantire che doverti scrivere a mano ogni singolo form, ogni singola funzione, ogni singola query sul database, diventerà un lavoro improponibile.

Ma non è finita qua.

Una volta terminato il progetto questo va poi mantenuto nel corso del tempo.

Quali sono quindi i vantaggi di un framework?

Vediamo insieme alcuni punti.

1. Time-to-market

Questo termine indica il tempo necessario a fare sì che il tuo progetto passi dall’essere una semplice idea nella tua testa ad essere un progetto funzionante vero e proprio.

Dover sviluppare ogni singola riga di codice aumenta drasticamente il tuo time-to-market.

Vice versa, utilizzando un framework, hai già tutta una serie di strumenti pronti all’uso che ti permettono di risparmiare tempo e concentrarti sullo sviluppare la tua idea.

2. Sicurezza

Soprattutto quando sviluppi per il web, una delle tue preoccupazioni maggiori dovrebbe essere quella della sicurezza.

Sono al sicuro i tuoi dati? Sei sicuro che non siano accessibili anche da soggetti non autorizzati?

Per far sì che questo accada è necessario dedicare molto tempo al progettare correttamente la struttura della tua applicazione.

Un framework ti permette quindi di non doverti preoccupare (almeno per buona parte del software, ovvio che di qualcosa dovrai occuparti anche tu) di questo aspetto.

Ti basterà mantenere aggiornato il framework sottostante per essere sicuro di essere al riparo da possibili accessi non desiderati.

3. Puoi contare su un team di sviluppo enorme

Può anche essere che la tua idea sia veramente geniale ma sei sicuro di riuscire a svilupparla per conto tuo? O almeno in tempi ragionevoli?

Sviluppare un software da zero significa che dovrai occuparti della progettazione, della realizzazione, del testing, del design del front-end, della manutenzione e via dicendo.

Lavorare con un framework, ancora meglio se open source, riduce drasticamente il carico di lavoro che è sulle tue spalle.

Sapere che c’è qualcuno che si occupa dell’infrastruttura, della manutenzione dei bug e della sicurezza sicuramente ti risparmia tantissimi grattacapi e tempo.

Inoltre non sottovalutare il potere della comunità che può svilupparsi intorno al progetto.

Se ti affidi a un framework conosciuto e affermato puoi stare tranquillo che oltre a poter contare sulla documentazione ufficiale del progetto, troverai sicuramente in rete una quantità enorme di informazioni create da altri utenti che come te hanno deciso di affidarsi a quel framework, facendoti così risparmiare ulteriore tempo.

Ma quindi quale framework mi consigli?

Parto subito con il dirti che non esiste IL framework perfetto.

Partiamo intanto con il restringere il campo ai framework per realizzare web app.

La prima cosa che devi domandarti è in quale linguaggio di programmazione vuoi lavorare.

Ogni linguaggio di programmazione ha le sue caratteristiche e i suoi pro e contro.

Lasciando stare le diatribe “religiose” che di solito si scatenano intorno a questi argomenti, dovresti scegliere quello con cui sei più famigliare.

In realtà non esiste un linguaggio di programmazione “pessimo” in senso assoluto così come non esiste il “migliore” in senso assoluto.

Il linguaggio di programmazione che io ho scelto è Python.

Python ha il grande vantaggio di essere un linguaggio semplice che mi permette, con poche e chiare istruzioni, di realizzare quello che ho in mente.

Il contro? Non è rinomato per le sue perfomance.

Ma è veramente così lento?

Forse una volta potevi notare una differenza abissale con altri linguaggi ma ad oggi, con i progressi compiuti dall’hardware, ti posso garantire che la differenza è praticamente impercettibile rispetto ad altri linguaggi considerati molto più performanti.

Poi certo, tutto dipende anche da come tu sviluppi il tuo codice.

Se anche tu hai deciso che il tuo linguaggio di programmazione è Python, allora il framework di riferimento in questo caso non può che essere Django Framework.

Perché Django?

Django Framework racchiude al suo interno tutti i concetti e vantaggi di cui ti ho parlato sopra.

Al suo interno include già una quantità enorme di strumenti pronti all’uso. In questo modo quando hai in mente un’idea per un’applicazione, non dovrai preoccuparti di molte cose in quanto Django se ne prenderà cura al tuo posto.

Una delle parti che trovo più noiose in assolute sono i form.

Normalmente, senza un framework, devi occuparti di tutto. Dell’impaginazione grafica, di inserire tutti i campi e di gestire tutto tramite back-end.

Validare l’input dell’utente, verificare che i campi obbligatori siano stati inseriti, elaborare i dati inseriti e salvarli nel database. Tutte cose meccaniche che nel momento in cui dovrai realizzare un’app complessa ti troverai a dover gestire ogni singola volta.

Ad esempio Django, al suo interno, include già tutte le funzionalità per creare form alla velocità della luce.

Si occuperà Django dell’impaginazione, di verificare che i dati inseriti dall’utente siano corretti, che i campi obbligatori siano stati inseriti.

Tu dovrai occuparti solo della logica che sta dietro.

Hai bisogno di funzioni di validazione personalizzate? Hai bisogno di visualizzare il form in maniera differente? Nessun problema. Django unisce al suo interno la comodità delle soluzioni già fatte con la possibilità di personalizzazione massima.

E’ gratuito ed open source

Questi sono due aspetti da non sottovalutare sia che tu stia lavorando per conto tuo sia che tu lavori in un contesto aziendale.

Se decidi di portare avanti il tuo progetto per conto tuo poter lavorare con uno strumento professionale totalmente gratuito ti permette di sperimentare con tecnologie allo stato dell’arte senza dover sborsare ingenti quantità di denaro.

Il fatto che sia open source ti permette di essere tranquillo che dietro al progetto c’è un team di sviluppo enorme che si occuperà di mantenere il progetto.

Se invece lavori in un contesto aziendale avrai la possibilità di usare questo strumento senza necessariamente dover passare dall’approvazione della tua azienda.

Quando si tratta di utilizzare nuove tecnologie che richiedono un esborso di denaro ovviamente il progetto deve essere valutato e approvato.

Disponendo invece di un sistema totalmente gratuito velocizzerai di molto l’approvazione del progetto.

# # # # # #

5 pensieri

  1. […] nostro software aziendale, scritto utilizzando Django, tra le varie cose, si occupa di generare le […]

    Rispondi

  2. […] Non starò ora a dilungarmi su come questo possa essere fatto tramite una query raw ma mi concentrerò solo ed esclusivamente su come realizzare questo utilizzando l’ORM di django. […]

    Rispondi

  3. […] Il framework che più di tutti prediligo per lo sviluppo di web app è sicuramente Django. […]

    Rispondi

  4. […] uso da quasi due anni Django, framework scritto in Python per realizzare web […]

    Rispondi

  5. […] Django è presente un comodissimo plugin che ci permette di gestire i cronjob in maniera semplice e […]

    Rispondi

Rispondi