Azi un coleg mi-a prezentat ceva ce se cheama Aspect oriented programming. Nu am inteles prea bine ce este, dar in aplicatie are rolul de audit.
Exemplu:
Utilizatorul Cosmin Popescu se autentifica in aplicatie si face modificari pe acolo. In aplicatie exista o pagina de audit unde actiunile facute de utilizator se pot vedea sub forma unui tabel.
Aplicatia este in java si conceptul de AOP este implementat in Spring
În orice limbaj unde e implementat la runtime (cam peste tot) AOP e doar monkey-patching pompos. Eu zic că e bun doar pentru debugging în circumstanțe speciale, în rest e o povară.