Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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) !




Not trying to be funny, but "Ravioli code" might be closer:

https://stackoverflow.com/questions/2052017/ravioli-code-why... 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.


I love that there's a serious debate about which pasta shape is the best metaphor for particular software engineering patterns!


    > 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?


There's Vertical Slice architecture that kind of does this. A feature is in a folder.


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


I've seen the opposite with Python where there's so much junk in a single file it's also impossible to navigate.


Yeah, 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.


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




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: