Av John Vandivier
MERK: Mai 2018: Les Fra TypeORM Til LoopBack: En Retrospektiv for et oppdatert perspektiv!
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —denne artikkelen gjennomgår Object Relational Mapping (Orm) – løsninger i JavaScript-økosystemet, og identifiserer en ideell løsning basert på spesifikke krav.
HVA ER EN ORM og Hvorfor Er DET Så Viktig?
ORM-løsninger er nyttige for å lette datadrevet API-utvikling. Brukere har konkrete behov som driver datamodellen til et program. I eldre utvikling er denne dataarkitekturen vanligvis implementert og versjonskontrollert ved hjelp av databaseskript som SQL-skript. Et eget bibliotek brukes deretter for serverprogrammet til å utføre CRUD-handlinger på databasen.
ORMs fungerer som ET HØYT NIVÅ API for å utføre CRUD, og i disse dager kvalitet ORMs også tillate oss å initialisere data gjennom kode. Kompleks datamanipulering, rengjøring og så videre, er ofte lettere i kode. Mens dedikert Ekstrakt, Transform og Load (ETL) verktøy finnes, kan de samme ETL oppgaver enkelt implementeres I ORM.
Implementering av utdrag, transform og last med kode gjør at et system lettere kan integrere data fra svært forskjellige kilder. SQL-databaser med flere smaker, NoSQL-data, filsystemdata og tredjepartsdata kan alle integreres under et enkelt språk med En JavaScript ORM.til Slutt tillater kodeorientert datakontroll også et system å implementere databruk under kjøring eller i byggeprosessen, og fleksibelt tilpasse bruken under utviklingsprosessen etter behov.ORMs forbedrer utviklerproduktiviteten ved å tilby ET API på HØYT NIVÅ, på ett språk, med funksjonalitet som tradisjonelt ville kreve flere forskjellige verktøy og ferdighetssett. Færre ferdighetsbehov, verktøybehov og timer som kreves, letter prosjektmarginen. Uforutsette krav og prosjekttidslinje er bedre forberedt med fleksibel konfigurasjon av build-og run-time-data.
Foretrukne ORM Evner
den spesielle prosjekt kontekst som fører til DENNE ORM gjennomgang krever implementering av en cutting edge, CMS-lignende, universell JavaScript-program.Cutting edge universelle JavaScript-rammer kommer i hovedsak 3 smaker: Angular, React og Vue. Det vil si Angular Universal, Next og Nuxt.
Node støtter opprinnelig filsystemoperasjoner, så Krav Til Innholdsstyringssystem utgjør en preferanse for omfattende databasestøtte. Totalt vurderes følgende krav:Støtte For Mongo Og MySQL, med preferanse til støtte for flere alternativer
Kandidatene og Resultatene
hver kandidat Fikk En Score mellom 0 og 10 for hver foretrukne evne. En score på 5 betyr akseptabelt. Gjennomsnittet for en kolonne kan være mer eller mindre enn 5. FOR eksempel VIL EN ORM med støtte for flere nosql-databaser og ingen støtte for NOEN SQL-database motta en poengsum mellom 2 og 4. 0 indikerer fullstendig mangel på en funksjon.
en spesiell rop ut til joi, pg og knex. Disse bibliotekene er ikke full ORMs, men de er gode på hva de gjør. Hvis du ikke trenger EN full blåst ORM, ta en titt og se om de kan løse dine behov.
Konklusjon
totalene gjenspeiler den samlede nytten av hver løsning. De 5 beste resultatene var:
- Loopback
- Waterline
- Mongoose
- TypeORM
- Sequelize
en kombinasjon av prosjektspesifikke behov, utelatte faktorer og personlige preferanser fører til de 3 beste valgene.Vannlinjen er tungt integrert i Seilrammen, Og Mongoose støtter Bare MongoDB.
Sequelize Og NodeORM2 er begrenset TIL SQL og de mangler API generasjon.På Grunn Av TypeScript-syntaksen integrerer TypeORM pent med Et Vinkelprosjekt.
som utvikler anbefaler jeg prototyping mer enn en toppløsning for å identifisere den virkelige vinneren. Topp 3 løsninger, som er alle prototyping kandidater, inkluderer:
- Loopback
- TypeORM
- Caminte
jeg sendte denne informasjonen til andre utviklere på prosjektet, og som et team bestemte vi oss for å prøve Ut TypeORM først. Kom tilbake senere for retrospektiv!