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.
- Naučiť sa definovať vlastné anotačné typy.
- Naučiť sa používať reflexiu na spracovanie anotácií.
- Precvičiť refaktorizáciu kódu pre jednoduchšiu implementáciu potrebných zmien.
- Naučiť sa implementovať anotačný procesor.
- Naučiť sa používať mirrors API pre spracovanie anotácií.
- Naučiť sa generovať zdrojový kód počas kompilácie.
- Vyskúšať vytváranie dynamického proxy.
- Vyskúšať vytváranie proxy pomocou knižnice Javassist.
- Vyskúšať modifikovanie tried pomocou Java agentov.
- Naučiť sa pracovať s type mirrors.
- Dokončiť zadanie 2.
- 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.
- Zdokonaliť sa v generovaní kódu v Jave.
- Naučiť sa používať Aspektovo-orientované programovanie
- Naučiť sa používať nástroj AspectJ.
Č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.