[pyar] Programación Orientada a Aspectos (POA)

Ricardo Aráoz ricaraoz en gmail.com
Jue Sep 23 11:44:47 ART 2010


  On 23/09/2010 11:18 a.m., Claudio Freire wrote:
>
> El @login_required es una medida de seguridad que apunta a eso: a 
> "enforcear" (wow... inventation) la aplicación de las reglas de seguridad.
>
> Mostrar o no mostrar botones es secundario. Lo principal es que sea 
> imposible realizar ciertas acciones sin permiso. Si alguien se las 
> rebusca para engañar a la aplicación y llamar la función a pesar de no 
> tener permisos, @login_required lo para ahí nomás.

Bueno, acá se ve mi desconocimiento de web apps. El usuario es quien 
llama a las funciones??? Yo creía que era el programa controlador, y si 
en el controlador tenés un ejecutaFuncion() también podés tener un if 
xxx then : ejecutaFuncion(), sin necesidad de mezclar ni agregar nada en 
la función ni cerca de su definición. Me suena como que este uso 
particular de decoradores mezcla un poco el control de permisos y/o la 
UI layer con la business layer. Es esto siempre así e inevitable en web 
apps?

> Validaciones, logging y otras cosas son criterios que se aplican en 
> muchísimos lugares de la aplicación. Son "crosscutting concerns" como 
> le dicen in inglish, y programarlos así directamente como decís 
> desparrama la lógica asociado a esos temas por toda la aplicación. 
> Hacer una modificación (ej: los números positivos ahora pueden incluir 
> el 0) implica modificar 1000 millones de lugares donde se implementó 
> la lógica.

Pues es que la lógica para tratar con números positivos debería 
idealmente estar implementada en un sólo lugar. Para eso están los objetos.

>     Seguro que vamos a poder encontrar algún caso que invalide lo que digo
>
>
> Eso hace que haya mal diseño. Un buen diseño es válido siempre.

No concuerdo. Un buen diseño para un auto de carreras es un pésimo 
diseño para un auto de ciudad. El diseño depende directamente de los 
objetivos de este diseño y el entorno en el que lo implementamos.

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20100923/f865c884/attachment.html>


More information about the pyar mailing list