4 ms·
You can make bad technology choices today. For example, if you were using Typescript to build a mobile app, you might be tempted to use TypeORM (32k stars on G
by strken 3y ago
You can make bad technology choices today.
For example, if you were using Typescript to build a mobile app, you might be tempted to use TypeORM (32k stars on GitHub, been around since 2016, widely used). If you wanted to also use transactions and concurrency then this would be a mistake, because you would quickly find that TypeORM's SQLite adapter doesn't have a connection pool or locking for transactions, and will happily execute statements inside a transaction then roll them back without your knowledge.
- chucke 3y agoAnd I never heard of TypeORM until now, which means that it's not boring tech in my eyes. I find it hard to classify anything in the node world as boring, considering the infamous churn rate. Popular yes, boring no.
- flakes 3y agoIve been increasingly disliking ORMs in general lately. After a few days of trying to identify connection leaks and poorly optimized queries in a SQLAlchemy application, I’m starting to lose my hair. I think this actually speaks well to the point of the article. We can simplify the logic a lot by using boring tech, in this case, separating the query builder logic from the connection/transaction logic. Switching from one very complex ORM, to two more understandable simple systems, and getting back to more grass roots with querying.
- jpgvm 3y agoQuery builders are the way to go. The pick of the bunch is jOOQ IMO but not everyone is on the JVM but I would be looking for something similar if I had to code on a different platform.
- pharmakom 3y agoI think this shows that boring is a necessary but not sufficient criteria for good technology. ORM is a great example of something boring yet bad.
- raverbashing 3y agoI think the issue here is depending on transactions/concurrency in a locally running SQLite The fact that SQLite supports those is of course great, but maybe there are easier ways of serializing access to it.