Skip to main content

The pasta theory of design

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 usefully 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.

An application design using Twisted's Aspect Oriented Programming Design is that special Ravioli.

http://twistedmatrix.com/projects/core/documentation/howto/tutorial/library.html