Architect your project with Framed: effortless files and directories management
github.com
github.com
I've worked on a relatively big startup codebase with a lot of common patterns, but directory management wasn't a problem that we had. I've also worked in the Google monolith, and while there are a lot of defined practices, in my experience this isn't quite the tool we'd need to manage them (things like ownership matter more).
Don't get me wrong, I think you created a neat project there and it surely has some use, but the argument that this adds a lot of complexity without solving a problem that justifies that kind of complexity stands.
I can understand, for example, all the Python libraries in the company nesting code under src/ and test/, but that's fairly easy to see and likely never changes after project creation. It's also not really that impactful to dev experience in my experience. Going much further than this feels like it would get too project specific quickly and provide less value.
Do you have examples of the sorts of rules you've seen have most impact?
I was just thinking of building a CLI tool that I can say “start me a X lang project”, with my preferred dir layout, files and default dependencies. Basically a “react-create-app” or “bundle init” for any language.
Is Framed a solution for that? From what I saw there’s no default file contents and ability to run commands?
An alternative is "uPlaybook": https://github.com/linsomniac/uplaybook (disclaimer, I'm the author). It is a YAML-based simple scripting that is focused on simple CLI-based automation, in particular file templating and secrets decryption.
uPlaybook is a small Ansible+CookieCutter combination. In the uPlaybook you can do simple shell-like operations, create files based on jinja2 templates, decrypt secrets, and do some looping/conditionals.
You can define parameters that the user needs to supply (for your "react-create-app" that might be app name, features you might optionally want), which uPlaybook turns into CLI arguments, or it can prompt the user to fill them out.
I see the value.
This could do with tests though, and the business logic could be in a different package that the cmd folder uses.