====== Přednášky ====== /* 2019 */ **1. Klíčové koncepty modelování systémů I** [Kadleček] NEW {{:courses:b6b36omo:1_-_klicove_koncepty_modelovani_systemu_i_2018.pdf| }} * Programovací paradigmata * Deklarativní versus imperativní reprezentace * 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] NEW {{ :courses:b6b36omo:2_-_objektove_orientovany_pristup_2018.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 **3. Klíčové koncepty modelování systémů II** [Kadleček] NEW {{:courses:b6b36omo:3_-_klicove_koncepty_modelovani_systemu_ii_2018.pdf| }} * Abstraktní datové typy, mutabilita, imutabilita, idempotentnost * Rekurze, datové typy v rekurzi * Primitiva, vrstvy, principy kombinace * Metalingvistická abstrakce * SOLID, DRY **4. Creational design patterns** [Kadleček, Mayer] NEW {{:courses:b6b36omo:4_-_creational_design_patterns_a_1_.pdf| }} NEW {{:courses:b6b36omo:4_creationaldesignpatterns_b.pptx_1_.pdf| }} * Factory a Abstract Factory * Builder * Prototype * Singleton * Dependency injection * Příklady **5. Structural design patterns** [Mayer] NEW {{:courses:b6b36omo:5_structuraldesignpatterns_2018.pdf| }} * Adapter * Proxy * Bridge * Composite * Facade * Decorator * Flyweight * Příklady **6. Behavioral design patterns** [Kadleček] {{:courses:a7b36omo:6_-_behavioral_design_patterns_2_.pdf| }} * Iterator * Chain of responsibility * Strategy * Visitor * Observer * Template method * State * Memento * Interpreter * Příklady **7. Datové struktury a patterny** [Kadleček] {{ :courses:b6b36omo:7_-_data_design_patterns_2018.pdf| }} * Plně persistentní, částečně persistentní datové a retroaktivní datové struktury * Retroaktivní datové struktury * Lazy Loading, Object pool, Cache **8. Map, filter, reduce pattern v NoSQL světě** [Kadleček] NEW {{:courses:b6b36omo:8_-_map_reduce_patterns_2018.pdf| }} * Map reduce framework * Sumarizační patterny * Filtrační patterny * Organizační patterny * Join patterny * Meta patterny **9. Map, filter, reduce pattern v Java ** [Kadleček] {{:courses:a7b36omo:9_-_map_2ffilter_2freduce_v_java_1_.pdf| }} * Abstrakce Control Flow * Map * Filter * Reduce * Collect * Paralelizace map reduce v Java a performance pohled **10. Patterny pro tvorbu Microservices ** [Kadleček] NEW {{:courses:b6b36omo:10_-_patterny_pro_microservices_2018_2.pdf| }} * Materialized view * Event sourcing * CQRS * Eventual consistency * Saga **11. Generické programování, IOC/DI** [Šebek] NEW {{:courses:a7b36omo:generics.pdf| }} {{:courses:b6b36omo:ioc.pdf | }} * Wildcards * Horni, dolní mez * Generické typy * Parametrizované objekty * Generika a subtypy **12. Specifikace, Návrhy specifikací, Web API, Apiary, Swagger, GraphQL** [Šebek] NEW {{:courses:b6b36omo:12_specifikace_rozhrani_v_2.pdf | }} {{:courses:b6b36omo:12_graphql.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 **13. Patterny pro tvorbu UI** [Kadleček] NEW {{:courses:b6b36omo:13_-_patterny_pro_ui.pptx_2_.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