Many years ago, I took part in the development of a taxi-hailing mobile app that is still widely used today. I don’t know what kind of code they’re running now, but in those early days, the driver assignment code –if I remember it correctly– was similar in spirit to the grossly simplified example that follows. There are five levels of nested if statements in less than 30 lines of code. It doesn’t look so bad, some might say, but it’s not difficult to imagine how complicated this code can become with just a few more checks…
Using early returns and ternary conditional operator changes
private boolean meetsRiderPreferences(Rider rider, Driver driver) { if (driver.rating >= 4.5) { if (rider.preferences.includes('Premium Driver')) { return driver.isPremiumDriver; } else { return true; } } else if (driver.rating >= 4.0) { return true; } else { return false; } }
to
private boolean meetsRiderPreferences(Rider rider, Driver driver) { if (driver.rating < 4.0) return false; if (driver.rating < 4.5) return true; return rider.preferences.includes('Premium Driver') ? driver.isPremiumDriver : true; }
dunno if java has them, but in C# switch expressions could put more of a case focus on the cases
or with a body expression
The conditional has a true result so it can be converted to a simple bool condition as well.