Mitä JavaScript ORM: ää sinun tulisi käyttää vuonna 2018?

John Vandivier

NOTE: May 2018: Read From TypeORM to LoopBack: A Retrospective for an updated perspective!

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

tässä artikkelissa tarkastellaan Object Relational Mapping (ORM) – ratkaisuja JavaScript-ekosysteemissä ja tunnistetaan ihanteellinen ratkaisu, joka perustuu tiettyihin vaatimuksiin.

mikä on ORM ja miksi se on niin tärkeä?

ORM-ratkaisut ovat hyödyllisiä datalähtöisen API-kehityksen helpottamiseksi. Käyttäjillä on konkreettisia tarpeita, jotka ohjaavat sovelluksen tietomallia. Legacy Developmentissa tämä tietoarkkitehtuuri toteutetaan ja versionhallitaan tyypillisesti tietokantakomentosarjoilla, kuten SQL-skripteillä. Tämän jälkeen palvelinsovellusta käytetään erillisessä kirjastossa crud-toimintojen suorittamiseen tietokannassa.

Ormit toimivat korkean tason OHJELMOINTIRAJAPINTANA CRUDIN toteuttamiseen, ja nykyään laadukkaat Ormit mahdollistavat myös datan alustamisen koodin avulla. Monimutkainen tietojen manipulointi, puhdistus ja niin edelleen, on usein helpompaa koodissa. Vaikka dedicated Extract, Transform and Load (ETL) – työkalut ovat olemassa, samat ETL-tehtävät voidaan helposti toteuttaa ORM: ssä.

toteutettaessa puretaan, muunnetaan ja Ladataan koodilla, voidaan järjestelmä integroida helpommin hyvin eri lähteistä saatuja tietoja. SQL tietokannat useita makuja, NoSQL tiedot, tiedostojärjestelmän tiedot, ja kolmannen osapuolen tiedot voidaan kaikki integroida yhden kielen JavaScript ORM.

lopuksi koodilähtöinen tiedonhallinta mahdollistaa myös järjestelmän datan käytön toteuttamisen suoritusaikana tai rakentamisprosessissa ja joustavasti käytön mukauttamisen kehitysprosessin aikana tarpeen mukaan.

orms parantaa kehittäjien tuottavuutta tarjoamalla korkean tason API: n yhdellä kielellä toiminnallisuudella, joka perinteisesti vaatisi useita erilaisia työkaluja ja taitoja. Vähemmän taitoja, työkaluja ja tunteja tarvitaan helpottaa hankkeen marginaali. Ennakoimattomat vaatimukset ja projektin aikajana on paremmin valmisteltu joustavalla rakenne-ja suoritusaikatietojen määrityksellä.

Suositut Orm-ominaisuudet

tähän ORM-katselmukseen johtavassa projektitilanteessa tarvitaan huippuluokan, CMS-kaltainen, universaali JavaScript-sovellus.

Cutting edge universal JavaScript frameworks come in perusluonteeltaan 3 flavors: Angular, React, and Vue. Toisin sanoen Angular Universal, Next ja Nuxt.

solmu tukee natiivisti tiedostojärjestelmän toimintoja, joten sisällönhallintajärjestelmän tietovaatimukset suosivat laajaa tietokantatukea. Yhteensä huomioon otetaan seuraavat vaatimukset:

  1. tuki Mongolle ja MySQL: lle, mieluummin tuki lisävaihtoehdoille
  2. integroida Webpackiin
  3. integroida Expressiin
  4. minimaalinen hit to performance at run time
  5. intuitiivinen syntaksi
  6. lisäominaisuudet
  7. Korkea Github star to issue ratio
  8. aktiivisesti ylläpidetty ilman rakentamisvirheitä tai vanhentuneita riippuvuuksia

ehdokkaat ja tulokset

jokainen ehdokas sai pisteet 0-10 jokaisesta ensisijaisesta valmiudesta. Pistemäärä 5 tarkoittaa hyväksyttävää. Sarakkeen keskiarvo voi olla enemmän tai vähemmän kuin 5. Esimerkiksi ORM, jolla on tuki useille NoSQL-tietokannoille ja ei tukea millekään SQL-tietokannalle, saa pisteet välillä 2-4. 0 osoittaa ominaisuuden täydellisen puuttumisen.

katso tätä viestiä tai Tätä Google Sheetiä napsauttamalla hyperlinkkejä tai kopioimalla tietoja taulukkona.

erikoishuuto joille, pg: lle ja knexille. Nämä kirjastot eivät ole täysiä Ormeja, mutta ne ovat hyviä siinä, mitä ne tekevät. Jos et tarvitse täysin puhallettu ORM, katsomaan ja katso, jos he voivat vastata tarpeeseen.

johtopäätös

loppusummat kuvastavat kunkin ratkaisun yleistä käyttökelpoisuutta. Top 5-tulokset olivat:

  1. Loopback
  2. aterline

  3. Mongoose
  4. Typeorm
  5. jatkokarsinta

projektikohtaisten tarpeiden, poisjääneiden tekijöiden ja henkilökohtaisten mieltymysten yhdistelmä johti top 3-valintoihin.

Waterline on vahvasti integroitu Sailsin kehykseen ja Mangusti tukee vain Mongodbia.

jatko-osa ja NodeORM2 rajoittuvat SQL: ään ja niistä puuttuu API-generointi.

TypeScript-syntaksin ansiosta TypeORM integroituu hienosti kulmikkaaseen projektiin.

kehittäjänä suosittelen useamman kuin yhden huippuratkaisun prototyyppaamista todellisen voittajan tunnistamiseksi. 3 parasta ratkaisua, jotka ovat kaikki prototyyppiehdokkaita, ovat:

  1. Loopback
  2. TypeORM
  3. Caminte

annoin tämän tiedon muille kehittäjille projektissa, ja tiiminä päätimme kokeilla Typeormia ensin. Tule myöhemmin katsomaan retrospektiiviä!

Vastaa

Sähköpostiosoitettasi ei julkaista.