Zoznam všetkých cieľov

Prednášky

1. týždeň: Metaprogramovanie, reflexia

  1. Pochopiť, čo je metaprogramovanie a aké sú jeho typy.
  2. Vedieť rozlíšiť rôzne reprezentácie programov.

2. týždeň: Metadáta v kóde

  1. Naučiť sa, čo sú metadáta ku kódu a zoznámiť sa s ich príladmi.
  2. Pochopiť význam pridávania metadát ku kódu.
  3. Naučiť sa vytvárať vlastné anotačné typy v jazyku Java.
  4. Naučiť sa používať anotácie pomocou reflexie.

3. týždeň: Procesy

  1. Pochopiť, čo je to proces a ako je štruktúrovaný.
  2. Zoznámiť sa s pamäťovým modelom procesu.
  3. Spoznať zásobník volaní a jeho využitie.
  4. Zoznámiť sa s optimalizáciou koncových volaní.
  5. Spoznať možnosti introspekcie zásobníka volaní v Jave.

Cvičenia

1. týždeň: Motivačný príklad

  1. Vyskúšať implementáciu perzistencie bez použitia techník metaprogramovania.
  2. Pripraviť sa na riešenie zadaní z predmetu Metaprogramovanie.

2. týždeň: Vytváranie tabuliek

  1. Zoznámiť sa s kostrou projektu.
  2. Naučiť sa používať reflexiu pre analýzu tried.

3. týždeň: Čítanie a zápis jednoduchých tabuliek

  1. Naučiť sa čítať hodnôt atribútov objektov pomocou reflexie.
  2. Naučiť sa vytvárať inštancie tried a nastavovať hodnoty ich atribútov pomocou reflexie.
  3. Precvičiť dynamické generovanie SQL príkazov.

4. týždeň: Tabuľky s cudzími kľúčmi a mazanie

  1. Zlepšiť sa v analýze štruktúry tried pomocou reflexie.
  2. Dokončiť implementáciu zadania.
  3. Precvičiť návrh štruktúry kódu vzhľadom na budúce zmeny.

7. týždeň: Proxy a agenty

  1. Vyskúšať vytváranie dynamického proxy.
  2. Vyskúšať vytváranie proxy pomocou knižnice Javassist.
  3. Vyskúšať modifikovanie tried pomocou Java agentov.

9. týždeň: Generovanie kódu

  1. Vyskúšať si v praxi generovanie kódu v jazyku Java.
  2. Naučiť sa využívať generovanie kódu v anotačnom procesore.
  3. Naučiť sa používať šablónový systém Apache Velocity.

Články

Zadania

4. týždeň: Zadanie 1 — reflexia

  1. Naučiť sa používať reflexiu v jazyku Java.
  2. Naučiť sa vytvárať modulárnu architektúru knižnice.

8. týždeň: Zadanie 2 — anotácie a proxy

  1. Precvičiť získavanie metadát o kóde z anotácií.
  2. Naučiť sa spracovávať anotácie počas prekladu programu.
  3. Naučiť sa dynamicky vytvárať triedy v Jave pomocou dynamického proxy.

12. týždeň: Zadanie 3 — generovanie kódu a AOP

  1. Precvičiť generovanie kódu počas kompilácie aplikácie.
  2. Naučiť sa používať aspektovo-orientované programovanie a AspectJ.