Podujatia IT Konferencie O novinkách a trendoch z DDD a Microservices priamo z µCon London...

O novinkách a trendoch z DDD a Microservices priamo z µCon London 2019

Koncom mája som sa zúčastnil konferencie µCon London 2019. Stretnutie bolo zamerané na microservices, DDD (Domain-Driven Design) a softvérovú architektúru. Vo svete vývoja veľkých aplikácií sú tieto témy veľmi úzko prepojené. Softvérová architektúra veľkých informačných systémov je v súčasnosti stavaná hlavne ako architektúra typu microservices. Domain-Driven Design je taktika členenia aplikácie na logické celky, ktoré následne určujú funkčnosť a obsah jednotlivých modulov v microservices.

Konferenciu organizovala komunita „Skills Matter“ v Londýne. Pred tromi rokmi som sa zúčastnil podobného stretnutia tejto komunity, ktoré však bolo zameraná výlučne len na Domain-Driven Design. Vtedy ho otváral Eric Evans – „father or everything“ (ako ho nazval moderátor). Organizátori tohtoročnej DDD-konferencie sa rozhodli zlúčiť tému DDD s témou microservices. Keďže ide o veľmi príbuzné oblasti, ich zlúčenie rozhodne prospelo.

Stretnutie sa podstatne rozrástlo o technologický rozmer a aj o účastníkov. Preto sa konalo vo väčších priestoroch než naposledy – v budove Business Design Center. A zatiaľ čo stretnutie pred tromi rokmi trvalo iba jeden deň, tohto roku už rozšírený záber konferencie zabral tri dni v troch samostatných behoch.

Príspevky bežali v troch oddelených sálach. Z ponuky som si vyberal hlavne prednášky týkajúce sa Domain-Driven Designu. V krátkosti by sa dali trendy softvérovej architektúry veľkých informačných systémoch zhrnúť tak, že už nikto nepochybuje o potrebe rozdeľovania aplikácií na menšie subsystémy – mikroslužby. A že rozhodujúcu úlohu pri tomto rozdeľovaní hrá Domain-Driven Design so svojou koncepciou „Bounded Context“. Doménový význam a doménová reprezentácia pojmov je považovaná za kľúčový aspekt, cez ktorý sa architekti pozerajú na definovanie microservices. Veľa sa na prednáškach spomínal aj koncept doménových udalostí a vzájomnej komunikácie modulov prostredníctvom nich. Nechýbali ani „filozofické prednášky“. Pre mňa osobne bola veľkým prínosom prezentácia Simona Wardleyho: „Crossing the River by Feeling the Stones“. Zamýšľal sa v nej nad významom stratégie, mapy, komunikácie a doktrín pri vývoji softvéru.

V nasledujúcom slede prinášam pár zaujímavých faktov, ktoré som si na jednotlivých prednáškach poznačil. Ak máte chuť vypočuť si niektoré témy z konferencie podrobnejšie, pozývam vás na najbližšie stretnutie slovenskej DDD-community v Bratislave, kde sa vybraným prednáškam budem venovať hlbšie. Všetky prednášky z konferencie sú zverejnené aj na webe organizátora – komunity Skills Matter.

Zaujímavosti:

  • Trendom je zdôrazňovanie sociálneho aspektu vývoja – rozdeľovania vývojárov na tímy a ich zviazanosť s konkrétnou doménou a službami.
  • Pozor na skoré oddeľovanie modulov – na dobré definovanie modulov je znalosť domény kľúčová.
  • Domain-Driven Design použila firma Taboola na riadenie akvizície a pochopenie správnej integrácie tímu novej firmy do tímu pôvodnej firmy.
  • Choreography 2.0 kladie veľký dôraz na to, aby správy posielané medzi modulmi jasne komunikovali svoj zámer (intention).
  • Neexistuje softvér bez dizajnu. Existuje iba sofvér s dobrým dizajnom alebo zlým dizajn.
  • K implementácii security na úrovni containerov (napr. Docker) treba pristupovať novým spôsobom, security as a code => DevSecOps.
  • Ak začínate s DDD, zvážte postupný nábeh. Napríklad už len využitie ValueObjectov v dizajne môže výrazne pomôcť na každom projekte.
  • Event store je vhodná databáza napríklad na riešenie audit logov.
  • Modulárny monolit (modulith) je oveľa lepšia architektúra než distibuovaný „Big Ball of Mud“. Preto treba nájsť najprv prirodzené hranice vo vnútri domény („Bounded Context“) a až potom sa snažiť o definovanie modulov.
  • Pozor na implementáciu „Big Ball of Mud“ ako distribuovaného systému (microservices). Takýto koncept vyberá to najhoršie z oboch svetov: z monolitu jeho neoddelené moduly a z microservices zase distribuovanosť riešenia. Zabrániť sa tomu dá využitím Bounded Contextu z DDD.
  • wisdom = knowledge + experience + good judgement
  • Aj GUI môže byť modulárne. Používajú sa dva prístupy: Edge-Side Include a Server-Side Include.

