====== Přednášky ====== /* 2020 */ **1. Klíčové koncepty modelování systémů I** [Kadleček] 2022 NEW {{:courses:b6b36omo:omo_1_klicove_koncepty_modelovani_2022.pdf| }} * 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] 2022 NEW {{ :courses:b6b36omo:omo_2_oop_2022.pdf| }} * 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)* {{:courses:b6b36omo:2_-_appendix_evoluce_jazyka_java.pdf| }} **3. Funkcionální přístup ** [Kadleček] 2022 NEW {{ :courses:b6b36omo:omo_3_funkcionalni_pristup_2022v2.pdf| }} * Pure funkce * Funkce první třídy a funkce vyššího řádu * Lambda expressions * Closures * Curying * Representation transparency * Lazy evaluation **4. Klíčové koncepty modelování systémů II** [Kadleček] 2022 NEW {{ :courses:b6b36omo:omo_4_koncepty_ii_2022.pdf| }} * 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 {{ :courses:b6b36omo:omo_5_2022.pdf| }} * Factory a Abstract Factory * Builder * Prototype * Singleton * Dependency injection * Příklady **6. Modelování chování aplikace** [Kadleček] 2022 NEW {{:courses:b6b36omo:omo_6_behavioral_patterns_2022.pdf| }} * Iterator * Chain of responsibility * Strategy * Visitor * Observer * Template method * State * Memento * Interpreter * Příklady **7. Modelování struktury aplikace** [Kadleček] 2022 NEW {{ :courses:b6b36omo:omo_7_structural_design_patterns_2022.pdf| }} * Adapter * Proxy * Bridge * Composite * Facade * Decorator * Flyweight * Příklady **8. Datové struktury a patterny** [Kadleček] 2022 NEW {{:courses:b6b36omo:omo_8_data_design_patterns_2022fix.pdf| }} * 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 {{:courses:b6b36omo:omo_9_functional_programming_ii_2022_.pdf| }} * 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 {{:courses:b6b36omo:omo_10_java_streams_2022_fix.pdf| }} * Abstrakce Control Flow * Map * Filter * Reduce * Collect * Paralelizace map reduce v Java a performance pohled **11a. Generické programování** [Šebek] 2022 NEW {{ :courses:b6b36omo:11_generics_2023.pdf | }} * Wildcards * Horni, dolní mez * Generické typy * Parametrizované objekty * Generika a subtypy **11b. Specifikace, Návrhy specifikací, Web API, Apiary, Swagger, GraphQL** [Šebek] 2022 NEW {{ :courses:b6b36omo:omo_11a_apiv2.pdf| }} * 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 {{:courses:b6b36omo:omo_12_microservices_2022_.pdf| }} * Microservisy a microservisní patterny * Materialized view * Event sourcing * CQRS * Eventual consistency * Saga **13. Domény, modely, eventy ** [Kadleček] 2022 NEW {{:courses:b6b36omo:omo_13_ddd_eda_mda_2023v2.pdf| }} * Domain Driven Design * Model Drive Architecture * Eventy a Event Driven Architecture **Old 1. STARÉ - NEUČIT NA ZKOUŠKU. Patterny pro tvorbu UI** [Kadleček] {{:courses:b6b36omo:omo_13_ddd_eda_mda_2023.pdf| }} * 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] {{:courses:b6b36omo:8_-_map_reduce_patterns_2018.pdf| }} * Map reduce framework * Sumarizační patterny * Filtrační patterny * Organizační patterny * Join patterny * Meta patterny