Prečo Spring Repository nie je DDD Repository

Zdeno Jašek

24.05.2021
Knižnica Spring poskytuje rozhranie Repository, ktoré kedysi o sebe hlásalo, že ide od Repository v zmysle Domain-Driven Design. V nových verziách Springu sa už toto zavádzajúce tvrdenie v dokumentácii nevyskytuje. Dôvod je jednoduchý: Spring rozhranie Repository nie je Repository podľa Domain-Driven Design. Repository podľa Domain-Driven Design Účelom Repository v DDD je poskytnúť prístup k takzvaným „agregátom“. Agregát je množina súvisiacich objektov, … čítať viac

Cargo culty v Jave: objektovo-orientované programovanie

Zdeno Jašek

02.09.2020
Cargo cult V južnom Pacifiku na ostrove Tanna žije primitívny kmeň, ktorý uctieva američana Johna Fruma. Aby ho k sebe privolali, postavili si lietadlá a obrovské vysielače. Vyzbrojili sa bajonetmi a pochodujú v šíkoch pod americkou zástavou. Presne takto to odpozorovali, keď bol John Frum na ostrove Tanna: stačí pochodovať s bajonetmi, otáčať s vysielačmi … čítať viac

Novinky a trendy z DDD a Microservices priamo z µCon London 2019

Zdeno Jašek

04.06.2019
Koncom mája som sa zúčastnil konferencie µCon London 2019, určite jedného z najväčších svetových podujatí tohto typu. 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 … čítať viac

TDD pre DDD a DDD pre TDD

Zdeno Jašek

05.03.2019
Ako súvisí Test-driven development (TDD) s Domain-driven designom (DDD)? Na pohľad rôzne oblasti vývoja softvéru smerujúce do nesúvisiacich častí majú veľa spoločné a výborne sa dopĺňajú. Domain-driven design Hlavným cieľom Domain-driven designu je vytvoriť spoločný doménový jazyk pre používateľa, analytika, dizajnéra, programátora a testera. Dôležité je, aby týmto jazykom hovoril aj zdrojový kód, aby sa pojmy zo … čítať viac

Vývoj komplexného softvéru

Zdeno Jašek

15.02.2019
 Vlkolak je bežný človek, ktorý sa v noci náhle a nečakane premení na monštrum. Presne to sa deje aj pri vývoji softvéru: jedného dňa sa samotný proces vývoja softvéru zmení na monštrum. Každý zásah do softvéru je utrpením, oprava chyby spôsobí chyby ďalšie, termíny sa nedodržiavajú, rozpočty sa prekračujú, programátor si nemôže byť istý, kedy … čítať viac

Princípy objektovo orientovaného programovania v praxi

Zdeno Jašek

07.09.2018
Na jednoduchom príklade demonštrujem spôsob využitia objektovo orientovaných princípov. Ukážem, že v porovnaní s priamočiarym prístupom je objektový zápis prehľadnejší. Využijem aj hlavný princíp techniky „domain driven design“ (DDD), ktorým je „všadeprítomný jazyk“. A ukážem aj spôsob využitia niektorých SOLID princípov. čítať viac

Vývoj softvéru ako stavba babylonskej veže

Zdeno Jašek

22.08.2018
DDDProgramovanie
Podľa príbehu z Biblie babylonskú vežu ľudia nedostavali preto, lebo sa nemohli dohovoriť. Keď stavitelia hovoria rôznymi jazykmi, akýkoľvek komplikovaný projekt skončí nezdarom. čítať viac

Používate dedičnosť v objektovom svete správne?

Zdeno Jašek

13.08.2018
Dedičnosť v objektovom svete býva častokrát používaná nevhodne. Keďže návodov na správne použitie dedičnosti je veľa, tento článok uvádza návody na nesprávne použitie dedičnosti (antipatterny). Zároveň vysvetlí, prečo je použitie dedičnosti nesprávne a ako by sa v danom prípade malo postupovať. čítať viac

Mutable vs. Immutable

Zdeno Jašek

13.08.2018
S nástupom funkcionálnych jazykov sa častokrát objavuje požiadavka na nemeniteľnosť atribútov objektu – immutability. Tento článok upozorňuje na to, kde sú hranice využitia nemeniteľných objektov pri objektovo-orientovanom programovaní. čítať viac

Zlo zvané obojsmerná závislosť

Zdeno Jašek

13.08.2018
Používanie obojsmerných závislostí v objektovom modeli je jednou z príčin vzniku ťažko udržiavateľného softvéru. Tento článok sa zaoberá tým, kedy obojsmerné závislosti vznikajú, prečo sa im treba vyhýbať a ako. čítať viac

CQRS – pre veľa komplikovaných dát

Zdeno Jašek

13.08.2018
Command and Query Responsibility Segregation (CQRS) je návrhový vzor, ktorý odporúča implementovať dva rôzne modely pre ten istý pojem v závislosti od účelu: jeden model pre zápis dát („command“) a druhý model pre čítanie dát („query“). čítať viac