Ex: Dropdown-Menü for
Second place: All territory, no map.
Is there a design document? An architecture description? Comments that tell why, not just what? If a new person starts work on the code, do they have to step through it to figure out what's going on, or is there a map, signposts, and a guidebook?
There is a reason we like to think of objects as something that when constructed is valid and reusable, regardless of language. Even most decent C code looks like conservative object-oriented programming.
ManagedHttpService calls HttpService which calls HttpManager which calls HttpClient. None of the above actually speaks 'http'; all of the actual http code lives in an apache dependency referred to inside HttpClient.
doAwesome(thing.otherThing().somethingElse());
LOGGER.info("I used {}", thing.otherThing().somethingElse());
// or its friend, this horseshit
if (thing.otherThing().somethingElse() != null) {
doSomething(thing.otherThing().somethingElse());
} else {
LOGGER.warn("somethingElse was null "+thing.otherThing());
}
(we will ignore the Law of Demeter for the purposes of this rant, since in my professional experience that ship has sailed)