I was really impressed with how it encouraged decoupling, and it has positively affected how I write code and think about dependencies.
The original version of the tool used: - Leiningen to compile and build the artefacts - symlinks to keep the code in one place (but allow for reuse in multiple artefacts) - "workspace interfaces" (empty component interfaces) to guarantee the decoupling between components
The new version of the tool uses: - tools.deps to build the artefacts and remove the need for symlinks - static code analysis to remove the need for "workspace components"
E.g. Development Tooling that lets you better manage different architecture patterns.
Is it?
- read through our book and you'll become better at designing great code
- read through our book and learn how to refactor your current codebase into a better codebase
- use our tools and you'll build better systems in less time
- use our libraries and you'll build better systems in less time
- buy into our ecosystem and get lots of pluggable components
- something else?
Conceptually, I get that better design can improve development workflows, but it's hard to tell where the rubber meets the road when it comes to polylith. When I read the transitioning to polylith, it sounds like I have to download some new tool, "import" all my code, and then I rewrite all the code? That sounds like a lot of work and I still don't know what the that means in practical terms.