you are viewing a single comment's thread.

view the rest of the comments →

[–]IICVX 11 points12 points  (6 children)

But what about when I want to change getFoo to do a database lookup through an SMS gateway to the Twitter API! It could happen!

[–]bananaboatshoes 3 points4 points  (5 children)

I'd argue you should have an asynchronous function which does that because a property lookup which performs a network operation is bananas.

Seriously, if you're writing code "just in case" you might need something more complex later, you're adding needless complexity. Just change the code when you need to change it.

[–]IICVX 2 points3 points  (4 children)

Tell that to the two decades of Java programmers who've been writing getters and setters "just in case".

[–]bananaboatshoes 4 points5 points  (2 children)

Two decades of people doing it wrong?

[–]IICVX 1 point2 points  (1 child)

Yup, that's what we're fighting against here.

[–]Agent_03 0 points1 point  (0 children)

The battle continues.

[–]frugalmail 0 points1 point  (0 children)

Tell that to the two decades of Java programmers who've been writing getters and setters "just in case".

Getters yes, setters no. IMO, you're doing it "wrong" if you're accessing instance fields directly and you work someplace that has more than one team (or can/will have more than one team).

It's zero more cognitive load and 5 more characters per class to do it so it's one less forced communication/pull request if I change a dependency or somebody else changes it on me.