P8: Aspektovo-orientované programovanie
Preber si túto prednášku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto prednášky.
Zhrnutie prednášky
Prednáška úvodom predstavuje aspektovo-orientované programovanie ako rozšírenie objektovo orientovaného prístupu, ktoré umožňuje meniť správanie kódu bez zásahu do jeho zdrojového textu. Motivuje ho situáciami, keď treba do desiatok metód doplniť napríklad logovací výpis, čo je zdĺhavé, náchylné na chyby a narúša zámer (intent) kódu i princíp jednej zodpovednosti. Na jednoduchej triede bodu s metódami set a get ukazuje, že v jazyku AspectJ sa dá mimo triedy špecifikovať, čo sa má vykonať pred (before) alebo po (after) volaní vybraných metód. Špeciálny kompilátor toto správanie vloží na miesta volania, pričom výber možno obmedziť na určitú triedu, metódu či balík. Nový prvok sa nazýva aspekt a slúži najmä ako obal pre konštrukcie typu advice. Na záver sú avizované anotácie v Jave a generovanie dokumentácie pomocou Javadoc.
- - Aspektovo-orientované programovanie mení správanie kódu bez zásahu do jeho zdrojového textu.
- - Opakované zásahy (napr. logovacie výpisy) do mnohých metód sú zdĺhavé a rozmazávajú zámer kódu.
- - Riešenie porušuje princíp jednej zodpovednosti (single responsibility), ak sa do metód pridávajú nesúvisiace veci.
- - AspectJ je kompilátor, ktorý vloží špecifikované správanie na miesta volania metód.
- - Advice sa definuje ako before alebo after volania a jeho pôsobenie sa dá obmedziť na triedu, metódu či balík.
- - Aspekt je nový programový prvok, ktorý slúži ako obal pre advice.
- - Ďalšie témy: anotácie v Jave a tvorba HTML dokumentácie pomocou Javadoc.
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky