Registro delle decisioni architetturali per il framework Python Django
Data della decisione: 2021-07-15
Stato: Accettato
Contesto
La nostra organizzazione sta pianificando di sviluppare un'applicazione web che gestisce i dati dei clienti. Abbiamo scelto Python come linguaggio di programmazione e stiamo considerando Django come framework web per lo sviluppo dell'applicazione.
Decisione
Abbiamo deciso di usare il framework web Django per lo sviluppo dell'applicazione web. Django fornisce un solido insieme di strumenti e funzionalità per costruire applicazioni web in modo rapido ed efficiente.
Fattori
Alcuni dei fattori che hanno influenzato la nostra decisione includono:
Mappatura oggetto-relazionale (ORM): Django ha un ORM integrato che ci permette di interagire con il database senza scrivere query SQL. Ciò rende più facile sviluppare l'applicazione e mantenerla a lungo termine.
Framework MVC: Django segue un'architettura Model-View-Controller (MVC), rendendo più facile separare la logica di business e i livelli di presentazione dell'applicazione.
Scalabilità: Django è noto per le sue capacità di scalabilità, il che lo rende un'ottima scelta per sviluppare applicazioni su larga scala.
Sicurezza: Django ha funzionalità di sicurezza integrate, come la protezione contro attacchi web comuni come il cross-site scripting (XSS) e l'iniezione SQL.
Supporto della comunità: Django ha una comunità ampia e attiva che fornisce supporto e contribuisce allo sviluppo del framework.
Alternative considerate
Abbiamo considerato altri framework web come Flask e Pyramid. Tuttavia, abbiamo ritenuto che Django sia un framework più maturo e consolidato con un solido insieme di funzionalità.
Abbiamo anche discusso di sviluppare l'applicazione senza un framework web e usando librerie come SQLAlchemy e Flask-RESTful. Tuttavia, abbiamo ritenuto che Django offra funzionalità più ampie, rendendolo una scelta migliore per un'applicazione web completa.
Conseguenze
L'adozione di Django porterà alle seguenti conseguenze:
Più facile sviluppare e mantenere l'applicazione grazie agli strumenti e alle funzionalità integrati di Django.
Separazione della logica di business e del livello di presentazione, che porta a codice più organizzato e più facile da mantenere.
Scalabilità e robustezza dell'applicazione.
Funzionalità di sicurezza integrate che aiutano a proteggere l'applicazione dagli attacchi web comuni.
Accesso a una comunità ampia e attiva per il supporto.
Comprendiamo che Django ha una curva di apprendimento più ripida rispetto ad altri framework, ma riteniamo che valga l'investimento per i benefici a lungo termine che offre.
Conclusione
In base ai fattori considerati, abbiamo deciso di usare il framework web Django per lo sviluppo dell'applicazione web. Crediamo che le funzionalità, il supporto della comunità e le capacità di scalabilità di Django ne facciano la scelta migliore per costruire un'applicazione web completa. Formeremo i nostri sviluppatori all'uso di Django per garantire che il framework sia usato in modo efficace ed efficiente.