clojure-czech

rarous 2016-04-18T15:49:36.000002Z

must watch https://www.youtube.com/watch?v=-RaFcpNiYCo

skardan 2016-04-18T15:50:25.000003Z

dival jsem se na zacatek ale dlouho jsem nevydrzel; Stuart miva dlouhe prednasky o malych knihovnach

skardan 2016-04-18T15:50:35.000004Z

mluvi tam o necem jinem nez component pripadne tools.namespace?

rarous 2016-04-18T15:58:56.000005Z

o jejich kombinaci :simple_smile:

rarous 2016-04-18T15:59:15.000006Z

jak je používat dohromady, aby byla lepší dev experience

2016-04-18T16:01:35.000008Z

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

2016-04-18T16:01:58.000009Z

a kdyz ma clovek knihovny, ktere ho nerespektuji, tak je to taky tezky

2016-04-18T16:02:32.000010Z

kdykoliv nekdo udela (def my-state) tak je to game over

rarous 2016-04-18T16:05:03.000012Z

což by slušný knihovny dělat neměly

rarous 2016-04-18T16:05:15.000013Z

pak je to framework :simple_smile:

2016-04-18T16:05:55.000014Z

no, je to tezky, protoze (def state) je defaultni vec, ktera kazdeho napadne

2016-04-18T16:07:11.000015Z

bylo by fajn mit moznost “instancovat” cele namespaces na urovni jazyka, takze clovek takto napsany kod porad muze "rozinstancovat"

2016-04-18T16:08:00.000016Z

ja na to narazil v re-frame, bohuzel autori re-frame tomu neprikladaji moc velkou prioritu

2016-04-18T16:08:15.000017Z

tak jsem to forknul https://github.com/binaryage/pure-frame

rarous 2016-04-18T16:08:22.000019Z

to jen potvrzuje to, co si o re-frame myslím :simple_smile:

2016-04-18T16:08:28.000020Z

ale neni v mych silach ten fork dlouhodobe udrzovat

skardan 2016-04-18T16:09:16.000021Z

a clovek by rekl, ze om, datomic & spol uz vsechny nalezite poucil a stav komponent se do promennych proste neuklada

skardan 2016-04-18T16:09:43.000022Z

je pravda, ze namapovani namespacu na mutabilni java(scriptove) objekty je dost nestastne

rarous 2016-04-18T16:09:45.000023Z

oni mají vlastní představu jak to dělat líp...

skardan 2016-04-18T16:10:40.000024Z

podobny problem jsem uz 2x resil; component je pekny, ale nevyhoda je, ze na komponentach pouziva protokoly

skardan 2016-04-18T16:11:04.000025Z

a nevyhoda protokolu je, ze nejdou komponovat a jsou vlastne take globalni stav

skardan 2016-04-18T16:11:38.000026Z

protokol je definovany tride, ktera je soucasti stavu namespace

skardan 2016-04-18T16:12:10.000027Z

(podobny problem je pouziti multimetod v om/nextu)

2016-04-18T16:13:07.000028Z

@skardan: takze jak bys to resil? jako obycejne mapy, ktere maji domluvene klice?

skardan 2016-04-18T17:23:32.000029Z

@darwin mapa, ktera nesla jak stav tak middleware, ktery nad ni operoval

skardan 2016-04-18T17:24:08.000030Z

ma to velke vyhody (napr pro ladeni, testovani atd)

skardan 2016-04-18T17:24:18.000031Z

tak nevyhody (domluvene klice)

pepe 2016-04-18T17:25:05.000032Z

@darwin: ten game over jsi myslel pro cokoli co má (def state) nebo pro použití componemt?

2016-04-18T17:25:26.000033Z

pro pouziti component

skardan 2016-04-18T17:25:55.000034Z

@darwin vlastne tou mapou, klicemi a funkcemi jsme nahradili namespacy a multimetody/protokoly (udelali je spravne - tj immutable a composable)

2016-04-18T17:26:36.000035Z

@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

2016-04-18T17:27:03.000036Z

napriklad v re-frame by se hodilo mit vice re-frame instanci v jednom javscript contextu

skardan 2016-04-18T17:28:00.000037Z

@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)

2016-04-18T17:32:16.000038Z

@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

skardan 2016-04-18T17:34:31.000039Z

@darwin: pro vyvoj / neprodukcni prostredi tam muzes davat #'var

pepe 2016-04-18T17:34:57.000040Z

@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.

pepe 2016-04-18T17:37:11.000041Z

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.

skardan 2016-04-18T17:47:07.000042Z

http://www.meetup.com/Lambda-Meetup-Group/events/230467928/

1👍
2016-04-18T19:53:26.000044Z

@pepe: jeden relevantni usecase je testovani, treba devcards, kde chces vytvorit spoustu instanci svoji aplikace v ruznych stavech a videt je vsechny naraz

pepe 2016-04-18T19:55:07.000045Z

@darwin to je úplná pravda, o tom se ostatně sem tam v #C073DKH9P mluví.

2016-04-18T19:56:12.000046Z

muzes to obejit vytvarenim iframu, ale to neni to prave orechove

pepe 2016-04-18T19:57:54.000048Z

jj, díky zase mám o čem přemýšlet 😉

2016-04-18T20:00:17.000049Z

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

2016-04-18T20:00:54.000050Z

99% lidi puzijou zjednodusene api, a to 1% si muze pouzit to slozitejsi primo, nebo si ho zabalit do component, nebo do cehokoliv jineho

2016-04-18T20:01:37.000051Z

rozhodne nenutit lidi pouzivat component, rika to i Sierra v jedne z jeho prednasek (to by bylo zase zbytecne omezeni)

jbrestan 2016-04-18T21:51:05.000053Z

@darwin: To 99/1% mi pripomnelo tenhle clanek (byt z F# sveta): http://tomasp.net/blog/2015/library-layers/index.html