Melyik JavaScript ORM-et kell használni 2018-ban?

írta: John Vandivier

megjegyzés: 2018. május: olvassa el a TypeORM-tól a LoopBack-ig: retrospektív egy frissített perspektívához!

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Ez a cikk áttekinti az object Relational Mapping (ORM) megoldásokat a JavaScript ökoszisztémában, és konkrét követelményeken alapuló ideális megoldást határoz meg.

mi az ORM és miért olyan fontos?

az ORM megoldások hasznosak az adatvezérelt API-fejlesztés megkönnyítésére. A felhasználóknak konkrét igényeik vannak, amelyek az alkalmazás adatmodelljét vezérlik. A régi fejlesztés során ezt az adatarchitektúrát általában adatbázis-szkriptek, például SQL szkriptek segítségével hajtják végre és vezérlik. Ezután egy külön könyvtárat használnak a szerveralkalmazáshoz, hogy végrehajtsák a CRUD műveleteket az adatbázisban.

az ORMs magas szintű API-ként működik a CRUD végrehajtására, és manapság a minőségi ORMs lehetővé teszi az adatok inicializálását kódon keresztül. A komplex adatmanipuláció, tisztítás stb. gyakran könnyebb a kódban. Bár léteznek dedikált Extract, Transform and Load (ETL) eszközök, ugyanazok az ETL feladatok könnyen megvalósíthatók az ORM-ben.

az extract, transform és load kóddal történő implementálása lehetővé teszi a rendszer számára, hogy könnyebben integrálja a nagyon különböző forrásokból származó adatokat. SQL adatbázisok több ízek, NoSQL adatok, fájlrendszer adatok, és a harmadik féltől származó adatok mind integrálható egyetlen nyelv alatt a JavaScript ORM.

végül, a kódorientált adatvezérlés lehetővé teszi a rendszer számára az adatfelhasználás végrehajtását futási időben vagy az építési folyamatban, és szükség szerint rugalmasan adaptálja a felhasználást a fejlesztési folyamat során.

az ORMs a fejlesztők termelékenységének javítása érdekében magas szintű API-t biztosít egyetlen nyelven, olyan funkcionalitással, amely hagyományosan több különböző eszközt és készséget igényel. Kevesebb készségigény, szerszámigény és szükséges óra megkönnyíti a projekt margóját. Az előre nem látható követelmények és a projekt ütemterve rugalmasan elkészíthető és futtatható adatkonfigurációval jobban előkészíthető.

előnyben részesített ORM képességek

az ORM felülvizsgálatához vezető konkrét projektkörnyezet egy élvonalbeli, CMS-szerű, univerzális JavaScript alkalmazás megvalósítását igényli.

az élvonalbeli univerzális JavaScript keretrendszerek lényegében 3 ízűek: Angular, React és Vue. Ez azt jelenti, hogy az Angular Universal, a Next és a Nuxt.

Node natívan támogatja a fájlrendszer működését, így a tartalomkezelő rendszer adatkövetelményei a széles körű adatbázis-támogatás előnyben részesítését jelentik. Összességében a következő követelményeket veszik figyelembe:

  1. támogatja a Mongo és a MySQL, előnyben részesítve a támogatást a További lehetőségek
  2. integrálni Webpack
  3. integrálni Express
  4. minimális hit a teljesítmény futási idő
  5. intuitív szintaxis
  6. Extra funkciók
  7. magas Github csillag kérdés Arány
  8. aktívan karbantartott nem épít hibák vagy elavult függőségek

A jelöltek és eredmények

minden jelölt 0 és 10 közötti pontszámot kapott minden előnyben részesített képességért. Az 5-ös pontszám elfogadható. Az oszlop átlaga több vagy kevesebb lehet, mint 5. Például egy olyan ORM, amely több NoSQL adatbázist támogat, és egyetlen SQL adatbázist sem támogat, 2 és 4 közötti pontszámot kap. A 0 a funkció teljes hiányát jelzi.

tekintse meg ezt a bejegyzést vagy ezt a Google-lapot a hiperhivatkozásokra való kattintáshoz vagy az adatok táblázatként történő másolásához.

különleges kiáltás joi, pg és knex számára. Ezek a könyvtárak nem teljes ORMs, de ők nagy, amit csinálnak. Ha nincs szüksége egy teljes fújt ORMRA, nézze meg, hogy képesek-e kielégíteni az Ön igényeit.

következtetés

az összegek tükrözik az egyes megoldások általános hasznosságát. A top 5 eredmények a következők voltak:

  1. Loopback
  2. Waterline
  3. Mongoose
  4. TypeORM
  5. Folytatás

a projektspecifikus igények, a kihagyott tényezők és a személyes preferenciák kombinációja a legjobb 3 választáshoz vezet.

a Waterline erősen integrálva van a Sails keretrendszerbe, és a Mongoose csak a MongoDB-t támogatja.

a Sequelize és a NodeORM2 az SQL-re korlátozódik, és hiányzik belőlük az API-generáció.

a TypeScript szintaxis miatt a TypeORM szépen integrálódik egy Angular projektbe.

fejlesztőként azt javaslom, hogy egynél több top megoldást készítsen a valódi győztes azonosítására. A top 3 megoldások, amelyek mind prototípus jelöltek, a következők:

  1. Loopback
  2. TypeORM
  3. Caminte

elküldtem ezt az információt a projekt többi fejlesztőjének, és csapatként úgy döntöttünk, hogy először kipróbáljuk a TypeORM-ot. Nézz vissza később a retrospektív!

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.