clojure-poland

2016-02-10T21:32:46.000488Z

e

2016-02-10T21:32:54.000489Z

nie udalo sie rozkrecic channela

2016-02-10T21:32:54.000490Z

;d

jaen 2016-02-10T21:56:06.000491Z

E tam, całkiem dobrze szło przez chwilę

jaen 2016-02-10T21:56:17.000492Z

Najwięcej aktywności od ho ho i trochę

jaen 2016-02-10T21:56:32.000493Z

Po prostu mało nas (do pieczenia chleba)

2016-02-10T21:57:30.000494Z

widze ze w offtopie piszecie zle rzeczy na microserwisy to nie rozmawiam z wami ;d

jaen 2016-02-10T21:57:42.000495Z

Ale taka prawda

jaen 2016-02-10T21:57:53.000496Z

Zaczynanie od mikroserwisów to proszenie się o kłopoty xD

jaen 2016-02-10T21:58:13.000497Z

Bo skąd masz wiedzieć jak rozdzielić rzeczy pomiędzy serwisy

jaen 2016-02-10T21:58:20.000498Z

Jak jeszcze nie znasz domeny wystarczająco dobrze?

2016-02-10T22:00:59.000499Z

jak dla mnie zaczynanie od monolitu to proszenie sie o klopoty bo jak juz sobie uswiadomisz ze cos zjebales to wszystko jest tak zaplatane ze i tak nic z tym nie zrobisz 😛 a tak na serio to mysle ze kwestia podejscia, obecnie dla mnie jakis mikroserwisy sie bardziej sprawdzaja. dziele sobie zawsze jakos funkcjonalnie ze kazdy ma robic jedna rzecz i przynajmniej mam w miare maly codebase w kazdym

2016-02-10T22:01:09.000500Z

no i sa dzieki temu ladnie odseparowane wiec ciezko czasami isc na skroty

jaen 2016-02-10T22:06:09.000501Z

Ale właśnie po to jest hexagon w monolicie

jaen 2016-02-10T22:06:20.000502Z

Bo taki typowe Railsowy spaghetti gunwokod

jaen 2016-02-10T22:06:29.000503Z

To jasne, to już po trzech miesiącach człowiek chce sie pociąć

jaen 2016-02-10T22:06:58.000504Z

Bo nagle jakiś bardzo inteligentny człowiek wsadził logikę do callbacku lifecyclowego modelu

jaen 2016-02-10T22:07:00.000505Z

Czy coś

jaen 2016-02-10T22:07:25.000506Z

Ale po prostu takie przedwczesne dzielenie aplikacji na sztywne kawałki

jaen 2016-02-10T22:07:34.000507Z

Jest dość złym pomysłem IMO

jaen 2016-02-10T22:07:40.000508Z

Bo trudno ocenić dobrą granulację a priori

jaen 2016-02-10T22:07:52.000509Z

Pół biedy jak zrobisz za duże serwisy, to idzie potem jakoś rozdzielić

jaen 2016-02-10T22:07:55.000510Z

Ale jak za małe?

jaen 2016-02-10T22:07:58.000511Z

Well, ups

jaen 2016-02-10T22:08:16.000512Z

A hexagon to trochę jak monolity tylko w jednym codebase

jaen 2016-02-10T22:08:25.000513Z

Piszesz odseparowany pure core

jaen 2016-02-10T22:08:37.000514Z

I te tzw. adaptery które komunikują go ze światem zewnętrznym

jaen 2016-02-10T22:08:46.000515Z

I potem jak już piszesz tą aplikację na tyle długo

jaen 2016-02-10T22:08:53.000516Z

Że widzisz jak się logicznie dzieli domena na części

jaen 2016-02-10T22:09:04.000517Z

To łatwo jest taki monolit pociąć wzdłuż tych interefejsów

jaen 2016-02-10T22:09:10.000518Z

Tyle teorii ; d

jaen 2016-02-10T22:09:23.000519Z

Jedyny przydatny przedmiot przez sześć lat studiów xD

2016-02-10T22:10:38.000520Z

no ale w mikroserwisach jak chcesz czesc zupdateowac to nie musisz calej apki ponownie deployowac tylko sobie jeden mikroserwis zmieniasz i spoko

jaen 2016-02-10T22:10:56.000521Z

Tego nie kwestionuję

jaen 2016-02-10T22:11:08.000522Z

Ale majac dwa egzemplarze monolitu i tak możesz zrobić już rolling release

jaen 2016-02-10T22:11:13.000523Z

Więc dla end usera wychodzi na to samo

2016-02-10T22:11:27.000524Z

plus kwestia gdzie sie ta aplikacja znajduje, bo wiadomo nie bede pisac mikroserwisow na desktopa, ale tutaj tez wole mocna separacje

2016-02-10T22:11:39.000525Z

ze np logika jest w osobnym libie i sie komunikuje tylko za pomoca eventow z gui

jan.zy 2016-02-10T22:11:40.000526Z

przecież to bez znaczenia czy masz monolit czy mikroserwisy. spaghetti da się zrobić i w jednym i drugim podejściu. to raz mikroserwisy można uruchomić na jednym jvm a monolit można rozproszyć

jan.zy 2016-02-10T22:11:43.000527Z

to dwa :simple_smile:

jan.zy 2016-02-10T22:12:06.000528Z

ja nie czaję całe tej dyskusji co jest lepsze mikro czy mono

2016-02-10T22:12:33.000529Z

no ja sie troche smialem z tym pisaniem zlych rzeczy na mikroserwisy

2016-02-10T22:12:45.000530Z

ale fakt jest taki ze mi osobiscie akurat lepiej sie pracuje przy mikroserwisach

2016-02-10T22:13:02.000531Z

jezeli komus monolit bardziej pasuje to spoko, bic nie bede ;d

jan.zy 2016-02-10T22:13:07.000532Z

tak, na początku tak się wydaje że jest łątwiej :simple_smile:

2016-02-10T22:13:43.000533Z

wiem ze sa pewne wady jak np deployowanie to masakra w porownaniu do monolitu (z reguly) albo dochodza kolejne problemy jak service discovery

jan.zy 2016-02-10T22:13:53.000534Z

i że możesz zrobić update tylko części systemu - to niby ma być zaleta

2016-02-10T22:14:53.000537Z

jak dla mnie tak, jak odkryje ze gdzies mialem jakis blad to nie musze wszystkiego deployowac ponownie. tylko sobie ubijam mikroserwis i szybko stawiam nowy

jan.zy 2016-02-10T22:16:04.000538Z

to jest plus

jaen 2016-02-10T22:24:22.000539Z

Ja generalnie nie mówię, że mikro są złe, tylko po prostu to nie jest dobry wybór na początek, jak jeszcze nie znasz dokładnie swojej domeny.

jaen 2016-02-10T22:24:54.000540Z

Ale jak już ją dość dobrze znasz, i twoja aplikacja jest już pewnej skali to na pewno ma to wiele zalet (vide Netflix).

2016-02-10T22:32:01.000541Z

no ale to i tak czy piszesz monolit czy mikroserwisy musisz sie wczesniej zastanowic nad domena rozbic na jakies funkcjonalnosci i wtedy zaczac klepac. i wydaje mi sie ze latwiej zmergowac 2 serwisy w jeden w systemie gdzie masz dosc luzne polaczenia niz w monolicie w ktorym latwiej (a przynajmniej dla mnie ;p) narobic zamieszanie i pracujesz nad jednym codebase'm.

2016-02-10T22:32:02.000542Z

w sumie brokernel jest troche takim monolitem @karol

2016-02-10T22:32:38.000543Z

ale hexagonalnym za razem i pisanym z mysla o tym, ze kiedys sie rozpadnie na mniejsze

2016-02-10T22:33:24.000544Z

tzn w sumie

2016-02-10T22:33:28.000545Z

cholera wie

2016-02-10T22:34:19.000546Z

no co komu pasuje. ja mam skrzywienie ze nawet apka desktopowa to tak naprawde 2 osobne czesci, ale nie mowie ze to jedyne sluszne podejscie tylko takie jakie mi obecnie najbardziej pasuje

jaen 2016-02-10T22:35:12.000547Z

Nie no, znaczy jasne że SRP, blah blah blah, ale wydaje mi sie że pewne rzeczy jest trudno ocenić a priori

jaen 2016-02-10T22:35:19.000548Z

