Lasagna Code
Software with too many layers of abstraction stacked on top of each other, making it difficult to understand or modify any single piece.
EverydayConcepts.io
Origin
Database expert Joe Celko coined the term in 1982, extending the pasta-code metaphor family: where spaghetti code describes tangled, unstructured flow, lasagna code describes excessive, layered abstraction. The "spaghetti code" metaphor had emerged from debates sparked by Edsger Dijkstra's 1968 critique of the GOTO statement. Celko's coinage completed what became known as the "pasta theory of programming," a family of anti-patterns that also includes ravioli code (over-encapsulated objects).
Updated February 22, 2026