Ted Leung on the air
Ted Leung on the air: Open Source, Java, Python, and ...
Ted Leung on the air: Open Source, Java, Python, and ...
Tue, 28 Oct 2003
Big Ball of Mud
Foote and Yoder have a paper in PLoP 4 called
Big Ball of Mud where they try to understand the forces that lead to the Big Ball of Mud (also known as spaghetti code) architecture, identify some patterns that lead to a Big Ball of Mud, and find ways to improve code that has become a Big Ball of Mud.
There are some interesting observations:
[16:35] |
[computers/programming] |
# |
TB |
F |
G |
0 Comments |
When it comes to software architecture, form follows function. Here we mean "follows" not in the traditional sense of dictating function. Instead, we mean that the distinct identities of the system's architectural elements often don't start to emerge until after the code is working.From Brooks' 25th Anniversary Edition of The Mythical Man Month:
One always has, at every stage, in the process, a working system. I find that teams can grow much more complex entities in four months than they can build.On layers:
Most interactions in a system tend to be within layers, or between adjacent layers. Individual layers tend to be about things that change at similar rates. Things that change at different rates diverge. Differential rates of change encourage layers to emerge....
Slowly evolving objects are bulwarks against change. They embody the wisdom that the system has accrued in its prior interactions with its environment. Like tenure, tradition, big corporations, and conservative politics, they maintain what has worked. They worked once, so they are kept around. They had a good idea once, so maybe they are a better than even bet to have another one.
The Selfish Class
I've been reading Foote and Yoder's PLoP3 paper,
The Selfish Class. The title is taken from Dawkin's The Selfish Gene, and the authors are trying to articulate the genes that allow software artifacts to be reused.
The genes / patterns that they identify are good indicators for successful open source projects. There's nothing surprising, but the paper puts a number of things together in one place.
[15:46] |
[computers/open_source] |
# |
TB |
F |
G |
0 Comments |