Developer Chronicle: Lasagna is not a good role model
How about a spot of banter about an architectural phenomenon that I often see in various projects? Since I've made the same mistake in many projects, I guess it's okay to joke about it.
The phenomenon I'm referring to is that there seems to be an architecture principle in many projects which says "the more layers the better." The principle is very common in .net and java projects, especially in the projects known
as enterprise projects.
Why does this happen? There are many explanations, but the following stand out as the most common:
- "It can be good to have many layers. You never know when a layer might turn out to be useful."
- "Person X / Book Y says it should be like that."
- "Everything should be similar and follow the same structure."
- When something is changed, there is a tendency that the change affects more than one place in the code due to all the layers.
- You get tons of completely uninteresting code which means that there is more to read and it takes longer to locate what you are looking for.