Summary of Study |
Summary of Branches |
All Subject Groups |
All Subjects |
List of Roles |
Explanatory Notes
Instructions
Web page:
https://cw.fel.cvut.cz/wiki/courses/BD6B36OMO
Anotation:
V dnešní době se ukazuje, že neexistuje jediný správný přístup pro modelování a implementaci softwarové aplikace. Namísto toho je vhodné problém dekomponovat a na jednotlivé moduly, vrstvy, podproblémy aplikovat pro ně vhodné přístupy. Tento předmět ukazuje jak využít objektového a funkcionálního programování, principů z mikroservisních a reaktivních architektur pro návrh moderních aplikací, které nejen fungují, ale splňují i nefunkční požadavky na modularitu, flexibilitu, rozšiřitelnost, škálovatelnost, performance a vysokou dostupnost.
Study targets:
Porozumění základním principům objektového přístupu, schopnost jejich správné aplikace ve středně složitých situacích.
Course outlines:
| 1. | | Klíčové koncepty modelování software - funkcionální versus objektový přístup, reprezentace, dekompozice, abstrakce, hierarchie |
| 2. | | Abstraktní datové typy, imutabilita |
| 3. | | Objektově orientovaný přístup pro modelování - třídy, dědičnost, kompozice, polymorfismus |
| 4. | | Funkcionální přístupy pro modelování unkcionálního programování - pure funkce a funkce vyššího řádu, lambda expressions, closures, currying, transparentnost reprezentace |
| 5. | | Objektově orientované návrhové vzory pro vytváření objektů |
| 6. | | Objektově orientované návrhové vzory pro reprezentaci struktury objektů |
| 7. | | Objektově orientované návrhové vzory pro chování objektů |
| 8. | | Návrhové vzory pro reprezentaci a práci s datovými strukturami |
| 9. | | Map, filter, reduce v Java |
| 10. | | Map, filter, reduce pattern v NoSQL světě |
| 11. | | Návrhové vzory v mikroservisním světě - agregace, orchestrace, eventuální konzistence, sága, event sourcing, materialized view |
| 12. | | Návrhové vzory pro reaktivní architekturu - circuit breaker, backpreassure, CQRS, promisy a monády |
| 13. | | Generika v Java |
| 14. | | Specifikace a návrh API - Api gateway, rest, swagger, graphQL |
Exercises outline:
| 1. | | Úvod |
| 2. | | Jak v Java na Objekty, Třídy, instance a atributy |
| 3. | | Polymorfismus a dědičnost v Java, modularita |
| 4. | | Skládání vs. Dědičnost, implementace objektového návrhu |
| 5. | | Návrhový vzor adaptér a iterátor |
| 6. | | Návrhový vzor state a strategy |
| 7. | | Návrhový vzory abstract factory, factory method a dependency injection |
| 8. | | Návrhový vzor Interpreter a visitor |
| 9. | | Návrhový vzor Observer |
| 10. | | Map, filter, reduce |
| 11. | | Generika |
| 12. | | Specifikace API a swagger |
| 13. | | CQRS a event sourcing |
Literature:
Requirements:
Základní znalost programování, základní znalosti matematiky, schopnost exaktního myšlení.
Note:
Subject is included into these academic programs:
| Page updated 17.12.2025 09:52:19, semester: L/2026-7, L/2025-6, L/2024-5, Z/2025-6, Z/2026-7, Send comments about the content to the Administrators of the Academic Programs |
Proposal and Realization: I. Halaška (K336), J. Novák (K336) |