Motivatie ORM framework
parent
4673befa1f
commit
f80f9e9b1d
1 changed files with 24 additions and 1 deletions
|
@ -59,3 +59,26 @@ De backend maakt gebruik van [ExpressJS](https://expressjs.com/).
|
||||||
- :white_check_mark: Aan de hand van [tools](https://openapi-generator.tech/docs/generators/nodejs-express-server/) kan een Express server gegenereerd worden, vertrekkende van een [OpenAPI spec](https://swagger.io/docs/specification/v3_0/about/), of omgekeerd.
|
- :white_check_mark: Aan de hand van [tools](https://openapi-generator.tech/docs/generators/nodejs-express-server/) kan een Express server gegenereerd worden, vertrekkende van een [OpenAPI spec](https://swagger.io/docs/specification/v3_0/about/), of omgekeerd.
|
||||||
|
|
||||||
Een mogelijk alternatief zou bv. [fastify](https://fastify.dev/) zijn.
|
Een mogelijk alternatief zou bv. [fastify](https://fastify.dev/) zijn.
|
||||||
|
|
||||||
|
### Object-Relational-Mapping (ORM)
|
||||||
|
|
||||||
|
**Data Mapper Patroon in plaats van Active Record Patroon**
|
||||||
|
|
||||||
|
Dit project maakt gebruik van het Data Mapper Patroon.
|
||||||
|
|
||||||
|
- :white_check_mark: De backend is zo meer ontkoppeld van de database, waardoor die in de toekomst eenvoudiger uitgewisseld kan worden.
|
||||||
|
- :white_check_mark: Gebruik maken van het Data Mapper Patroon biedt meer flexibiliteit tijdens het ontwerpen van de database.
|
||||||
|
|
||||||
|
Zie ook [deze vergelijking](https://www.thoughtfulcode.com/orm-active-record-vs-data-mapper/).
|
||||||
|
|
||||||
|
**MikroORM in plaats van TypeORM**
|
||||||
|
|
||||||
|
Na onderzoek waren de twee kandidaten voor ORM [MikroORM](https://mikro-orm.io/) en [TypeORM](http://typeorm.io/). De volgende overwegingen werden gemaakt:
|
||||||
|
|
||||||
|
- :white_check_mark: MikroORM concentreert zich op simpliciteit en developer-ervaring.
|
||||||
|
- :negative_squared_cross_mark: MikroORM heeft minder (geavanceerde) functies dan TypeORM. Dit kan als positief gezien worden als je de bijhorende leercurve in acht neemt.
|
||||||
|
- :negative_squared_cross_mark: TypeORM is meer robuust dan MikroORM, doordat het ouder is. TypeORM accepteert geen nieuwe feature requests en focust zich enkel nog op stabiliteit.
|
||||||
|
|
||||||
|
Uiteindelijk werd MikroORM boven TypeORM verkozen, omdat MikroROM als moderner aangezien werd en de documentatie uitgebreid genoeg is.
|
||||||
|
|
||||||
|
Andere alternatieven maken ofwel geen gebruik van Data Mapper Patroon, of ondersteunen bijvoorbeeld moeilijker ESM.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue