Comparison
Big ball of mudvsSpaghetti code
Big ball of mud
you asked where the pricing logic lives and were told it depends which of five places you mean.
A system with no discernible structure, where everything can reach everything and the only way to know what a change affects is to run it. It is the most common architecture in the world because it is what accretes when nobody is empowered to say no to a shortcut. The relevant point in a review is that it is a destination, not an accident: each individual commit that built it looked fine.
Full entry →Spaghetti code
you traced the control flow with a finger and it went up, down and into a file you did not expect, twice.
Code with no discernible structure, where control jumps around and there is no unit you could describe or extract on its own. It is the original anti-pattern name and remains the accurate one for procedural code that has grown by accretion. It differs from a big ball of mud in scale: spaghetti is a method or a module, mud is a whole system.
Full entry →