|
|
|
|
|
by AstralStorm
2349 days ago
|
|
You have not worked on bad enough code base. Duplication is a problem as the different implementations inevitably drift and get repeated bugs, but simple reduplication results in the rather known problem of RavioliCode() of thousands low cohesion functions. Which ends up unreadable thus bug prone and slow to develop. Use of the right patterns or rather paradigms reduces amount of code in general, thus reducing duplication. Wrong patterns are hard to actually change especially on change averse projects. The more widely used the wrong design is, the harder it is to change as the hacks on it multiply.
Even worse if the wrong patterns (not code) are duplicated. These require in depth rewrites to which bosses are usually allergic, which are very hard to pull off on bigger teams too. Incredibly hard to coordinate. --
() https://wiki.c2.com/?RavioliCode - can happen in functional and structural code too. |
|
You know, it is a bit pretentious to read a few sentences that someone wrote and then conclude a lot about what they know or do not know.
And I actually do know what ravioli code is. I think ravioli code is mostly a good thing. Also the people on the c2.com page are not uniformly negative about it. Not all code should be ravioli code but in a project with complex requirements there should be quite a bit of ravioli code. It is true that ravioli code is not easy to understand if you are a newcomer to a project but really if the context is 'a project with complex requirements' why would anyone think that it is easy to get into, no matter how it is written?
Another thing is that ravioli code absolutely needs automated tests.
'This style maximizes maintainability by old hands at the expense of comprehensibility by newcomers.' Maintainability is exactly what I want maximized. It sounds a bit bad if there are no developers that are there for a long time. But in that case you are cooked anyway, I would say.