Spring GDS 25è Aniversari
Una empresa de logística que envia a 190 països va construir alguna cosa per enviar-se a si mateixa.
El mapatge objecte-relacional és una capa que et permet treballar amb una base de dades relacional a través dels objectes del teu llenguatge de programació en lloc de SQL pur. Una fila d'una taula d'usuaris es converteix en un objecte User. Llegir, crear i actualitzar registres passa mitjançant crides a mètodes, i l'ORM genera el SQL per sota. Les columnes de la base de dades es mapegen a camps de l'objecte, i les relacions a referències entre objectes.
La idea és mantenir el desenvolupador en un únic model mental. Penses en objectes i relacions, no en joins ni àlies de taules, i l'ORM també s'ocupa de detalls tediosos i propensos a error, com escapar les entrades per prevenir injecció SQL. La contrapartida és una capa d'abstracció que pot amagar el que la base de dades fa en realitat. La trampa clàssica és el problema de les N+1 consultes, on carregar una llista i després tocar les relacions de cada element dispara centenars de petites consultes en lloc d'un sol join eficient. Un equip que llista 50 entrades de blog amb els seus autors pot provocar sense voler 51 consultes a través d'un ORM, quan un únic join hauria bastat, llevat que indiquin a l'ORM que carregui la relació de manera anticipada.
Prisma, TypeORM, Drizzle, Sequelize, Hibernate i l'ORM de Django són exemples habituals. La majoria permet baixar a SQL pur per a les consultes que l'abstracció resol malament.
Fem servir un ORM per al gruix de l'accés a dades d'una aplicació, perquè fa que els casos comuns siguin ràpids d'escriure, segurs davant la injecció i fàcils de llegir mesos després. On de debò aporta és en el noranta per cent de les consultes, les senzilles. La disciplina és saber que existeix l'altre deu per cent i no fingir que la base de dades ha desaparegut només perquè hi hagi un objecte endreçat al davant.
Per això vigilem les consultes que un ORM genera de debò, sobretot els patrons N+1 que semblen innocus al codi i esclafen una base de dades sota càrrega real. Per als informes pesats i les agregacions complexes en què un ORM lluita contra el problema, baixem a SQL escrit a mà i el mantenim llegible. Aquest equilibri entre productivitat i control recorre el nostre desenvolupament d'aplicacions web a mida i el nostre desenvolupament web, on la capa de dades decideix en silenci si un producte continua sent ràpid a mesura que creix.
L'aplicació s'alenteix a mesura que creixen les teves dades? La capa de consultes sol ser la culpable. Fem-hi un cop d'ull.
Una empresa de logística que envia a 190 països va construir alguna cosa per enviar-se a si mateixa.
Convertir una marca en un negoci que funciona.
Mig milió de persones. Una app. Zero caos.















