This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2023-08-24
Channels
- # babashka (9)
- # beginners (17)
- # biff (1)
- # calva (3)
- # cider (29)
- # clj-kondo (31)
- # clojure (59)
- # clojure-austin (12)
- # clojure-brasil (12)
- # clojure-europe (35)
- # clojure-nl (1)
- # clojure-norway (72)
- # clojure-uk (1)
- # clojurescript (15)
- # clr (4)
- # conjure (1)
- # cursive (2)
- # datahike (2)
- # emacs (3)
- # hyperfiddle (114)
- # introduce-yourself (1)
- # kaocha (3)
- # malli (7)
- # off-topic (19)
- # pathom (2)
- # polylith (5)
- # portal (5)
- # reitit (5)
- # shadow-cljs (2)
- # slack-help (4)
- # tools-deps (42)
- # xtdb (6)
What would I be loosing if I don't follow adopt interface namespace design pattern, in terms features polylith provides, never mind the philosophical implications. The rest of polylith will work without that generally ok? I'm still creating components, its just they're going to have larger surface area than 1 namespace.
You can split interfaces into multiple namespaces. You need to follow the your.top.ns.component-name.interface.XX
pattern, where XX is any namespace name you want. See https://polylith.gitbook.io/poly/architecture/interface for an example.
Polylith also allows you to modify interface
into something else. interface
is the default but you can override it in your workspace.edn
.See :interface-ns
https://polylith.gitbook.io/poly/workflow/configuration.
Oh, ok missed that part, thank you! That makes me reconsider perhaps... i'll reconsider. But i'd still be interested in the answer to my original question, on what you loose.
You wouldn’t loose anything if you use multiple interface namespaces. I would recommend that if you have a large component or if you’d like to split different responsibilities of the component.
If you use another namespace other than interface
, again from the tools perspective, you would not loose anything; everything will work. Maybe one downside is, it’s easier to follow the documentation if you see interface
mentioned there and you look at the code and see interfaces. It could be easier for people familiar with Polylith and joining your project, etc.
If you want to mix both interface
and ifc
at the same time, then an alternative is to work from the master
branch. If you update the :sha
in the :poly
alias in ./deps.edn
to the latest SHA in the master
branch (right now 48d8a14d31a02cd2229d99bca094fe383d3dcace
) and e.g. start a shell with clojure -M:poly
then that will work. This will be included in the next 0.2.18
release.