fredag 5 juli 2013

ORM jag hatar dig

En vecka senare har jag besegrat NHibernate och lyckats få en tabell i en databas att bli en användbar entitet i ett C# projekt. Kalla mig seg, men varför ska det vara så krångligt? Jag är uppenbarligen ny till ORM, men jag har tidigare använt Microsofts Entity Framework och tycker att den funkar som det borde funka.

När man jobbar med NHibernate och måste manuellt själv skriva ut alla kopplingar mot tabellerna istället för att skriva SQL kod måste man fråga sig om det är värt det. Om man istället låter det ske automagiskt likt Entity Frameworks lösningen tycker jag att det är värt det. Antagligen finns det liknande lösningar för NHibernate.

Det jag vill komma till är varför man, år 2013 fortfarande, måste bry sig om hur man sparar data i en databas?

Jag har börjat pilla med Node.js och ramlade över ett ramverk som heter Meteor.js. Det använder sig av MongoDb som är en NoSQL databas. Du skriver din data objekt i JSON, du sparar det i JSON, och hämtar det i JSON. Du behöver inte hålla på och konvertera, mappa, och bry dig om datatyper. Du använder dina entiteter hela vägen.

För mig känns detta helt naturligt att det är så här det borde funka. Jag tror att många som jobbat i branschen är inrutade på SQL-databaser och ORM. Det är så man har jobbat och det är så det funkar. Det är naturligt.

Det som jag tycker är det stora problemet med SQL och ORM är att så mycket tid går åt att göra saker som inte ger någon direkt nytta. Att göra så att databasen och applikationen kan prata med varandra är dötid. Det ger inget värde till beställaren. Fördelen med SQL är bättre prestanda. Men, det är på bekostnad av krånglighet. Jag tror att de allra flesta systemutvecklingsprojekten inte är beroende av den typen av prestanda som SQL ger. NoSQL är redo och har en en bra prestanda. Jag tror användaren kan vänta några extra millisekunder om de sparar pengar och tid på deras projekt!