Don't you validate your structs?
Hi all!
I'm new in Golang, and the first issue I'm facing is struct validation.
Let's say I have the given struct
type Version struct {
Url string `json:"url"`
VersionNumber VersionNumber `json:"version_number"`
}
The problem I have is that I can initialize this struct with missing fields.
So if a function returns a `Version` struct and the developer forgets to add all fields, the program could break. I believe this is a huge type-safety concern.
I saw some mitigation by adding a "constructor" function such as :
func NewVersion (url string, number VersionNumber) { ... }
But I think this is not a satisfying solution. When the project evolves, if I add a field to the Version struct, then the `NewVersion` will keep compiling, although none of my functions return a complete Version struct.
I would expect to find a way to define a struct and then make sure that when this struct evolves, I am forced to be sure all parts of my code relying on this struct are complying with the new type.
Does it make sense?
How do you mitigate that?