This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2023-02-14
Channels
- # announcements (7)
- # babashka (13)
- # beginners (98)
- # biff (20)
- # calva (3)
- # clj-kondo (5)
- # clj-otel (6)
- # cljs-dev (96)
- # clojure (22)
- # clojure-austin (30)
- # clojure-conj (4)
- # clojure-europe (53)
- # clojure-nl (2)
- # clojure-norway (63)
- # clojure-uk (3)
- # clojurescript (18)
- # cursive (10)
- # data-science (11)
- # datalevin (2)
- # datomic (7)
- # deps-new (1)
- # fulcro (3)
- # graphql (1)
- # gratitude (4)
- # hyperfiddle (43)
- # kaocha (4)
- # malli (15)
- # pathom (6)
- # polylith (2)
- # reagent (3)
- # reitit (2)
- # releases (6)
- # remote-jobs (1)
- # rewrite-clj (45)
- # ring (4)
- # shadow-cljs (47)
- # sql (5)
- # xtdb (8)
er greit å slippe å oversette domenet, men det er vanskelig å holde tunga rett i munnen på konvensjonen “teknisk på engelsk, domene på norsk”
Med et språk som Clojure burde man jo da sørge for å oversette språket til Norsk også.
Den anonyme funksjonen som starter med #(and …)
er jo mest sannsynlig et begrep i kodebasen din.
(remove (partial is-rfid-query-rad? rfid-backend-query-id))
kunne fungert! Liker ikke å tvinges til å navngi sånne, men
Altfor mange skriver kode som dette
(defn do-something-with-a-list [xs]
(map #(mange-linjer-med-drit) xs)
I steden for
(defn do-something [x]
... mange linjer med drit)
og så et eller annet sted i koden
(map do-something xs)
Men basically, jeg vil kunne lese koden din og forstå domenet gjennom navnene du bruker. Hvis koden din kun er map
reduce
filter
og anonyme fns, så ville jeg tro at det eneste appen din drev med var å manipulere lister.
forsåvidt, tenker på en måte at det ikke tilfører så innmari mye verdi med flere navn i denne koden, når man allerede har det uungåelige navnet remove rfid backend query
(reg-event-db
::remove-rfid-backend-query
(fn [db [_ rfid-backend-query-id]]
(update db :rfid-scanned-individ-rader
(fn [xs]
(remove #(and
(= (-> % :type) :rfid-query)
(= (-> % :id) rfid-backend-query-id)) xs)))))
men det kan virke som dette er mere “gammel vane” enn “smart og gjennomtenkt mening” fra min side :thinking_face:
som nevnt andre steder er kanskje main stink her å drive og jobbe så mye med lister. Hadde vært bedre med en (update db :rfid-scanned-individ-rader dissoc rfid-backend-query-id)
og så hatt en sort-order på elementene og laget listen i et prepare-steg før rendring av gui eller noe sånt
en slags hoved-regel i datamodellering må være at rådata aldri (?) er lister, det er alltid sets eller maps
lister blir både lett accidentally quadratic (https://accidentallyquadratic.tumblr.com/) og som vi ser her er de knotete å jobbe med
Den koden du limte inn der er veldig interessant. Jeg ser masse sånt i vår frontend-kode (TS) og det jeg ikke liker er at «gullet» ligger (langt) inne i en anonym fn som er super tett koblet til rammeverket du bruker idag. Ardoq er 10 år. Vi har vært gjennom minst tre frontend rammeverk. Tenk så digg om mesteparten av domenekoden var skrevet rammeverkuavhengig. Forteller: «Det er den ikke..»
tenker at det du kaller gull her ikke egentlig er gull, det er bæsj som er unødvendig mekanisk kode siden datastrukturen som er lagt til grunn (en liste) ikke er assosiativ på ID-er fra domenet
hadde hibernate rett? Det har en verdi å abstrahere seg 100% bort fra frontendrammeverk, database, … osv siden det kommer til å bli byttet ut, og jo mere kode du kan beholde da, jo bedre?
viser Amazon riktig vei her? Forloveden min var inne på amazon her om dagen og fikk opp noen knapper som så ut som de var minst 5 iterasjoner av Amazon sin UX gamle. Aka Amazon kan komponere nytt og gamelt. Aka winning?
haha, nei altså, amazon har jo klart noe bra her, siden de kan bruke flere verdener samtidig, hvordan de nå enn har fått det til
de har ikke trengt å gjøre jobben “bytte frontendrammeverk”, de kan komponere primitiver/byggeklosser?
kanskje vi får noe for frontend etter hvert som gjør det samme docker gjorde for deployment. Nå er ikke lenger backend-koden vår avhengig av å kjøre i versjon 6 av Tomcat med java 7, docker-containerene har full frihet til å gjøre hva de vil. Og kanskje på sikt har vi skjønt at “hentig og massering av data for front-end” er en isolert nok del av frontend-koding til at vi kan skrive den koden på én måte, og rendringen og frontend-rammeverket kan være noe annet
La oss for guds skyld håpe at vi ikke får docker for frontend. Da legger jeg på og blir profesjonell dagdriver.
kanskje man kunne brukt partial
eller juxt
eller noen av disse jeg nesten aldri bruker når man ønsker å gjøre update
på en liste, i stedet for å nøste fns
Jeg bruker anledningen til å nok en gang pitche @odinodin sin bloggpost 😄 https://www.kodemaker.no/blogg/2019-06-datascript/