This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-04-18
Channels
- # admin-announcements (3)
- # arachne (8)
- # beginners (55)
- # boot (51)
- # cbus (1)
- # cider (15)
- # cljs-dev (5)
- # cljsrn (8)
- # clojure (203)
- # clojure-austin (2)
- # clojure-belgium (12)
- # clojure-boston (6)
- # clojure-czech (47)
- # clojure-dusseldorf (14)
- # clojure-estonia (1)
- # clojure-greece (42)
- # clojure-japan (2)
- # clojure-poland (4)
- # clojure-russia (97)
- # clojure-sg (5)
- # clojure-uk (41)
- # clojurescript (122)
- # code-reviews (4)
- # component (3)
- # core-matrix (19)
- # cursive (25)
- # datomic (16)
- # devcards (24)
- # editors (6)
- # euroclojure (1)
- # hoplon (88)
- # immutant (3)
- # incanter (4)
- # jobs (5)
- # keechma (1)
- # luminus (1)
- # om (44)
- # onyx (22)
- # parinfer (3)
- # planck (1)
- # proton (3)
- # re-frame (5)
- # reagent (30)
- # ring (2)
- # spacemacs (1)
- # untangled (92)
- # yada (1)
dival jsem se na zacatek ale dlouho jsem nevydrzel; Stuart miva dlouhe prednasky o malych knihovnach
component
knihovna je fajn, dava to smysl, bohuzel prepsat existujici kod do tohoto modelu je dost pruda, clovek musi propagovat kontext parametr i do tech nejmensich funkci, pokud si chteji sahnout na ten stav
bylo by fajn mit moznost “instancovat” cele namespaces na urovni jazyka, takze clovek takto napsany kod porad muze "rozinstancovat"
ja na to narazil v re-frame, bohuzel autori re-frame tomu neprikladaji moc velkou prioritu
tak jsem to forknul https://github.com/binaryage/pure-frame
a clovek by rekl, ze om, datomic & spol uz vsechny nalezite poucil a stav komponent se do promennych proste neuklada
je pravda, ze namapovani namespacu na mutabilni java(scriptove) objekty je dost nestastne
podobny problem jsem uz 2x resil; component je pekny, ale nevyhoda je, ze na komponentach pouziva protokoly
@darwin: ten game over jsi myslel pro cokoli co má (def state) nebo pro použití componemt?
@darwin vlastne tou mapou, klicemi a funkcemi jsme nahradili namespacy a multimetody/protokoly (udelali je spravne - tj immutable a composable)
@pepe ve vlastni aplikaci to klidne delat muzes (protoze vis, ze ta vec bude singleton), ale jako autor knihovny omezis pouziti v pripadech kdy ta vec singleton neni
napriklad v re-frame by se hodilo mit vice re-frame instanci v jednom javscript contextu
@darwin zkousel jsem to napr na om/next a tam tenhle pristup zapadnul jako ruka do rukavu (lepsi nez multimetody, ktere pouziva v prikladech david nolen)
@skardan: chapu, ze mapama muzes celou vec nahradit - problem pak ale muze byt reloadovatelnost kodu pro interaktvni development, protoze vsechny funkce pak zapeces do map, ktere se stanou stavem tve aplikace
@darwin: já si to právě pamatuji, jak si to řešil ma GH a i když chápu (zvláště pak v kontextu věci jak je plastic) to nutkání, nějak mi stále nedochází jaké výhody by to pro mě jako tvůrce malých až středních (jednotky KLoc) app mělo.
Na které podle mě reframe míří 😉. A nechci to nijak bagatelizovat, tvůj názor má u mne respekt. Jen víš jak: není zkušenosti bez zkušenosti.
@pepe: jeden relevantni usecase je testovani, treba devcards, kde chces vytvorit spoustu instanci svoji aplikace v ruznych stavech a videt je vsechny naraz
kdyz budes psat knihovnu, tak nech uzivatele vytvaret a predavat jeji stav (kontext), a pak nad timto api, muzes udelat old-school zjednodusene rozhrani, ktere vytvori jeden globalni stav a preda ho do vsech techto funkci
99% lidi puzijou zjednodusene api, a to 1% si muze pouzit to slozitejsi primo, nebo si ho zabalit do component, nebo do cehokoliv jineho
rozhodne nenutit lidi pouzivat component, rika to i Sierra v jedne z jeho prednasek (to by bylo zase zbytecne omezeni)
@darwin: To 99/1% mi pripomnelo tenhle clanek (byt z F# sveta): http://tomasp.net/blog/2015/library-layers/index.html