OvermindDL1
Forcing generated directories into Umbrella apps (split thread)
There definitely needs to be more generators for that kind of stuff!!
Ugh, no, ugh… Umbrellas encourage more interconnections than necessary. I personally keep everything as fully standalone libraries with a ‘master’ project that just depends on them all and sets up their configs and so forth. Umbrella’s are so messy… >.>
First Post!
dimitarvp
They might be but you keep forgetting people want drop-in works-out-of-the-box tools and not an engineering PhD exam when working. ![]()
If I am to embark on such an adventure I’ll make doubly and triply sure that the experience is near-seamless, easy and quick. I have no intention of introducing a spaghetti monster that makes people’s lives harder. If that were to ever happen I’ll just freeze the GitHub repo and put a huge banner on it: “WARNING! DO NOT USE!”.
Not sure I agree with your opinion on umbrellas though – or with anybody who opposes them really. Umbrellas, much like the proposed future private functions, are a communication-of-intent mechanisms and a way to separate bunch of source files from each other. Nobody claims they are magic. If you have this dependency graph: business_logic >> business_data >> data_app_using_postgresql then no technology in the world can stop a dedicated programmer from cutting out the middleman and thus not respect semantic boundaries.
Example from almost the start of my career: people have been known to reverse-engineer compiled C++ multiple-inheritance classes which were specially crafted to hide the implementation – and they did so quite successfully. What can you do? If they don’t get the message of “here be dragons, don’t touch” then let them tinker. But I ain’t ever accepting a single “bug report” from such people.
So to this day I can’t understand the objections against umbrellas. They simply give a small peace of mind and address a part of the single-responsibility-principe / separation-of-concerns patterns. Nobody says they do something more.
Most Liked
OvermindDL1
Ahh, I bet that’s it! I’ve had to work with team sizes at my last job that are way way larger than they ever should have been. My current job has like 4 people that have access, and they still put everything through me regardless. ^.^;
I can see mono-repo’s being fine for very very few programmers on the project, but honestly just keep them as different namespaces in the same thing then, no need for the umbrella overhead. Even for projects by myself I still like to pull the pieces out a lot because it forces me to keep the bounds that I know belong there so I don’t accidentally (and I will otherwise) cross those bounds unless they are enforced.
OvermindDL1
The thing is that they don’t do that, rather they combine lots of code into a single repository that shouldn’t be touching. Its far easier to just have each part be its own testable library then merge them at the end via the normal built-in elixir dependency system, which is all of a single line added to the mix.exs file each. o.O
dimitarvp
Is it though? How about big corporate gardens? Also some CTOs cannot be convinced to self-host a private Hex repo. And they don’t want their stuff on the public Hex.
I believe the idea of a mono-repo being easier to work with – at least when you use GIT – is quite proven but am open to the other point of view.
Popular in Discussions
Other popular topics
Chat & Discussions>Discussions
Latest on Elixir Forum
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #elixirconf-us
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #security
- #hex









