Comment

Comment by yapp0

Go struct initialization doesn't provide a way to enforce that all required fields are set.

That becomes painful when a struct evolves: if you add a new field that is required from a business perspective, existing struct literals still compile until every call site is updated manually.

Constructors help but they don't scale well either, since argument lists quickly become hard to maintain.

I built a code generator tool papa-carlo that creates builders which enforce required fields at compile time. Missing fields result in a compile error rather than a runtime bug.

I wrote a short blog post about the motivation here: https://yappo.cc/posts/2026-02-16-papa-carlo

Would love feedback. Curious if others have run into this problem or solved it differently.

parent yapp0 7 months ago

No comments yet

Be the first to share your thoughts.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton