clojure-poland

szymon_k 2016-03-10T08:46:38.000741Z

@nooga: vaprowave? podrzuć jakiś youtube :simple_smile:

szymon_k 2016-03-10T08:47:31.000742Z

@jedi: dawno temu słuchałem sporo post-rocków, trochę bardziej w kierunku "GY!BE" może niż "God is..."

jan.zy 2016-03-10T08:47:59.000745Z

@szymon_k: ^^

szymon_k 2016-03-10T08:48:02.000746Z

😄

2016-03-10T09:02:50.000747Z

zartowalem ;d

szymon_k 2016-03-10T09:03:25.000748Z

serio? mega ciekawa estetyka moim zdaniem

jan.zy 2016-03-10T09:04:59.000749Z

proste

jaen 2016-03-10T09:40:56.000750Z

Jak już mówimy o postrzeganiu rzeczywistości to ja się zapisuję do szkoły Kanta — tj. że nie możemy postrzegać rzeczywistości samej w sobie, tylko nasza świadomość zbudowana jest w pewien sposób który pozwala nam doświadczać świata empirycznie i na tej podstawie budować sobie jego jakiś fenomenologiczny obraz. I prawdy samej w sobie nie jesteśmy w stanie nigdy poznać, ale możemy budować sobie coraz lepsze teorie w jakiś sposób ją aproksymujące.

jaen 2016-03-10T09:41:14.000751Z

A jak chodzi o muzykę to postrock ma mą okejkę, choć progrock też fajny.

jaen 2016-03-10T09:42:18.000752Z

A bardziej programistycznie — Wy tutaj jak bardzo w komponenty?

jan.zy 2016-03-10T10:04:26.000753Z

rozsądnie

jan.zy 2016-03-10T10:04:45.000754Z

czasem wcale czasem bardzo

jan.zy 2016-03-10T10:06:47.000755Z

zrobiłem jedną apkę na componentach sierry i jest to fajowa opcja, ale odnoszę wrażenie, że jeśli by miała być naprawdę duża to szukałbym czegoś innego

jan.zy 2016-03-10T10:06:50.000756Z

nie wiem czego :simple_smile:

jan.zy 2016-03-10T10:07:26.000757Z

u sierry jak wstaje ci system i gdzieś skopiesz inicjalizację to dostajesz np. mega gigantyczne error message

jan.zy 2016-03-10T10:07:35.000758Z

i weź kmiń co się dzieje

szymon_k 2016-03-10T10:07:45.000759Z

no tak, ale to tylko jak popsujesz główny komponent nie?

szymon_k 2016-03-10T10:07:51.000760Z

ja jak ustawiałem sobie komponenty jak chciałem

szymon_k 2016-03-10T10:07:53.000761Z

to potem tego nie ruszałem

jan.zy 2016-03-10T10:08:00.000762Z

którykolwiek

szymon_k 2016-03-10T10:08:11.000763Z

a (go) i działa to super sprawa moim zdaniem

szymon_k 2016-03-10T10:08:21.000764Z

używałem kilka razy i na razie zostaje przy tym

jaen 2016-03-10T10:09:21.000765Z

No ja właśnie mam taki problem, że nie umiem się zdecydować jakie stężenie componenta jest dobre

jaen 2016-03-10T10:10:48.000766Z

Przykładowo w mojej inżynierce zrobiłem coś takiego, że są komponenty domenowe udostępniające jakieś handlery i komponenty, nazwijmy to architekturalne, które ze swoich zależności filtrują te interesujące je po jakimś protokole i składają z nich np. jakiś dispatch function czy coś. Przykładowo

jaen 2016-03-10T10:11:40.000770Z

Bierze, zbiera, wrzuca do multimetody którą potem dispatchuje

jaen 2016-03-10T10:11:58.000771Z

A inne komponenty udostępniają handlery — https://gitlab.com/jaen/thesis-code-new/blob/master/src/thesis/backend/components/logic/users.clj#L86-88

jaen 2016-03-10T10:12:09.000774Z

I z jednej strony jest to spoko

