Architectuurbeslissingsdocument voor het Python Django-framework
Beslissingsdatum: 2021-07-15
Status: Geaccepteerd
Context
Onze organisatie is van plan een webapplicatie te ontwikkelen die klantgegevens beheert. We hebben Python gekozen als programmeertaal en overwegen Django als webframework voor de ontwikkeling van de applicatie.
Beslissing
We hebben besloten het Django-webframework te gebruiken voor de ontwikkeling van de webapplicatie. Django biedt een robuuste set tools en functies voor het snel en efficiënt bouwen van webapplicaties.
Factoren
Enkele van de factoren die onze beslissing hebben beïnvloed zijn:
Object-relational mapping (ORM): Django heeft een ingebouwde ORM waarmee we met de database kunnen communiceren zonder SQL-queries te schrijven. Dit maakt het gemakkelijker de applicatie te ontwikkelen en op de lange termijn te onderhouden.
MVC-framework: Django volgt een Model-View-Controller-architectuur (MVC), waardoor het gemakkelijker is de bedrijfslogica en presentatielagen van de applicatie te scheiden.
Schaalbaarheid: Django staat bekend om zijn schaalbaarheid, waardoor het een uitstekende keuze is voor het ontwikkelen van grootschalige applicaties.
Beveiliging: Django heeft ingebouwde beveiligingsfuncties, zoals bescherming tegen veelvoorkomende webaanvallen zoals cross-site scripting (XSS) en SQL-injectie.
Ondersteuning door de gemeenschap: Django heeft een grote en actieve gemeenschap die ondersteuning biedt en bijdraagt aan de ontwikkeling van het framework.
Overwogen alternatieven
We hebben andere webframeworks overwogen, zoals Flask en Pyramid. We vonden echter dat Django een volwassener en beter gevestigd framework is met een robuuste set functies.
We hebben ook besproken de applicatie te ontwikkelen zonder webframework en met bibliotheken zoals SQLAlchemy en Flask-RESTful. We vonden echter dat Django bredere functionaliteit biedt, waardoor het een betere keuze is voor een complete webapplicatie.
Gevolgen
De invoering van Django zal tot de volgende gevolgen leiden:
Gemakkelijker de applicatie te ontwikkelen en te onderhouden dankzij de ingebouwde tools en functies van Django.
Scheiding van bedrijfslogica en presentatielaag, wat leidt tot meer georganiseerde en beter onderhoudbare code.
Schaalbaarheid en robuustheid van de applicatie.
Ingebouwde beveiligingsfuncties die helpen de applicatie te beschermen tegen veelvoorkomende webaanvallen.
Toegang tot een grote en actieve gemeenschap voor ondersteuning.
We begrijpen dat Django een steilere leercurve heeft dan andere frameworks, maar we vinden dat het de investering waard is vanwege de voordelen op lange termijn die het biedt.
Conclusie
Op basis van de overwogen factoren hebben we besloten het Django-webframework te gebruiken voor de ontwikkeling van de webapplicatie. We geloven dat de functies, de ondersteuning door de gemeenschap en de schaalbaarheid van Django het de beste keuze maken voor het bouwen van een complete webapplicatie. We zullen onze ontwikkelaars trainen in het gebruik van Django om ervoor te zorgen dat het framework effectief en efficiënt wordt gebruikt.