Code Smell 186 - Hardcoded Business Conditions
Maximiliano Contieri
Engineering Manager@Avature | CS Teacher@UBA | Book Author@O'Reilly | MaximilianoContieri.com
You are FTX and your code allows special cases
TL;DR: Don't add hard business rules to your code.
Problems
Solutions
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
Conclusion
If you make code reviews, pay special attention to this kind of hard coding.
Relations
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
This article is part of the CodeSmell Series.