Fork me on GitHub
#clojure-norway
<
2023-03-08
>
cjohansen07:03:36

Jeg har lenge gått med idéen å lage “devcards ++“. Etter å ha kikka litt på Storybook JS i høst ble det til “(nesten) storybook for cljs”. Vi har nå hatt en POC på dette i bruk på jobb en stund, og nå begynner det å nærme seg noe som kan brukes av flere: https://github.com/cjohansen/portfolio Jeg har satt opp en liten demo av verktøyet, selvom den beste måten å bruke det på er å koble det til et REPL: https://cjohansen.github.io/ Her er et snapshot av noen av tingene du kan gjøre:

😍 8
❤️ 2
teodorlu12:03:00

Kjempekult! :hugging_face:

🙏 2
cjohansen07:03:52

Flere som har brukt devcards og/eller storybook og har tanker eller innspill?

augustl07:03:43

bruker storybook på VIERLIVE (hvordan klarer folk seg uten?), veldig fin den oppdelinga med sidebar til storybook og portifolio 😄

cjohansen08:03:45

med JavaScript eller ClojureScript?

cjohansen08:03:59

Ble ille mye konfig og “lim” for å få det til å svinge med ClojureScript syns jeg

augustl08:03:55

med javascript. I tradisjonell NPM-stil er det ganske enkelt å bruke ut av boksen, den fisker i filsystemet etter alle filer som heter *.stories.(js|ts) og smeller dem inn

cjohansen08:03:46

Jeg har ikke laget noe sånt enda. Har aktivt voktet meg for å lage de tingene først, og heller fokusert på å lage API-er. Kan bygge sånn “finn på filsystemet”-magi til slutt,

💯 4
teodorlu12:03:35

"eventuell magi er opt-inn" støttes, jeg synes ofte js-verktøy gjør for mye.

👍 2
augustl08:03:06

for å få denne opp og gå trenger man bare koden i skjermbildet så er man good 2 go. Litt lol at den driver og automagisk fisker ut alt som er exporta, men siden det kun gjelder .stories-filer synes jeg egentlig det funker ganske greit

cjohansen08:03:49

Jeg har også en POC på en codemirror-editor med enkel paredit for å tukle med parameterne til komponentene 😄

teodorlu12:03:18

I tilfelle du ikke ønsker å gjøre alt fra scratch: https://nextjournal.github.io/clojure-mode/

cjohansen12:03:21

kult, takk for tips

🙌 2
cjohansen12:03:37

jeg fant faktisk en implementasjon av paredit, så jeg har gjort veldig lite selv på denne biten

👍 2
cjohansen12:03:09

men det ble fort tydelig at paredit i en nettleser er vrient, pga eksisterende keybindings osv, så jeg endte med å bare hente ut noen få ting - autoparens, raise, slurp, barf og et par ting til

👍 2
cjohansen12:03:30

jeg kommer heller til å tilrettelegge for REPL-ing mot UI-et en å bygge fancy input-UI

teodorlu12:03:57

Gir mening -- ingenting slår å bruke sin egen editor!

🎯 2
teodorlu12:03:46

Men det er litt gøy at når man støtter bittelitt Clojure kan man ofte slippe å tenke på filtrering, nesting, etc. Hvis du bare kan lime inn et lite "nested Clojure map" i et inputfelt, slipper man å lage en megakomplisert editor for generelle trær.

cjohansen12:03:19

ja, det var det som var idéen 🙂

💯 2
augustl08:03:00

clojure er jo et ordentlig språk og har metadata f.eks, så figwheel style metadata enten på et helt namespace eller på enkelte symboler er mye mere winning

cjohansen08:03:26

Og mulighet for å tap>-e verdier til UI-et for å bruke dem i komponenter osv. Men jeg har ikke helt landa disse enda.

msolli08:03:31

Jeg bruker Storybook med cljs. Der er ganske mye strikk og binders for å få det opp. Ser fram til å kjippe det ut!

👍 2
augustl08:03:37

ja, har ikke helt klart/orka å sette opp parameter-fikling, her har jeg jo endt opp med å bare lage det sjæl, storybook har noe innebygget for å typ vise en slider som representerer props inn til render

cjohansen08:03:18

ja, jeg starta med å kopiere det, men så landa jeg på at jeg nok heller ønsker meg et stort tekstfelt, Clojure-data og litt paredit

cjohansen08:03:30

evt tap, så kan du redigere data i en skikkelig editor

augustl08:03:34

da kan man jo lage generative testing men for GUI-komponenter, hvis man vet om props. Rendre automatisk med alle mulige parametere i rare rekkefølger og mount og unmount komponentet og se at det ikke kræsjer? 😄

augustl08:03:43

veldig kult med mobilvisning, side-by-side, osv. Da tilfører man en god del mere verdi enn devcards

cjohansen08:03:46

ja, det har jeg ønsket meg lenge

cjohansen08:03:29

På jobb bruker vi det også til å rendre hele screens (data-drevne UI-er med stateless komponenter FTW), og har custom menyer for å bytte språk og theme:

cjohansen08:03:46

Har vært veldig nyttig både til utvikling og til samarbeid med designere og folk som oversetter til språk jeg ikke prater

augustl08:03:40

ah, godt poeng med oversetting. Stories/scenes kan jo være en slags spec nesten, hvor oversetterene kan se alle endringene i kontekst og vite at alt blir riktig osv

augustl08:03:14

apropos: av nysgjerrighet, er det noen her som ikke bruker devcards eller storybook? Hvordan går man frem for å teste rare/sjeldne GUI-states uten? 😅

oddsor09:03:15

God lunsj i dag! Blitt syk og sengeliggende så jeg melder avbud denne gang 🤒

🤒 8
cjohansen10:03:02

Jeg setter nå ihvertfall kursen innover!

🍛 2
teodorlu12:03:45

@christian767 du har lagd en tiling window manager i nettleseren, du! 😁

cjohansen12:03:34

haha, ja. en litt shitty en 😄

🔥 4
gotta_go_fast 2