====== Přednášky ====== /* 2017 */ **1. Klíčové koncepty modelování systémů I** [Kadleček] {{ :courses:a7b36omo:1_-_klicove_koncepty_modelovani_systemu_i_1_.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] {{:courses:a7b36omo:2_-_objektove_orientovany_pristup.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] {{ :courses:a7b36omo:3_-_klicove_koncepty_modelovani_systemu_ii_4_.pdf| }} * Abstraktní datové typy, mutabilita, imutabilita, idempotentnost * Rekurze, datové typy v rekurzi * Primitiva, vrstvy, principy kombinace * Metalingvistická abstrakce * SOLID, DRY **4. Creational design patterns** [Mayer] {{:courses:a7b36omo:4_creationaldesignpatterns.pdf| }} * Factory a Abstract Factory * Builder * Prototype * Singleton * Dependency injection * Příklady **5. Structural design patterns** [Mayer] {{:courses:a7b36omo:5_structuraldesignpatterns.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:a7b36omo:7_-_datove_struktury_a_patterny.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] {{:courses:a7b36omo:8_-_map_reduce_patterns.pptx_1_.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] {{:courses:a7b36omo:10_-_patterny_pro_microservices.pptx_3_.pdf| }} * Materialized view * Event sourcing * CQRS * Eventual consistency * Saga **11. Generické programování** [Šebek] {{:courses:a7b36omo:generics.pdf| }} * _ **12. Specifikace, Návrhy specifikací, Web API, Apiary, Swagger** [Mayer] {{:courses:a7b36omo:12_specifikace_rozhrani.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] {{:courses:a7b36omo:13_-_patterny_pro_ui.pptx_1_.pdf| }} * Základy UI - HTML, DOM, JavaScript, CSS * Single Page Application * Model View Controller, Model View Presenter, Model View View Model * Moderní webové frameworky * Angular, React/Redux intro