5 ms·
I don't think this is what lasagna means. Lasagna is when you have your software organized in layers. In other words instead of having a big ball of mud where
by samiv 2y ago
I don't think this is what lasagna means.
Lasagna is when you have your software organized in layers. In other words instead of having a big ball of mud where A calls B calls C calls A calls C calls B you have layers (like in lasagna) so that A calls B calls C and you keep your code base so that classes/modules/types that are in the lower layer do not depend on or know of the anything above them and the dependencies only go one way.
I love lasagna. It's great (both as design and as food) !
- seanwilson 2y agoNot trying to be funny, but "Ravioli code" might be closer: https://stackoverflow.com/questions/2052017/ravioli-code-why-an-anti-pattern https://stackoverflow.com/questions/2052017/ravioli-code-why... https://en.wikipedia.org/wiki/Spaghetti_code#Ravioli_code https://en.wikipedia.org/wiki/Spaghetti_code#Ravioli_code A related principle that I don't think is talked about enough is "locality": I'd rather have all the code about one feature in one file or close together, rather than it strewn across files where it's harder to read and understand as a whole. Traditional Java was notorious for being the opposite of this. Traditional HTML+CSS+JavaScript is also very bad for this problem.
- schoen 2y agoI love that there's a serious debate about which pasta shape is the best metaphor for particular software engineering patterns!
- throwaway2037 2y ago> Traditional Java was notorious for being the opposite of this. Is modern Java better? If so, why? Also, what languages do it better than Java and why? Any as old as Java that do it better?
- DeathArrow 2y agoThere's Vertical Slice architecture that kind of does this. A feature is in a folder.
- johnisgood 2y ago> make navigation through the code for maintenance purposes more difficult. I have this issue with: Java, Kotlin, Erlang, and Elixir, but especially Java and Kotlin.
- icedchai 2y agoI've seen the opposite with Python where there's so much junk in a single file it's also impossible to navigate.
- johnisgood 2y agoYeah, I do not use Python, nor do I have to read much Python code, but it may be difficult to follow, too (OOP in general), just like PHP with lots of classes but I do not mind 5000 LOC PHP code that is fully OOP at least, I probably would if they were in their separate files.
- icedchai 2y agoIt may be a poor analogy but I’ve seen it used elsewhere. I didn’t make up the term, though I’ve certainly witnessed it.