Identification
A Monster
I once worked on a project that had a particular function with ~ 5,000 lines of code in it.
Yes – one function with about 5,000 lines of code.
Welcome to the real world.
Inside this function was basically one massive switch
statement with lots of nested if
statements.
It was really hard to understand.
Code like this is really common, though. One day, a developer comes along and adds a couple more conditionals. Another day, someone adds a few more. Next thing you know, it's a huge mess of nested conditionals that no one understands anymore.
A Closer Look
These nested conditionals can look something like this:
let result: OrderResult = null; if(!order.wasCancelled()) { if(order.isPaid()) { result = order.sendToShipping(); } else { if(order.isFraudulent()) { result = order.sendToFraudDept(); } else { result = order.tryAgainLater(); } } } return result...