On Saturday, 19 November 2022 at 04:27:14 UTC, []() {}() wrote:
On Saturday, 19 November 2022 at 04:19:01 UTC, thebluepandabear
wrote:
oh. so i get it now. you have to refactor your class (change
member variable names and also do it in all places where they
are used througout the class. then add new methods,
overloading them in this way and that way, all because you're
initial design never factored in the possibility of change
(or even some validation of the vale being returned to the
client, or validation of value coming from the client).
after 10 years of doing all that, you may well come to the
conclusion that public member variables are not such a great
idea afterall ;-)
These days with modern IDEs it takes a second to change the
name of a variable globally. In production level code, it may
take more time, but I doubt by a lot.
Think about it, if you have a class with 20 different
variables that don't need any special rules to access, think
about the amount of code you would have to add for
getters/setters. Now in production level code you will have
thousands of these classes, and as such you will have a good
chunk of code that is practically useless and doing nothing.
By making your class member variables public, it is not clear
whether you forgot that you needed to validate incoming and
outgoing values, or whether you don't need to do this (not
ever).
If you did it because of the former, you're fired ;-)
If you did it because of the latter, you're also fired ;-)
Thankfully I only code in D as a hobby, so I don't need to use
getters/setters! Thanks.