I rarely use dataclasses anymore... | Issue #59


Hey everyone,

I was reviewing some of the projects I’ve worked on over the past year, and I noticed something interesting: I almost never use Python’s @dataclass anymore.

Not because it’s bad. In fact, dataclasses are still a great feature of the language. But as my projects have grown more complex, especially with tools like FastAPI, Pydantic, and SQLAlchemy, I’ve found that dataclasses just… don’t fit the way I design software anymore.

In my latest video, I dive into this in detail.

You’ll learn:

  • Why I used to reach for dataclasses all the time — and why I rarely do now
  • The tradeoffs between dataclasses and alternatives like Pydantic models
  • A real-world example using FastAPI, Pydantic, SQLAlchemy, and SQLite, with a clean, maintainable architecture

Even if you still love dataclasses, this video might give you a new perspective on where they fit best, and when they might be holding you back.

Happy coding!

Cheers,

Arjan


Do you enjoy my content on YouTube and would you like to dive in deeper?

🚀 Check out my online courses

My courses have helped thousands of developers take the next step in their careers. Check out these courses to help grow your skills and become a senior developer:

🔧 Need help with a complex codebase?

If your team is struggling with tech debt, unclear architecture, or cloud costs that keep creeping up, my team and I can help. We don’t just review, we get in and fix things. We’re only working with a few companies at a time to stay focused, so if it sounds like a fit:

Unsubscribe | Send by ArjanCodes

Wolvenplein 25, Utrecht, UT 3512 CK

The Friday Loop

Every Friday, you'll get a recap of the most important and exciting Python and coding news. The Friday Loop also keeps everyone posted on new ArjanCodes courses and any limited offers coming up.

Read more from The Friday Loop

Hi there, You’ve probably heard that serverless is the easiest way to deploy code to the cloud. And on the surface, it is. With Google Cloud Functions, you can literally deploy a simple Python function like this: def hello(request): return "Hello from Cloud!" A few lines of code. No servers. No infrastructure. But... there are quite a few limitations: No FastAPI or async support One route per function requirements.txt only, no pyproject.toml Cold starts for large dependencies No custom...

Hey there, Heard of MCP? It stands for Model Context Protocol: an open standard that lets AI models like Claude or ChatGPT connect to real tools and data. In my latest video, I explain what MCP actually is, and show a working example where Claude can search YouTube videos using MCP. In the video you’ll learn: Why AI models can’t just call your API How MCP bridges that gap Two ways to structure your MCP integration Happy coding! Cheers, Arjan # News Upcoming Python Documentary CultRepo...

Hi there, We all use def to define functions in Python. But did you know there are at least 7 other ways to do it? Some of them are useful. Some are questionable. And the last one is so ridiculous, it might crash your interpreter. In this week’s video, I walk through each method, explain how it works, why you should use it (or not), and what it teaches us about how Python works under the hood. This was a really interesting topic to explore. I learned a lot from it and I hope you will too....