1. Klíčové koncepty modelování systémů I [Kadleček]
Programovací paradigmata
Deklarativní vs imperativní reprezentace
Objektový vs funkcionální vs procedurální vs logický přístup
Práce s komplexitou
Dekompozice
Hierarchie
Abstrakce používané v softwarovém vývoji(jmenné, datové, funkcionální, objektové)
2. Objektově orientovaný přístup I [Kadleček] 2023 NEW
Objekty, třídy a hierarchie tříd
Zapouzdření
Interface a abstraktní třídy
Dědičnost
Message passing
Class diagramy a příklady systémů modelovaných pomocí OOP
Volba správného přístupu
Rozdíl mezi asociací, agregací a kompozicí
Dědičnost versus kompozice
Polymorfismus
Overloading versus overriding
*Příloha k 2 a 3 (jen pro zajímavost)*
3. Funkcionální přístup [Kadleček] 2023 NEW
4. Klíčové koncepty modelování systémů II [Kadleček] 2022 NEW
Abstraktní datové typy, mutabilita, imutabilita, idempotentnost
Rekurze, datové typy v rekurzi
Primitiva, vrstvy, principy kombinace
Metalingvistická abstrakce
5. Vytváření objektů [Kadleček] 2022 NEW
6. Modelování chování aplikace [Kadleček] 2022 NEW
Iterator
Chain of responsibility
Strategy
Visitor
Observer
Template method
State
Memento
Interpreter
Příklady
7. Modelování struktury aplikace [Kadleček] 2022 NEW
Adapter
Proxy
Bridge
Composite
Facade
Decorator
Flyweight
Příklady
8. Datové struktury a patterny [Kadleček] 2022 NEW
Plně persistentní, částečně persistentní datové a retroaktivní datové struktury
Retroaktivní datové struktury
Lazy Loading, Object pool, Cache
9. Funkcionální přístup II [Kadleček] 2022 NEW
Supplier a Consumer
Akumulátor
Monáda a functor
Future/Promisy
Řešení chyb a NPE
10. Map, filter, reduce pattern v Java [Kadleček] 2022 NEW
11a. Generické programování [Šebek] 2022 NEW
Wildcards
Horni, dolní mez
Generické typy
Parametrizované objekty
Generika a subtypy
11b. Specifikace, Návrhy specifikací, Web API, Apiary, Swagger, GraphQL [Šebek] 2022 NEW
Proč specifikace
Behaviorální ekvivalence
Struktura a modelování specifikace
Testování specifikací
Specifikace pro mutující metody, Null Reference, pre a post conditions
Návrh systému výjimek
Vyjímky pro chyby a speciální výsledky, zneužívání výjimek
Deterministické versus nedeterministické specifikace
Deklarativní versus operativní specifikace
Těsné versus volné specifikace
Návrh dobrých specifikací
Webové
API, REST, GraphQL
Swagger, RestAPI
12. Patterny pro tvorbu Microservices [Kadleček] 2022 NEW
13. Domény, modely, eventy [Kadleček] 2022 NEW
Old 1. STARÉ - NEUČIT NA ZKOUŠKU. Patterny pro tvorbu UI [Kadleček]
Základy UI -
HTML, DOM, JavaScript,
CSS
Single Page Application
Model View Controller, Model View Presenter, Model View View Model
Patterny Future/Promise a monáda
Moderní webové frameworky, Angular, React/Redux intro
Old 2. STARÉ - NEUČIT NA ZKOUŠKU. Map, filter, reduce pattern v NoSQL světě [Kadleček]
Map reduce framework
Sumarizační patterny
Filtrační patterny
Organizační patterny
Join patterny
Meta patterny