I to nawet jak się już ma w tym doświadczenie

jaen 2016-02-10T22:35:26.000549Z

Każdy projekt jest jednak na swój sposób unikalny

jaen 2016-02-10T22:35:55.000550Z

Czytam tak sobie teraz DDD Evansa właśnie i są różne takie przykłady a propos rozumienia dziedziny i jak to może być niekoniecznie trywialne

jaen 2016-02-10T22:36:42.000551Z

Ja się zupełnie zgadzam z tym że taka separacja po bounded contextach jest jak najbardziej na rzeczy (Evans nawet miał prezentację na jakiejś konferencji ostatnio o mikroserwisach w kontekście DDD)

jaen 2016-02-10T22:36:54.000552Z

Tylko wydaje mi się że trzeba do niej dojść iteracyjnie od ogółu do szczegółu

jaen 2016-02-10T22:37:06.000553Z

A nie próbować zgadywać jak to zrobić zanim się ma o tym dobre pojęcie

jaen 2016-02-10T22:37:15.000554Z

I potem to jakoś łatać składając rzeczy do kupy

jaen 2016-02-10T22:37:25.000555Z

Ale to w moim wypadku takie dywagacje dość teoretyczne

jaen 2016-02-10T22:37:29.000556Z

Bo naczytałem się dużo

jaen 2016-02-10T22:37:39.000557Z

Ale nigdy nie miałem projektu o tej skali w łapkach

2016-02-10T22:37:56.000558Z

ja mam w sumie tendencje do implementacji rozproszonych analogow unixa chyba :d

2016-02-10T22:38:36.000559Z

no w unixie fajnie jest to zrobione, bo sie standaradowe programy ladnie komponuja

2016-02-10T22:39:58.000560Z

a co do designu od ogolu do szczegolu to calkiem spoko prezentacje widzialem ostatnio: https://www.youtube.com/watch?v=Tb823aqgX_0 o odwrotnym podejsciu

jaen 2016-02-10T22:40:37.000561Z

Jakby co to to jest ta prezka o której mówiłem - https://www.youtube.com/watch?v=yPvef9R3k-M

jaen 2016-02-10T22:40:39.000563Z

Ciekawa bardzo

2016-02-10T22:40:57.000565Z

za DDD bede sie musial zabrac w koncu

2016-02-10T22:41:05.000566Z

a prezki obadam zaraz ;d

2016-02-10T22:42:03.000567Z

no tez o DDD duzo slyszalem wiec sobie prezentacje obadam, ale kiedys pracowalem przy jednym systemie ktory podobno zalozenia DDD spelnial i to byla tragedia

2016-02-10T22:42:11.000568Z

ale zaprojektowana przez niemcow to tez nie ma co sie dziwic w sumie

jaen 2016-02-10T22:42:52.000569Z

Ja czytam ksiązkę Evansa ("Domain Driven Deisgn") i jest niezła

jaen 2016-02-10T22:43:09.000570Z

Jeszcze z takich "żelaznych pozycji" jest Vaughan, mam go w kolejce po tej

jaen 2016-02-10T22:43:18.000571Z

Generalnie nakierowane to dość mocno na obiektówkę jest

jaen 2016-02-10T22:43:29.000572Z

Ale wydaje mi się że w przeciwieństwie do deisgn patternów GoFa

jaen 2016-02-10T22:43:35.000573Z

Są to raczej dość uniwersalne rzeczy

2016-02-10T22:43:56.000574Z

w sumie tak jak sobie teraz o tym mysle

2016-02-10T22:44:59.000575Z

to u nas jakos doszlo do tego, ze chcemy ustalic “jezyk systemu” i pozostawic reszte kwestii kreatywnosci ownerow poszczegolnych modulow

jaen 2016-02-10T22:45:55.000576Z

No to brzmi trochę jak ubiquitous language

jaen 2016-02-10T22:45:59.000577Z

W jakiejś postaci

jaen 2016-02-10T22:46:33.000578Z

Wy macie o tyle prościej

jaen 2016-02-10T22:46:43.000579Z

Że sami jesteście swoimi ekspertami domenowymi

jaen 2016-02-10T22:46:55.000580Z

