Good Code
The good version gives the shape a name and makes every field explicit.
Lesson 07
Use dataclasses for stable internal data shapes instead of loose dictionaries with repeated string keys.
from dataclasses import dataclass
@dataclass(frozen=True)
class ReviewSummary:
review_id: int
title: str
approved: bool
def summarize_review(review):
return ReviewSummary(
review_id=review.id,
title=review.title,
approved=review.status == "approved",
)def summarize_review(review):
return {
"id": review.id,
"name": review.title,
"ok": review.status == "approved",
}The good version gives the shape a name and makes every field explicit.
The bad version returns a loose dictionary with vague keys. Callers have to remember what "name" and "ok" mean, and typos will be found late.