Identification
One of the classic code smells is called primitive overuse.
It's deceptively simple.
Take this code, for example:
const email: string = user.email; if(email !== null && email !== "") { // Do something with the email. }
Notice that we are handling the email's raw data?
Or, consider this:
const firstname = user.firstname || ""; const lastname = user.lastname || ""; const fullName: string = firstname + " " + lastname;
Notice all that extra checking around making sure the user's names are not null
? You've seen code like this, no doubt.
What's Wrong Here?
What's wrong with this code? There are a few things to think about:
- That logic is not sharable and therefore will be duplicated all over the place.
- In more complex scenarios, it's hard to see what the underlying business concept represents (which leads to code that's hard to understand). ...