For all my 24 years of career, I never once found a good dir + file structure I was happy with. Nothing quite clicked. I think the problem is that many relationships between entities are forming a graph whereas the filesystems are trees.
But I did find a lot of super convinced advocates of a number of strange conventions i.e. order/read.ex and order/delete.ex… one action per file! Madness. Though I’ll admit it makes it a touch easier for fuzzy searching a filename or file contents. This approach gets a few points more in marks.
IMO the Unison language is the only one who gets this right; content-addressed code. In the meantime, before all PLs finally reailze its the 21st century, projects could become f.ex. a singular SQLite database indexed by a number of fields i.e. domain, namespace, implemened behaviours / protocols, app code vs. test code, and such. Also add arbitrary tags and propose a few hundred standard ones.
The whole thing of dir → file(s) → module(s) → function(s) is hugely outdated and has been for at least 20 years.
But again, I am not super against entity/action.ex. It makes fuzzy searching a little easier. Though I never had problems when doing fuzzy search for f.ex. def list_ (assuming using normal Phoenix generators) and finding what I need in literal two seconds.






















