A while back I found a couple of great articles here about changing the way software is layered, such that your code was less coupled; to do with the way operations were propagated through.<p>I'm trying to find this and my usual google skills are failing me.<p>There was a very good article that gave an example of some operations that went through the normal layers of UI, business, persistence (as I remember it) but was modified so that the layers were oriented differently and I think that meant functionality could be composed in a better way.<p>Can anyone help?<p>edit: just remembered - in the article I read it showed a diagram of the layers but with operations in a kind of tree and leaf way, and showing how this was modified, and the advantages of re-organizing in this way. I think the article may have been something to do with functional core/imperative shell but I'm not 100%.
This isn't an article but reading your post reminds me of the presentation by Gary Bernhardt titled "Boundaries", <a href="https://youtu.be/yTkzNHF6rMs" rel="nofollow">https://youtu.be/yTkzNHF6rMs</a><p>I would be interested in looking at the article(s) if you can find them again.