Identification
At times, even after we have tried to make the various parts of our code as small and modular as we can, there are cases when we still have to create some complex objects.
In a hypothetical software project that's being used in the airline industry, you might come across code like this:
const plane = new Airplane(); plane.type = PlaneType.Passenger; plane.engine = new PassengerPlaneEngine(); plane.hasFirstClass = true; plane.hasBathroom = false; plane.numberOfSeats = 100; // etc.
As a smaller sample of a larger piece of code, this might not look too bad.
What you'll probably find is that this kind of code will be copied and pasted into other places. So, whenever we need to create a passenger plane that has 100 seats, someone might decide to copy and paste this code just this one time.
Especially in teams with less experienced developers (even developers who've been in the industry for years can be inexperienced!), you'll often find...