Meh. The longer I'm in this profession, the less I like rules like this. This is dogma that tries to do something profound but kind of encourages the reader to ignore past experiences.
I don't agree with it, I use mixed visibility members in most languages I use. The closest "rule" to this that is more just a side effect of my experience is that most data members are private by default unless there is a public read/write contract, or if they are data members that are marked const in a language that supports such things.
Beyond that, employing any sort of rule generally means you're writing more code than necessary, or less code than is helpful, and inflicting that pain on consumers or colleagues.
Dogma is rarely the way to go, in my opinion. Being good at being pragmatic is certainly a skill, and it's much more powerful than a subjective rulebook.
I don't agree with it, I use mixed visibility members in most languages I use. The closest "rule" to this that is more just a side effect of my experience is that most data members are private by default unless there is a public read/write contract, or if they are data members that are marked const in a language that supports such things.
Beyond that, employing any sort of rule generally means you're writing more code than necessary, or less code than is helpful, and inflicting that pain on consumers or colleagues.
Dogma is rarely the way to go, in my opinion. Being good at being pragmatic is certainly a skill, and it's much more powerful than a subjective rulebook.