Dúfam, že som vás týmito myšlienkami navnadil na stretnutie DDD community v Bratislave, 17.6.2019 o 18:00 v HubHube.

Dobrý článok? Chceš dostávať ďalšie?

Už viac ako 6 200 ITečkárov dostáva správy e-mailom. Nemusíš sa báť, nie každé ráno. Len občasne.

Súhlasím so spracovaním mojich osobných údajov. ( Viac informácií. )

Tvoj email neposkytneme 3tím stranám. Posielame naňho len informácie z robime.it. Kedykoľvek sa môžeš odhlásiť.

Zdeno Jašek
Zdeno Jašek
Pracujem ako Solution Architect vo firme PosAm a programovaním sa zaoberám takmer 30 rokov. Prešiel som jazykmi Basic, Assembler, Pascal, Object Pascal, Lisp, Prolog, Magic, MUMPS, Clipper, Paradox a Java, z ktorých najmilšia mi je Java. Pracoval som hlavne ako softvérový architekt, ale aj ako programátor, analytik, dizajnér a projektový manažér. Pri vývoji softvéru sa mi najviac páči navrhovanie objektového dizajnu – obzvlášť pre zložité aplikácie. Svoje blogy chcem zamerať na postupy pri vytváraní objektového návrhu aplikácie a ich technologickej realizácii v podobe hexagonálnej architektúry a microservices.

Windows Admin

Predajca prémiových nemeckých áut hľadá do tímu Windows administrátora, ktorý by viedol infraštruktúrne projekty v Česku a na Slovensku. Práca...

Angular Medior Developer / Aplikácie pre pacientov

Chceš posunúť svoje Frontend schopnosti na nový level. Táto IT spoločnosť, ktorá sa špecializuje na zdravotníctvo hľadá Angular Developera. Práca...

Medior SalesForce Developer / Consultant – REMOTE

Nový projekt, noví ľudia, lepšie podmienky? Ak Ti to znie lákavo, porozmýšľaj o práci pre medzinárodnú IT spoločnosť v...

IT Architekta pre FE riešenia

Chceš stabilné zamestnanie, vychutnávať si skvelý kolektív a mať priestor na realizáciu svojich riešení? Pre spoločnosť pôsobiacu v energetike...

Data Scientist / REMOTE

Pre mladý startup vyvíjajúci softvér, ktorý prispieva hráčom k lepšiemu zážitku z hrania, hľadáme Data Scientist. Založili ho dvaja...

FullStack PHP Developer

Chcel by si dlhodobú spoluprácu, dobré pracovné podmienky, seriózny prístup? Hľadáme FullStack PHP Developera pre spoločnosť, ktorá sa zaoberá...

Java Software Architect

Mrháš svojim talentom? Urob prvý krok a zistí čo Ti dnešok ponúka. Medziiným aj prácu v medzinárodnej IT spoločnosti,...

Jakub Lajmon – IT-čkár, ktorý mieri do vesmíru

Začal programovať ako 12-ročný na gymnáziu v Trstenej, študoval softvérové inžinierstvo a manažment služieb v Brne, založil firmu IN...

Živé IT projekty: Foodge

Živé IT projekty sú jedinečným vzdelávacím projektom spolupráce univerzít s priemyselnou praxou pod záštitou Katedry počítačov a informatiky FEI...

Ako sa stať testerom

Chceš si vyskúšať prácu testera? Rád by si videl, čo všetko práca testera obnáša a aké všetky typy testov a...

Čítaj ďalej:

Dobrý článok? Chceš dostávať ďalšie?

Už viac ako 6 200 ITečkárov dostáva správy e-mailom. Nemusíš sa báť, nie každé ráno. Len občasne.

Súhlasím so spracovaním mojich osobných údajov. ( Viac informácií. )

Tvoj email neposkytneme 3tím stranám. Posielame naňho len informácie z robime.it. Kedykoľvek sa môžeš odhlásiť.