W sensie, rozumiecie czego potrzebujecie do testowania tych rzeczy na poteflonach

2016-02-10T22:47:10.000581Z

no, ale projekt rozpina sie w sumie na kilka takich wyraznych domen i one sie pokrywaja jakby z tym jak ludzie w biurze siedza 😄

jaen 2016-02-10T22:47:25.000582Z

A nie że przychodzi koleś i chce aplikację do zarządzani spedycją, a ty nie wiesz jak działają listy tranzytowe czy inne rzeczy

jaen 2016-02-10T22:47:30.000583Z

Które dla nich są oczywiste

2016-02-10T22:47:37.000584Z

to prawda

jaen 2016-02-10T22:48:09.000585Z

No i DDD jest teoretycznie właśnie do takich sytuacji stworzony

jaen 2016-02-10T22:48:18.000586Z

Tylko wymaga to też zaangażowania ze strony klienta

jaen 2016-02-10T22:48:45.000587Z

A dużo klientów myśli na zasadzie "ej dobra małpki, ja wam mówie zróbcie aplikacje, ale nie wytłumaczę wam jak, domyślajcie się"

jaen 2016-02-10T22:48:52.000588Z

It can't be handsfree

2016-02-10T22:48:53.000589Z

taa

2016-02-10T22:49:19.000590Z

czasami to nawet wystepuje wenatrzfirmowo

2016-02-10T22:50:08.000591Z

a najbardziej wkurzajace jest gdy ludzie maja pisac cos co jakistam projektant wyrysowal ale nie maja najmniejszego pojecia co to jest i po co i jest wieczny ping pong

2016-02-10T22:51:16.000592Z

na dzwiek UML dalej mi ciezko

jaen 2016-02-10T22:51:18.000593Z

Yea, Evans po tym jedzie właśnie

jaen 2016-02-10T22:51:38.000594Z

DDD to właśnie taka odpowiedź na to, że spoko analityk sobie przeanalizuje, może nawet dobrze

jaen 2016-02-10T22:51:45.000595Z

Ale jak nie ma informacji zwrotnej od programistów

2016-02-10T22:51:59.000597Z

wydaje mi sie ze generalnie podzial na analitykow/projektantow/programistow jest dosc sztuczny

jaen 2016-02-10T22:52:04.000598Z

To prędzej czy później ten pięknie zaprojektowany a priori model się rozjedzie z rzeczywistością

jaen 2016-02-10T22:52:13.000599Z

W obie strony - i implementacji i logiki biznesowej

2016-02-10T22:52:17.000600Z

jak kiedys pracowalem przy projekcie w domenie ktorej kompletnie nie znalem to mialem staly kontakt z klientem

2016-02-10T22:52:31.000601Z

i przynajmniej moglem sie szybko dopytac czy to co robie ma sens w ogole

2016-02-10T22:54:29.000602Z

wiadomo, ze projekty sa rozne itp ale mam wrazenie ze programisci pracuja zdecydowanie szybicej i lepiej jak maja dosc wolna reke 😜

jaen 2016-02-10T22:56:54.000603Z

No nie mogą mieć też za wolnej, bo zarządznie programistami to jak wypasanie kotów, ale tak - za duże ograniczenia śmierdzą.

jaen 2016-02-10T22:57:28.000604Z

No i Evans też to porusza, że każdy z programistów powinien być w jakimś stopniu analitykiem, a przynajmniej powinno być kilkuta takich którzy są dobrymi analitykami i programistami jednocześnie

jaen 2016-02-10T22:57:35.000605Z

Zeby próbować tą resztę kotów ogarnąć

2016-02-10T23:00:27.000606Z

znalazlem jakis DDD reference od niego i ma 62 strony to ogarne i sie wypowiem 😛

2016-02-10T23:01:10.000607Z

jak nam team podrosnie to bedziemy alokowac kolejne osoby pod skrzydla aktualnych ownerow roznych modulow i powinno byc cool ;d

jaen 2016-02-10T23:03:49.000608Z

Reference niby spoko, ale lepiej przeczytać całą ksiązkę jak będziesz miał czas

jaen 2016-02-10T23:04:15.000609Z

DDD/event sourcing/CQRS to rzeczy nad którymi trzeba trochę pomyśleć zanim zaskoczą