Code Smell 186 - Hardcoded Business Conditions

Code Smell 186 - Hardcoded Business Conditions

You are FTX and your code allows special cases

TL;DR: Don't add hard business rules to your code.

Problems

  • Open / Closed Principle Violation
  • Hardcoding
  • Testability

Solutions

  1. Reify the condition.
  2. Create configuration options and set the exception on the configuration behavior.
  3. Don't use?Settings/Configs.

Context

According to?Reuters, in a recent FTX scandal, there was a hardcoded condition to skip risk controls to its own portfolio.

The code was explicit and developers were aware of that rule.

Sample Code

Wrong

if (currentExposure > 0.15 && customer != "Alameda") {
  // Be extra careful not to liquidate
  liquidatePosition();
}

        

Right

  customer.liquidatePositionIfNecessary(0.15);

  // This follows Tell, Don't ask principle        

Detection

[X] Semi-Automatic

We can search for primary hardcoded conditions (related to primitive types).

We might have more false positives than actual problems.

Tags

  • Hardcoding

Conclusion

If you make code reviews, pay special attention to this kind of hard coding.

Relations

Code Smell 133 - Hardcoded IF Conditions

Code Smell 29 - Settings / Configs

More Info

Disclaimer

Code Smells are just my?opinion.

Credits

Photo by?Alexander Mils?on?Unsplash


Computer science inverts the normal. In normal science, you're given a world, and your job is to find out the rules. In computer science, you give the computer the rules, and it creates the world.

Alan Kay

Software Engineering Great Quotes


This article is part of the CodeSmell Series.

How to Find the Stinky Parts of your Code

要查看或添加评论,请登录

社区洞察

其他会员也浏览了