ORMed and Dangerous | Ep 7
Manage episode 469440068 series 3642378
This week Kamran and Erik discuss when ORMs are helpful... or hurtful. They cover trade-offs, the spectrum of abstraction, the value of escape hatches, and the options available to you in the TypeScript ecosystem.
Week of February 17, 2025
- (05:54) - News: Ember 6.2 Released
- (07:16) - News: Deno 2.2 Released
- npm-check-updates package
- Package JSON Upgrade VS Code extension
- https://github.com/vuki656/package-info.nvim for Neovim
Community Highlights
- (16:48) - Community Highlights: UseTypeScript for Your Stored Procedures?!
- (17:20) - Community Highlights: Node API Compatibility Across Runtimes
- (17:58) - Community Highlight: Why Type Catalogs Can Be Better Than Unions
- (19:05) - Community Highlight: tapi.js Automatically Maps JSON to Strongly-Typed Classes
- (20:33) - Community Highlight: Standard Schema Hopes to Align TS Validator Libraries
- (21:34) - Community Highlight: 2ality: Read-only accessibility in TypeScript
Deep Dive: TypeScript ORMs
- (22:56) - Deep Dive: TypeScript ORMs
- (24:21) - Deep Dive: Code-first or Database-first?
- (25:42) - Deep Dive: What Pain Do ORMs Solve?
- (27:21) - Deep Dive: When Should You Use an ORM?
- Martin Fowler's ORM Hate article
- Primeagen's Don't Use an ORM reaction video
- (30:02) - Deep Dive: To Use An ORM Or Not to Use an ORM?
- (31:47) - Deep Dive: SQL Builders vs. Abstracted ORMs
- (32:28) - Deep Dive: Do You Have An Escape Hatch?
- (33:36) - Deep Dive: Are ORMs A Symptom of Poor Data Architecture?
- (37:01) - Deep Dive: TypeScript ORM Landscape
- (37:26) - Deep Dive: Drizzle ORM
- Fireship's Drizzle in 100 seconds
- Works with Deno, Bun, Node.js
- (42:06) - Deep Dive: Prisma ORM
- Works with Deno (unofficially) and Node.js
- Prisma is being rewritten in TypeScript
- (46:42) - Deep Dive: MikroORM
- (49:10) - Tangent: Kamran and Erik Exchange War Stories
- (50:48) - Deep Dive: MikroORM Continued
- (51:44) - Deep Dive: TypeORM
- (53:06) - Deep Dive: ConvexDB
- (55:00) - Deep Dive: sequelize
- (55:48) - Deep Dive: Other Alternatives
- (56:33) - Deep Dive: Takeaways / tl;dl
Secrets of the Handbook
- (57:47) - Branded / Nominal Types
- TypeScript Playground Example – Nominal Typing
- 400-comment GH issue on different ways to do nominal typing and trade-offs
- Michael Zalecki blog post on nominal types in TypeScript
- Branded Types from Learning TypeScript by Josh Goldberg
- Created a "sealed" method/class (example from Excalibur)
Links
- (01:04:25) - Cool Stuff: Kodaps Academy on Drizzle Versus Prisma
- (01:05:10) - Cool Stuff: jet Validators
- Reference: https://blog.logrocket.com/best-typescript-orms/
- Reference: https://www.sitepoint.com/javascript-typescript-orms/
- Reference: https://www.timsanteford.com/posts/choosing-the-best-typescript-orm-for-your-project/
Sponsored by Excalibur.js
Excalibur.js is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScrip...
11 episoder