CodeSOD: The Getter Setter Getter
Today's Java snippet comes from Capybara James.
The first sign something was wrong was this:
private Map<String, String> getExtractedDataMap(PayloadDto payload) { return setExtractedDataToMap(payload); }Java conventions tell us that a get method retrieves a value, and a set method mutates the value. So a getter that calls a setter is… confusing. But neither of these are truly getters nor setters.
setExtractedDataToMap converts the PayloadDto to a Map<String, String>. getExtractedMap just calls that, which is just one extra layer of indirection that nobody needed, but whatever. At its core, this is just two badly named methods where there should be one.
But that distracts from the true WTF in here. Why on Earth are we converting an actual Java object to a Map<String,String>? That is a definite code smell, a sign that someone isn't entirely comfortable with object-oriented programming. You can't even say, "Well, maybe for serialization to JSON or something?" because Java has serializers that just do this transparently. And that's just the purpose of a DTO in the first place- to be a bucket that holds data for easy serialization.
We're left wondering what the point of all of this code is, and we're not alone. James writes:
I found this gem of a code snippet while trying to understand a workflow for data flow documentation purpose. I was not quite sure what the original developer was trying to achieve and at this point I just gave up
[Advertisement] Picking up NuGet is easy. Getting good at it takes time. Download our guide to learn the best practice of NuGet for the Enterprise.Was the high-heeled shoe invented because of one Queen's sexual jealousy?
Royal daughters who have raided their mother's designer wardrobes - and vice versa
Inside James Middleton's low-key marriage to Alizée Thevenet and how Kate's sister-in-law gained the royal seal of approval after an unexpected meeting
A third of side hustles bring in less than £100 a month
World-beating ovens, engineers and hidden gems: Why European small caps could be a boon for investors
How sustainable are EVs and why is the Government only offering grants to 'truly green' electric cars?
Police warning as drug dealer found with drugs inside vape in Maldon
Just because you can render a Doom-like in SQL doesn't mean you should
The world has moved on from making Doom run on increasingly ridiculous devices. Now it's all about porting it to the most inappropriate of languages. Cue DOOMQL, a version of the shooter written in pure SQL.…
NASA bars Chinese citizens from its facilities, networks, even Zoom calls
NASA has barred Chinese nationals from accessing its premises and assets, even those who hold visas that permit them to reside in the USA.…