The pasta theory of design

  • Spaghetti: each piece of code interacts with every other piece of code [can be implemented with GOTO, functions, objects]
  • Lasagna: code has carefully designed layers. Each layer is, in theory independent. However low-level layers usually cannot be used easily, and high-level layers depend on low-level layers.
  • Ravioli: each part of the code is useful by itself. There is a thin layer of interfaces between various parts [the sauce]. Each part can be used elsewhere.
  • …but sometimes, the user just wants to order Ravioli, so one coarse-grain easily definable layer of abstraction on top of it all can be useful.

(from Twisted Matrix documentation)

Leave a Reply