Který JavaScript ORM byste měli používat v roce 2018?

John Vandivier

POZNÁMKA: Květen 2018: Čtení Z TypeORM pro LoopBack: Retrospektivní pro aktualizovaný pohled!

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

Tento článek se zabývá Objektově Relační Mapování (ORM) řešení v Javascriptu ekosystému, a identifikuje ideální řešení na základě konkrétních požadavků.

co je ORM a proč je tak důležité?

řešení ORM jsou užitečná pro usnadnění vývoje API založeného na datech. Uživatelé mají konkrétní potřeby, které řídí datový model aplikace. Ve vývoji starších dat je tato datová Architektura obvykle implementována a verze řízena pomocí databázových skriptů, jako jsou skripty SQL. Pro serverovou aplikaci je pak použita samostatná Knihovna k provádění akcí CRUD v databázi.

ORMs fungují jako API na vysoké úrovni pro spuštění CRUD a v dnešní době nám kvalita ORMs také umožňuje inicializovat data pomocí kódu. Složitá manipulace s daty, čištění a tak dále, je často jednodušší v kódu. Zatímco existují specializované nástroje pro extrakci, transformaci a načtení (ETL), stejné úkoly ETL lze snadno implementovat v ORM.

implementace extract, transform a load s kódem umožňuje systému snadněji integrovat data z velmi odlišných zdrojů. SQL databáze více příchutí, dat NoSQL, dat souborového systému a dat třetích stran mohou být integrovány do jednoho jazyka s ORM JavaScriptu.

a Konečně, kód orientované řízení dat umožňuje systém realizovat využití dat v době běhu nebo v procesu sestavení, a pružně přizpůsobit využití v procesu vývoje, jak je potřeba.

zopakovat, ORMs zlepšit produktivitu vývojářů tím, že poskytuje high-level API, v jediném jazyce, s funkčností, která by tradičně vyžadují několik různých nástrojů a dovedností. Méně potřeb dovedností, potřeb nástrojů a požadovaných hodin usnadňuje marži projektu. Nepředvídané požadavky a časová osa projektu jsou lépe připraveny s flexibilní konfigurací dat sestavení a běhu.

preferované možnosti ORM

konkrétní kontext projektu vedoucí k této recenzi ORM vyžaduje implementaci špičkové, CMS-like, univerzální JavaScript aplikace.

Cutting edge univerzální javascriptové rámce přicházejí v podstatě ve 3 příchutích: Angular, React a Vue. To znamená Úhlové univerzální, další a Nuxt.

Node nativně podporuje operace se souborovým systémem, takže požadavky na systémová data pro správu obsahu představují přednost pro rozsáhlou podporu databáze. Celkově se berou v úvahu následující požadavky:

  1. Podpora pro Mongo a MySQL, s preferencí na podporu další možnosti
  2. Integrace s Webpack
  3. Integrace s Expresní
  4. Minimální zásah do výkonu při spuštění
  5. Intuitivní syntaxe
  6. Další funkce
  7. Vysoká Github hvězdičkový vydat poměr
  8. Aktivně udržované, bez stavět selhání nebo zastaralé závislosti

Kandidáti a Výsledky

Každý kandidát obdržel skóre mezi 0 a 10 pro každý preferované schopnosti. Skóre 5 znamená přijatelné. Průměr sloupce může být větší nebo menší než 5. Například ORM s podporou více databází NoSQL a bez podpory jakékoli databáze SQL obdrží skóre mezi 2 a 4. 0 označuje úplný nedostatek funkce.

zobrazit tento příspěvek nebo tento list Google a kliknout na hypertextové odkazy nebo zkopírovat data jako tabulku.

speciální výkřik pro joi, pg a knex. Tyto knihovny nejsou plné ORMs, ale jsou skvělé v tom, co dělají. Pokud nepotřebujete plně foukané ORM, podívejte se a uvidíme, jestli mohou řešit vaše potřeby.

závěr

součty odrážejí celkovou užitečnost každého řešení. Top 5 výsledky jsou:

  1. Lokální
  2. Ponoru
  3. Mongoose
  4. TypeORM
  5. Sequelize

kombinace projekt-specifické potřeby, vynechány faktory, a osobní preference vést k top 3 tipy.

Waterline je silně integrován do rámce Sails a Mongoose podporuje pouze MongoDB.

Sequelize a NodeORM2 jsou omezeny na SQL a postrádají generování API.

díky syntaxi TypeScript se TypeORM pěkně integruje s úhlovým projektem.

jako vývojář doporučuji prototypovat více než jedno nejlepší řešení k identifikaci skutečného vítěze. Top 3 řešení, které jsou všechny prototyping kandidátů, patří:

  1. Lokální
  2. TypeORM
  3. Caminte

jsem předložil tyto informace s ostatními vývojáři na projektu, a jako tým jsme se rozhodli vyzkoušet TypeORM první. Podívejte se později na retrospektivu!

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.