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

HUOMAUTUS: Toukokuu 2018: Lue TypeORMista LoopBack: Retrospektiivipäivitetystä näkökulmasta!

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

Tässä artikkelissa tarkastellaan Object Relational Mapping (ORM) -ratkaisuja JavaScript-ekosysteemissä ja tunnistetaan ihanteellinen ratkaisu erityisvaatimusten perusteella.

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

ORM-ratkaisut ovat hyödyllisiä datapohjaisen sovellusliittymän kehittämisen helpottamiseksi. Käyttäjillä on konkreettisia tarpeita, jotka ohjaavat sovelluksen tietomallia. Vanhassa kehityksessä tämä tietoarkkitehtuuri on tyypillisesti toteutettu ja versiohallittu käyttämällä tietokantakoodeja, kuten SQL-komentosarjoja. Sitten palvelinsovelluksessa käytetään erillistä kirjastoa CRUD-toimintojen suorittamiseen tietokannassa.

ORM: t toimivat korkean tason API: na CRUD: n suorittamiseksi, ja nykyään laadukkaat ORM: t mahdollistavat myös tietojen alustamisen koodin avulla. Tietojen monimutkainen käsittely, puhdistus ja niin edelleen on koodissa usein helpompaa. Vaikka erillisiä purku-, muunnos- ja lataustyökaluja (ETL) on olemassa, samat ETL-tehtävät voidaan helposti toteuttaa ORM: ssä.

Pura-, muunnos- ja lataus koodilla -toiminnon avulla järjestelmä voi integroida helpommin tietoja hyvin erilaisista lähteistä. SQL-tietokannat, joissa on useita makuja, NoSQL-tiedot, tiedostojärjestelmätiedot ja kolmansien osapuolten tiedot, voidaan kaikki integroida yhdeksi kieleksi JavaScript ORM: n avulla.

Lopuksi, koodisuuntautunut tiedonhallinta antaa järjestelmän myös toteuttaa datan käytön ajon aikana tai rakennusprosessissa ja mukauttaa käytön joustavasti kehitysprosessin aikana tarpeen mukaan.

ORM: t parantavat kehittäjien tuottavuutta tarjoamalla korkean tason sovellusliittymän yhdellä kielellä ja toiminnallisuudella, joka perinteisesti vaatii useita erilaisia ​​työkaluja ja taitoja. Vähemmän taitotarpeita, työkalutarpeita ja tarvittavia tunteja helpottaa projektimarginaalia. Ennakoimattomat vaatimukset ja projektin aikajana voidaan valmistaa paremmin joustavalla koontiversiolla ja ajonaikaisella datakonfiguraatiolla.

Ensisijaiset ORM-ominaisuudet

Tähän ORM-tarkasteluun johtava erityinen projektikonteksti edellyttää huipputason, CMS-tyyppisen, universaalin JavaScript-sovelluksen käyttöönottoa.

Huippuluokan universaaleilla JavaScript-kehyksillä on pääosin 3 makua: Angular, React ja Vue. Toisin sanoen Angular Universal, Next ja Nuxt.

Solmu tukee natiivisti tiedostojärjestelmäoperaatioita, joten sisällönhallintajärjestelmän tietovaatimukset suosivat laaja-alaista tietokantatukea. Seuraavat vaatimukset otetaan huomioon:

  1. Tuki Mongolle ja MySQL: lle, etusijalla lisävaihtoehtojen tuki
  2. Integroi Webpackiin
  3. Integroi Expressin kanssa
  4. Minimaalinen osuma suoritukseen ajon aikana
  5. Intuitiivinen syntakse
  6. Lisäominaisuudet
  7. Korkea Github-tähti / emissiosuhde
  8. Ylläpidetään aktiivisesti ilman rakennusvirheitä tai vanhentuneita riippuvuuksia

Ehdokkaat ja tulokset

Kukin ehdokas sai pisteet välillä 0-10 jokaisesta suositusta kyvystä. Pisteet 5 tarkoittavat hyväksyttävää. Sarakkeen keskiarvo voi olla enemmän tai vähemmän kuin 5. Esimerkiksi ORM, joka tukee useita NoSQL-tietokantoja eikä minkään SQL-tietokannan tukea, saa pistemäärän välillä 2 ja 4. 0 osoittaa, että ominaisuudesta puuttuu täydellinen.

Erityinen huuto joille, sivulle ja knexille. Nämä kirjastot eivät ole täydellisiä ORM-tiedostoja, mutta ne ovat hienoja tekemisessään. Jos et tarvitse täysin puhallettua ORM: ää, katso ja katso, pystyvätkö ne vastaamaan tarpeisiisi.

Johtopäätös

Kokonaisarvot heijastavat kunkin ratkaisun yleistä hyödyllisyyttä. Viisi parasta tulosta olivat:

  1. Silmukka
  2. Vesiviiva
  3. Mungo
  4. TyyppiORM
  5. Jatka

Yhdistelmä projektikohtaisia ​​tarpeita, pois jätetyt tekijät ja henkilökohtaiset mieltymykset johtavat 3 parhaan valinnan joukkoon.

Vesilinja on integroitu vahvasti Sails-kehykseen, ja Mongoose tukee vain MongoDB: tä.

Sequelize ja NodeORM2 on rajoitettu SQL: ään, ja niiltä puuttuu API-sukupolvi.

TypeScript-syntaksin ansiosta TypeORM integroituu hienosti kulmaprojektiin.

Kehittäjänä suosittelen prototyyppien tekemistä useammalle kuin yhdelle huippuratkaisulle todellisen voittajan tunnistamiseksi. Kolme parasta ratkaisua, jotka kaikki ovat prototyyppikandidaatteja, ovat:

  1. Silmukka
  2. TyyppiORM
  3. Caminte

Lähetin nämä tiedot muille projektin kehittäjille, ja tiiminä päätimme kokeilla ensin TypeORMia. Tarkista myöhemmin myöhemmin takautuvasti!

Mitä mieltä olet tästä tuloksesta? Jätä kommentti tai lisää ajatuksiasi tähän Slant-vertailuun.