Koji JavaScript ORM biste trebali koristiti u 2018?

NAPOMENA: svibanj 2018 .: Čitanje s TypeORM na LoopBack: Retrospektivaza ažuriranu perspektivu!

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Ovaj članak pregledava rješenja objektnog relacijskog mapiranja (ORM) u ekosustavu JavaScript i identificira idealno rješenje na temelju specifičnih zahtjeva.

Što je ORM i zašto je toliko važan?

ORM rješenja korisna su za olakšavanje razvoja API-ja vođenog podacima. Korisnici imaju konkretne potrebe koje pokreću podatkovni model aplikacije. U naslijeđenom se razvoju ova arhitektura podataka obično implementira i kontrolira verzijom pomoću skripti baze podataka kao što su SQL skripte. Zatim se zasebna knjižnica koristi za poslužiteljsku aplikaciju za izvršavanje CRUD akcija u bazi podataka.

ORM-ovi rade kao API visoke razine za izvršavanje CRUD-a, a danas nam kvalitetni ORM-ovi također omogućuju inicijalizaciju podataka putem koda. Složena manipulacija podacima, čišćenje i tako dalje često je jednostavnija u kodu. Iako postoje izdvojeni alati Extract, Transform and Load (ETL), isti se ETL zadaci mogu lako implementirati u ORM.

Implementacija izdvajanja, transformacije i učitavanja kodom omogućuje sustavu lakšu integraciju podataka iz vrlo različitih izvora. SQL baze podataka s više okusa, NoSQL podaci, podaci datotečnog sustava i podaci treće strane mogu se integrirati u jedan jezik s JavaScript ORM-om.

Konačno, kontrola podataka orijentirana na kôd također omogućuje sustavu da implementira upotrebu podataka u vrijeme izvođenja ili u procesu izrade i fleksibilno prilagođava upotrebu tijekom procesa razvoja prema potrebi.

Da se ponove, ORM-ovi poboljšavaju produktivnost programera pružajući API na visokoj razini, na jednom jeziku, s funkcionalnošću koja bi tradicionalno zahtijevala nekoliko različitih alata i skupova vještina. Manje potreba za vještinama, potrebnim alatima i potrebnim satima olakšava maržu projekta. Nepredviđeni zahtjevi i vremenski slijed projekta bolje se pripremaju fleksibilnom konfiguracijom podataka za izradu i vrijeme izvođenja.

Poželjne ORM mogućnosti

Konkretni kontekst projekta koji dovodi do ovog pregleda ORM-a zahtijeva implementaciju vrhunske univerzalne JavaScript aplikacije nalik CMS-u.

Vrhunski univerzalni JavaScript okviri dolaze u osnovi u 3 okusa: Angular, React i Vue. To će reći Angular Universal, Next i Nuxt.

Čvor izvorno podržava operacije datotečnog sustava, tako da zahtjevi za podacima sustava upravljanja sadržajem daju prednost širokoj podršci baze podataka. Ukupno se uzimaju u obzir sljedeći zahtjevi:

  1. Podrška za Mongo i MySQL, uz prednost dodatnim opcijama
  2. Integrirajte se s Webpackom
  3. Integrirajte se s Expressom
  4. Minimalan broj pogodaka za vrijeme izvođenja
  5. Intuitivna sintaksa
  6. Dodatne značajke
  7. Visok omjer zvijezde i emisije Github
  8. Aktivno se održava bez kvarova u gradnji ili zastarjelih ovisnosti

Kandidati i rezultati

Svaki je kandidat dobio ocjenu između 0 i 10 za svaku željenu sposobnost. Ocjena 5 znači prihvatljivo. Prosjek za stupac može biti više ili manji od 5. Na primjer, ORM s podrškom za više NoSQL baza podataka i bez podrške za bilo koju SQL bazu podataka dobit će ocjenu između 2 i 4. 0 ukazuje na potpuni nedostatak značajke.

Posebna vika za joi, pg i knex. Te knjižnice nisu pune ORM-ove, ali sjajne su u onome što rade. Ako vam nije potreban potpuni ORM, pogledajte i pogledajte mogu li odgovoriti na vaše potrebe.

Zaključak

Ukupni iznosi odražavaju ukupnu korisnost svakog rješenja. Top 5 rezultata bili su:

  1. Loopback
  2. Waterline
  3. Mungos
  4. TipORM
  5. Sekvelizirati

Kombinacija potreba specifičnih za projekt, izostavljenih čimbenika i osobnih preferencija dovodi do tri najbolja izbora.

Waterline je jako integriran u okvir Sails i Mongoose podržava samo MongoDB.

Sequelize i NodeORM2 ograničeni su na SQL i nedostaje im generiranje API-ja.

Zahvaljujući TypeScript sintaksi, TypeORM se lijepo integrira s Angular projektom.

Kao programer, preporučujem izradu prototipa više od jednog vrhunskog rješenja za prepoznavanje pravog pobjednika. Tri najbolja rješenja, koja su svi kandidati za izradu prototipa, uključuju:

  1. Loopback
  2. TipORM
  3. Caminte

Te sam podatke poslao drugim programerima na projektu i kao tim odlučili smo prvo isprobati TypeORM. Provjerite kasnije za retrospektivu!

Što mislite o ovom rezultatu? Ostavite komentar ili dodajte svoje mišljenje ovoj usporedbi Slant.