đ Les logs, le monitoring ou la sĂ©curitĂ© ne sont pas de la responsabilitĂ© dâune seule partie du code. Ce sont des responsabilitĂ©s de lâensemble du code. Or, SRP et DRY, principes fondamentaux du design, nous interdisent de surcharger chaque classe pour prendre en compte tous ces soucis. Ils sont appelĂ©s crosscutting concerns ou soucis transversaux en français.
đŠ A lâaube des annĂ©es 2000, la complexitĂ© croissante des logiciels a descillĂ© les yeux des dĂ©veloppeurs sur ces problĂšmes. Plusieurs tentatives ont Ă©tĂ© faites. Lâune dâentre-elles, Aspect-Oriented Programming, postule quâil manque une couche dâabstraction entre les classes et les modules : les composants.
đȘĄ Ces composants, exprimĂ©s Ă lâaide dâune syntaxe propre, tissent (weaving) les classes et les agencent afin de rĂ©pondre aux soucis transversaux sans violer SRP.
đ«ïž AOP se voyait comme lâitĂ©ration suivante de lâorientĂ©-objet. Avec 20 ans de recul AOP a Ă©tĂ© trĂšs peu adoptĂ©, principalement Ă cause de lâobscurcissement du code quâil provoque. Les dĂ©veloppeurs sont difficilement capables de prĂ©dire le fonctionnement dâun programme Ă cause du tissage qui fait un usage massif de rĂ©flexion. Les IDE sont souvent aussi perdus, et incapables dâassister le refactoring dâun tel code.
đ Cependant, on doit Ă AOP un vocabulaire (aspect, crosscutting-concern, etc.) et il a ouvert la voie Ă lâinjection de dĂ©pendances moderne, qui offre un moyen plus lisible de gĂ©rer les mĂȘmes problĂšmatiques.
SOURCE
Lopes, Cristina & Kiczales, Gregor & Lamping, John & Mendhekar, Anurag & Maeda, Chris & Loingtier, Jean-marc & Irwin, John. (1999). Aspect-Oriented Programming. ACM Computing Surveys. 28. DOI:10.1145/242224.242420
Enzo Sandré
DOIs: 10.1145/242224.242420