This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2015-09-23
Channels
- # admin-announcements (24)
- # alda (1)
- # aws (10)
- # beginners (15)
- # boot (51)
- # cider (37)
- # clojure (198)
- # clojure-berlin (3)
- # clojure-czech (48)
- # clojure-poland (1)
- # clojure-russia (7)
- # clojure-seattle (1)
- # clojurescript (347)
- # editors (64)
- # emacs (46)
- # hoplon (13)
- # immutant (24)
- # jobs (17)
- # ldnclj (20)
- # ldnproclodo (3)
- # off-topic (8)
- # om (37)
- # onyx (19)
- # re-frame (18)
- # reagent (54)
- # remote-jobs (2)
- # testing (9)
- # yada (1)
- # yleinen (4)
Ahoj, tak jsem to předělal na app-state a mám dvě věci co mě potrápili: - circular dependency (končí to stack overflow a nějak to i googlu trvalo, než mi řekl, že to může být tím). To je prostě to, že druhý týden ještě stále nechápu všechno z clojure žaludku. - componenty s lokálním i globálním stavem. Co v kterém let a podobně.
co se tyka circular dependencies, tak to mas pravdu, ze by je mel compiler detekovat a hlasit nejak srozumitelne
ještě k těm lokálním stavům. Já je používám na věci, které nejsou applikaci důležité. Když si zvětšíš velikost písma pro jeden řez a tak
podle me bys mel vsechno toto drzet v globalnim app-state, myslim, ze lokani state je opravdu nevyhnutelny pro veci ktere souviseji s DOMem nebo optimalizaci na rychlost
ale to až u dalšího kola refaktoringu. Teď musím zase frontfacing věci posunout, jinak mě společník v písmolijně přestane mít rád úplně 😉
hele to ne já měl v middlemanu nasekanej prototyp a měl k němu začít dělat backend. A zatím jsme v betě. Kupovat se ještě nedá
super na clojure je, ze te vede k tomu naucit se jendnu standardni knihovnu a vsechno ostatni pokud moznost stavet z kousku dat aplikovanim funkci, ktere uz znas
to je nesmirne silne, kdykoliv budes psat nejaky slozitejsi subsystem, ktery je rekurzivni, zkus se zamyslet, jestli se to neda popsat pomoci EDN, ktery ten subsystem bude konzumovat, timto instantne vytvoris bohate api k tomu subsystemu, protoze uzivatele mohou pouzit cokoliv z clojure na sestrojeni vstupu - generatory html a css jsou dobre priklady
extremnim prikladem jsou deep-walking makra jako je core.async, v clojure muzes psat subsystemy, ktere konzumuji kod jako data, protoze kod je taky EDN
@pepe hm, s multi-methods taky opatrne, mohou mit performance konsekvence, vetsinou chces ve svem kodu normalni staticky dispatch, multimethods se hodi, pokud predpokladas, ze tvuj kod bude nekdo cizi "overridovat"
jako v kodu, ktery je volan jen jednou nebo malo casto je to jedno, ale bal bych se to pouzivat nejak masivne ve vnitrnich smyckach
tady to dava smysl, muzes mit nekolik namespaces, kazde bude definovat svoji rodinu routes, a pak se v korenovem namsepaces rozhodnes ktere z nich requirovat
timto nemusis mit vsechny routes na jednom miste v jedne metode ktera dela staticky dispatch
vyhoda multimetod je, ze jsou “otevrene”, kdokoliv muze prijit a pridat nove multimethody
já mám přes multimetody udělaný route handlery a routy definovaný v [silk](https://github.com/DomKM/silk). Každej modul si tak drží handlery u sebe a routy se zkomponují při vytváření systému