jaen 2016-03-10T10:12:27.000775Z

Bo jak chcesz dodać nową rzecz to ją piszesz, wpinasz i Shit Just Works™

jaen 2016-03-10T10:12:41.000776Z

Ale czuję się prawie jakbym pisał Javę z za dużą ilością nawiasów

jaen 2016-03-10T10:12:58.000777Z

I mam wrażenie że to jest z kolei przesada z taką segregacją na komponenty

jaen 2016-03-10T10:13:55.000778Z

Zwłaszcza, że wtedy albo a) praktycznie każda funkcja musi dostawać interesujące ją komponenty jako argumenty, albo b) musisz je pisać w ciele defrecord aby się domknąć nad polami.

jaen 2016-03-10T10:13:58.000779Z

I tak źle, i tak niedobrze.

jaen 2016-03-10T10:14:18.000781Z

No i nie wiem jak to lepiej ogarnąć : F

jan.zy 2016-03-10T10:14:28.000782Z

robisz komponent jak potrzebujesz przechować jakiś stan

jan.zy 2016-03-10T10:14:29.000783Z

tyle

jan.zy 2016-03-10T10:14:42.000784Z

nie robisz komponentu jak nie potrzebujesz trzymać stanu

jaen 2016-03-10T10:16:54.000785Z

Okej, to brzmi jak jakaś heurystyka

jaen 2016-03-10T10:25:59.000786Z

Tylko się wtedy traci to automatyczne składanie systemu jak tylko dołożysz klocek. Chyba że to overengineering żeby coś takiego robić? Kojarzę że podobno niektórzy używają graph z prismaticowego plumbing do podobnych rzeczy, ale nie mam pojęcia jakby to mogło wyglądać w praktyce.

jaen 2016-03-10T10:27:12.000787Z

Dobra architektura jest trudna : |

jan.zy 2016-03-10T12:39:52.000788Z

nie heurystyka, komponenty są po to żeby trzymać stan

jan.zy 2016-03-10T12:40:13.000789Z

przeczytaj manuala do komponentu s. sierry :simple_smile:

2016-03-10T13:32:56.000790Z

ja sie przestalem martwic i pokochalem mount

jan.zy 2016-03-10T14:23:43.000791Z

oo, obadam przy najbliższej okazji

jaen 2016-03-10T16:55:38.000792Z

No ale to jednak jest jakaś heurystyka chyba — jeżeli trzymasz stan, to stwórz komponent. W przeciwnym wypadku nie. Tylko mam wrażenie, że enkapsulacja stanu to nie jedyny zysk z componenta — osobiście możliwość opisania systemu jako grafu zależności w jednym miejscu, z zależnościami i ko-zależnościami, opisania komponentu jako funkcji jego zależności i łatwiej podmiany takiego klocka, wydaje mi się równie przydatna. Całkiem możliwe że te rzeczy można też bez componenta osiągnąć i ograniczyć go tylko do stricte zarządzania stanem, ale nie jestem w tym momencie pewien jak by to można było dokładnie zrobić. Mount niby jest ciekawy, ale jakoś mu nie do końca ufam (ot choćby dlatego, że zależności są implicite w strukturze przestrzeni nazw i nie można mieć kilku instancji takiego komponentu), a nie miałem go okazji spróbować w czymś większym, żeby się przekonać czy słusznie czy nie. Podobnie bounce (https://github.com/jarohen/bounce) wydaje mi się ciekawy, ale też nie miałem okazji go w czymś większym spróbować.

jaen 2016-03-10T16:56:25.000795Z

To jest w ogóle trochę śmieszne, że mam z tym problem, bo nie jestem zatwardziałym programistą obiektowym ani nic, ale trochę nie umiem ugryźć jak do tego sensownie podejść.

2016-03-10T22:01:57.000796Z

no to troche wyglada jak obiektowka pozniej

2016-03-10T22:02:11.000797Z

mount jak na razie mnie nie ugryzl

2016-03-10T22:02:32.000798Z

chociaz zdaje sobie sprawe z tradeoffów i różnic między nim a componentem