Yes, the title is triggering you. I know
Other dissenting (or perhaps a better word is “skeptical”) views have been less formal. One person simply asked me: “Have you ever actually done this – in a Phoenix project ”, as if Phoenix was somehow special and changed the game so much that the normal rules of good design don’t apply.
If you recognize this quote from the days of old, then you know there is something strange about it… Perhaps a word or two that may have changed slightly
This post is a reflection on an article from Uncle Bob.
https://blog.cleancoder.com/uncle-bob/2011/11/22/Clean-Architecture.html
He defends our architectures should focus on 3 things:
- Boundaries(deal with the outside horrible world)
- Entities (business logic)
- Interactors (pass information between 1 and 2)
Now, this would make your Application logic. But you may be thinking: “Your app seems to suffer from a distinct lack of … everything else”.
Indeed I don’t mention databses, UIs, web controllers, sockets … nothing. According to the article, these are just annoying details - frameworks are annoying details, Phoenix is an annoying detail.
The article defends that you know you have a good architecture when the framework you use in your app can just be like any other plug in, that you can add and remove and update at will.
This concept is really interesting but I have never seen in my life an application following it. So I have some questions:
- How does the Elixir community feels about this? Agree, disagree …
- Are there any examples of an app using this structure?