HikiMato / kookkelder

hello
0 stars 0 forks source link

Frameworks onderzoeken #8

Open HikiMato opened 1 year ago

HikiMato commented 1 year ago

Onderzoek welke Python-frameworks we kunnen gebruiken voor de kookkelder!

aimanahr commented 1 year ago

WELKE FRAMEWORKS?

Django:

Voordelen:

Django is een high-level framework dat veel ingebouwde functies en modules biedt, zoals een ingebouwde beheerinterface, authenticatie, en ORM (Object-Relational Mapping) voor database-interactie. Het heeft een sterke en actieve gemeenschap, wat betekent dat jullie veel bronnen en externe pakketten kunnen vinden om de ontwikkeling te versnellen. Django heeft uitgebreide documentatie. Nadelen:

Django kan in vergelijking met de andere genoemde frameworks als zwaarder worden beschouwd, wat betekent dat het meer overhead kan hebben voor eenvoudige projecten. De ingebouwde functionaliteit kan overweldigend zijn als jullie alleen bepaalde delen van Django nodig hebben. Flask:

Voordelen:

Flask is een microframework en biedt een minimale set tools om aan de slag te gaan, waardoor jullie meer controle hebben over de keuze van bibliotheken en componenten. Het is eenvoudig te leren en goed geschikt voor kleinere tot middelgrote projecten. Jullie hebben de flexibiliteit om zelf bibliotheken te kiezen voor specifieke taken. Nadelen:

Jullie moeten meer zelf bouwen of externe bibliotheken toevoegen voor bepaalde functies, wat extra ontwikkelingstijd kan vergen. Pyramid:

Voordelen:

Pyramid is een flexibel framework dat schaalbaarheid en uitbreidbaarheid ondersteunt. Het biedt de mogelijkheid om componenten op maat te kiezen en in te passen voor jullie specifieke behoeften. Pyramid heeft goede ondersteuning voor het bouwen van complexe webtoepassingen. Nadelen:

Het kan enige tijd duren om Pyramid goed te begrijpen, vooral als jullie team niet bekend is met het framework. Tornado:

Voordelen:

Tornado is asynchroon en kan goed presteren bij I/O-intensieve taken, zoals realtime meldingen. Het is geschikt voor schaalbare toepassingen met een grote hoeveelheid gelijktijdige verbindingen. Nadelen:

Het is meer gericht op asynchrone taken en kan overkill zijn voor een eenvoudige webtoepassing zoals jullie voorraadsysteem. Over het algemeen zou ik aanraden om te beginnen met Django of Flask, afhankelijk van jullie teamervaring en de complexiteit van het project. Django kan handig zijn als jullie snel functionaliteit willen ontwikkelen, terwijl Flask meer flexibiliteit biedt. Pyramid en Tornado zijn meer geschikt voor complexe toepassingen of specifieke use-cases waar asynchrone verwerking belangrijk is. Het is ook mogelijk om later over te stappen naar een ander framework als dat nodig is, maar dat kan extra werk met zich meebrengen.

DJANGO OF FLASK?

Flask wordt vaak als flexibeler beschouwd dan Django vanwege de minimalistische aard van het framework. Hier zijn enkele redenen waarom Flask als flexibeler kan worden gezien:

Minimale structuur: Flask biedt minimale structuur en functionaliteit "out of the box". Dit betekent dat het jullie toelaat om de componenten, bibliotheken en structuur van jullie applicatie op maat te kiezen. Jullie hebben de vrijheid om te beslissen hoe jullie de applicatie willen ontwerpen en welke externe bibliotheken jullie willen gebruiken voor specifieke taken.

Geen ingebouwde database-ORM: Flask heeft geen ingebouwde Object-Relational Mapping (ORM) zoals Django's ORM. Dit kan als een voordeel worden beschouwd omdat jullie vrij zijn om elke database-ORM of geen ORM te gebruiken die het beste bij jullie project past.

Keuze van sjabloonengine: Flask laat jullie vrij om jullie eigen sjabloonengine te kiezen. Jullie kunnen Jinja2 gebruiken, maar ook andere sjabloonengines integreren als dat nodig is.

Django wordt daarentegen vaak als handiger beschouwd om snel functionaliteit te ontwikkelen vanwege de volgende redenen:

Ingebouwde functionaliteit: Django wordt geleverd met veel ingebouwde functionaliteit en modules zoals een beheerinterface, authenticatie, gebruikersbeheer en een krachtige ORM. Dit betekent dat jullie minder code hoeven te schrijven om basisfuncties te implementeren. Hierdoor kunnen jullie sneller aan de slag en wordt de ontwikkeling versneld.

Conventies: Django legt bepaalde ontwikkelingsconventies op, waardoor het gemakkelijker wordt om beslissingen te nemen en snel code te schrijven. Het "Django-way" principe maakt de ontwikkeling gestructureerd en minder afhankelijk van individuele keuzes.

Actieve gemeenschap en uitgebreide documentatie: Django heeft een grote en actieve gemeenschap en uitgebreide documentatie, wat betekent dat jullie gemakkelijk oplossingen kunnen vinden voor veelvoorkomende problemen en dat er veel externe pakketten beschikbaar zijn.

Kortom, Flask biedt meer vrijheid en flexibiliteit bij het ontwerpen van jullie applicatie, terwijl Django een snelle ontwikkeling mogelijk maakt door ingebouwde functionaliteit en ontwikkelingsconventies. Jullie keuze hangt af van de specifieke behoeften van jullie project en jullie ontwikkelingsteamvoorkeuren.

ONZE KEUZE? Flask.

HikiMato commented 1 year ago

Story points: 5