Zoznam všetkých cieľov
Prednášky
- Pochopiť, čo je metaprogramovanie a aké sú jeho typy.
- Vedieť rozlíšiť rôzne reprezentácie programov.
- Naučiť sa, čo sú metadáta ku kódu a zoznámiť sa s ich príladmi.
- Pochopiť význam pridávania metadát ku kódu.
- Naučiť sa vytvárať vlastné anotačné typy v jazyku Java.
- Naučiť sa používať anotácie pomocou reflexie.
- Pochopiť, čo je to proces a ako je štruktúrovaný.
- Zoznámiť sa s pamäťovým modelom procesu.
- Spoznať zásobník volaní a jeho využitie.
- Zoznámiť sa s optimalizáciou koncových volaní.
- Spoznať možnosti introspekcie zásobníka volaní v Jave.
Cvičenia
- Vyskúšať implementáciu perzistencie bez použitia techník metaprogramovania.
- Pripraviť sa na riešenie zadaní z predmetu Metaprogramovanie.
- Zoznámiť sa s kostrou projektu.
- Naučiť sa používať reflexiu pre analýzu tried.
- Naučiť sa čítať hodnôt atribútov objektov pomocou reflexie.
- Naučiť sa vytvárať inštancie tried a nastavovať hodnoty ich atribútov pomocou reflexie.
- Precvičiť dynamické generovanie SQL príkazov.
- Zlepšiť sa v analýze štruktúry tried pomocou reflexie.
- Dokončiť implementáciu zadania.
- Precvičiť návrh štruktúry kódu vzhľadom na budúce zmeny.
- Vyskúšať vytváranie dynamického proxy.
- Vyskúšať vytváranie proxy pomocou knižnice Javassist.
- Vyskúšať modifikovanie tried pomocou Java agentov.
- Vyskúšať si v praxi generovanie kódu v jazyku Java.
- Naučiť sa využívať generovanie kódu v anotačnom procesore.
- Naučiť sa používať šablónový systém Apache Velocity.
Články
Zadania
- Naučiť sa používať reflexiu v jazyku Java.
- Naučiť sa vytvárať modulárnu architektúru knižnice.
- Precvičiť získavanie metadát o kóde z anotácií.
- Naučiť sa spracovávať anotácie počas prekladu programu.
- Naučiť sa dynamicky vytvárať triedy v Jave pomocou dynamického proxy.
- Precvičiť generovanie kódu počas kompilácie aplikácie.
- Naučiť sa používať aspektovo-orientované programovanie a AspectJ.