This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2023-05-09
Channels
- # announcements (3)
- # beginners (61)
- # biff (20)
- # cider (13)
- # clerk (6)
- # clojure (58)
- # clojure-brasil (5)
- # clojure-europe (30)
- # clojure-nl (1)
- # clojure-norway (10)
- # clojure-uk (5)
- # clr (25)
- # core-async (2)
- # cursive (19)
- # datahike (5)
- # datalevin (1)
- # docker (1)
- # emacs (3)
- # fulcro (4)
- # hoplon (3)
- # hyperfiddle (91)
- # java (2)
- # juxt (5)
- # london-clojurians (1)
- # lsp (38)
- # malli (12)
- # nrepl (9)
- # off-topic (7)
- # polylith (15)
- # portal (49)
- # rdf (2)
- # re-frame (43)
- # releases (2)
- # shadow-cljs (30)
- # spacemacs (15)
- # sql (36)
- # tools-build (20)
- # xtdb (3)
Neste spørsmål/diskusjonstema!
Nå har jeg gått litt overboard og overdesignet denne clojure-backenden jeg driver med. Men all jobben med integrant og decoupling fikk meg til å tenke på at polylith
er en ting som fins!
Er det noen som har erfaringer med polylith og om det er greit å jobbe med? 😁
Jag har testat ut det lite grann. För små projekt så är det väldigt mycket overkill. Om du har ett större projekt, så är det helt klart intressant.
Men hva om du har et lite prosjekt som kan bli til et stort? Kanskje det lønner seg å bruke tidlig? 😅
Jeg tror du bør splitte ut i microservicer og få det deploya i et k8s cluster fortest mulig.
Fra spøk til alvor. Jeg tror jeg liker tankegangen bak polylith, men jeg er ikke sikker på om jeg liker implementasjonen av ideene.
Jeg synes det er fint med interfacer, men det er vanskelig å designe gode interfacer, polylith eller ei. Å kunne lage ulike artifakter fra samme kodebase? meh. Vi deployer backenden vår på et par ulike måter, via ulike main-funksjoner eller flagg eller noe, men genererer ikke opp ulike artifakter av den grun.
I det første teamet mitt i Nav hadde vi et monorepo med 10+ apper, og som også inneholdt et par commons-biblioteker. Det er vel i den typen scenario polylith er nyttig tenker jeg. Det kan jo diskuteres om vi trengte et monorepo i utgangspunktet; støtte på problemer med oppgradering av avhengigheter fordi vi brukte Spring (😫), og én av de 10 appene brukte et obskurt bibliotek som ikke var kompatibelt med nyeste versjon. Dermed kunne ikke resten av appene i monorepoet oppgraderes heller uten en del merarbeid for å løskoble monorepoet mer.
Der jeg jobber på har vi ~300 mikrotjenester som bygger på en haug typer og interfaces fra et "rammeverk" vi har laget. Det gjør ganske vondt til tider å forstå hva som egentlig foregår under parykken. Riktignok C# .NET, ikke Clojure.
Data er det beste interfacet. Design ting for å være datadrevet og vær sparsom og forsiktig med objekter og funksjoner og systemer for å lage biblioteker/rammeverk med dem. IMO, som det heter.
Du kan ”override” vilken version som ska användas för varje bibliotek, per projekt/artifakt i Polylith, så att man inte blir låst till vad ens komponenter använder.