iterate / mikrobloggeriet

0 stars 0 forks source link

Urlog load ascii and create seperate components #76

Closed olavm closed 5 months ago

olavm commented 5 months ago

Prøvde meg på å separere logikk for filinnlasting fra HTML-komponentene.

Nå skjer innlasting av alle urlog ascii assets i en load-ascii-funksjon. Hver HTML-komponent tar inn ascii-strengen(ene) den skal vise som argumenter.

Det gjenstår nok litt opprydding i funksjonsnavn og struktur, før jeg skal begynne å se på å separere logikk i egne namespaces. Videre er det ganske uoversiktelig logikk i page fortsatt. Spesielt rundt å velge en random dør, og reversering osv. Jeg tror også CSSen bør ryddes litt opp i.

Tar gjerne tilbakemeldingner på datastrukturen til load-ascii!

teodorlu commented 5 months ago

Jeg synes skillet på funksjoner som laster data og funksjoner som lager HTML har blitt veldig fint.

teodorlu commented 5 months ago

Om load-ascii:

https://github.com/iterate/mikrobloggeriet/blob/5979ab8bb7d5be881feb4cf27f3e334a94b63bed/src/mikrobloggeriet/urlog.clj#L24-L28

Kommentarer:

  1. Jeg ville byttet ut verdi (def) med funksjon (defn). Skrev en kommentar på det over.

  2. Synes datastrukturen ser fin ut.

  3. Jeg ville lagt en doall rundt map. Map returnerer en lazy-sekvens.

    user=> (type (map inc (range 3)))
    clojure.lang.LazySeq

    At den er lazy betyr at filene først leses inn når noen bruker returverdien. Så feilene kommer etter at du har evaluert load-doors. Doall realiserer alle lazy-verdier i argumentet sitt.

    user=> (doc doall)
    -------------------------
    clojure.core/doall
    ([coll] [n coll])
      When lazy sequences are produced via functions that have side
      effects, any effects other than those needed to produce the first
      element in the seq do not occur until the seq is consumed. doall can
      be used to force any effects. Walks through the successive nexts of
      the seq, retains the head and returns it, thus causing the entire
      seq to reside in memory at one time.
    nil
  4. Jeg ville kanskje trukket ut den anonyme funksjonen som laster en dør til en egen funksjon, feks (load-door door-path)

teodorlu commented 5 months ago

Det ble ganske mange kommentarer, ser jeg. Som alltid, opp til deg hva du endrer og ikke endrer. Helt OK å ta én ting, merge, og heller ta mer senere.

olavm commented 5 months ago

Tusen takk for gode og detaljerte tilbakemeldinger Teodor! Tror jeg har fått fikset opp i det meste nå, så tenker å merge inn.

Neste blir nok litt opprydding i CSS og kanskje mer separasjon av HTML. Så kanskje sjekke om en MVC aktig løsning er lurt her.

teodorlu commented 5 months ago

Det har vært en glede!

Da vi startet å se på dette navnerommet på fredag, slet jeg med å følge logikken. Jeg skjønte ikke helt hva som skjedde.

Nå synes jeg logikken er klar.

Navn gir mening. Du skiller på data, logikk og visning. Du har til og med noen eksempler på hva man kan gjøre i comment-blokker!