3 ms·
I love orms. They make a simple crud operation so easy, you don't even have to think about them. Every remotely competent developer will however tell you that
by y4mi 7y ago
I love orms.
They make a simple crud operation so easy, you don't even have to think about them.
Every remotely competent developer will however tell you that there are always cases where the orm is a bad fit. And that's exactly why basically all orms let you write your own queries.
There is really no reason not to use an orm. Just don't ever frown on people doing anything more advanced than a middle join without it.
- megous 7y agoYou don't need ORM for simple CRUD operations. All you need is a function you can pass a table name and a map of column names/values you want to insert/update.
- dpcx 7y agoUntil you want to be able to sort and filter and do all of the other things that most CRUD applications do. Once you're there, if you're doing SQL directly, now you're manipulating strings in your code, instead of being able to build some kind of object that then generates a query for you.
- stefanfisk 7y agoIt sounds like you are conflating an ORMs with query builders?
- dpcx 7y agoQuery builders and ORMs often go hand in hand in my experience, as the ORM will expose the ability to perform custom querying capabilities around the specific object you're working with; however, you're correct in that I am more considering query builders than ORMs directly in this instance.
- macNchz 7y agoYeah if you’re doing lots of CRUD that approach quickly becomes an exercise in writing your own (bad, buggy) ORM.
- megous 7y agoNot at all. The only cumbersome thing about SQL, that is common enough and unpleasant to always spell out by hand are basic INSERT and UPDATE commands. I use a set of 3-4 functions that I reuse pretty much in all my programs for this. It's no ORM, as it doesn't map classes to tables/data in the database. It's just a shortcut to generate and execute INSERT/UPDATE commands on arbitrary tables with arbitrary columns. Also it has zero bugs, because you can hardly create bugs in something so simple.
- throwawaycorn 7y ago> you can hardly create bugs in something so simple. You may have underestimated how bad things are in some of the unicorns.. 1. Creating your own query builder before understanding the purpose of bind param: https://medium.com/tokopedia-engineering/dynamic-sql-query-builder-in-golang-2c71e2c21ff8 https://medium.com/tokopedia-engineering/dynamic-sql-query-b... 2. ??? 3. Profit from SQL injection: https://www.youtube.com/watch?v=PKkNjOweWTE https://www.youtube.com/watch?v=PKkNjOweWTE