[pyar] [OT] Generacion de codigo

Fabian Ezequiel Gallina galli.87 en gmail.com
Vie Mayo 6 22:47:28 ART 2011


2011/5/6 DuDe SL <dudesl en gmail.com>:
>
> Mira, te explico. Tenemos una serie de interfaces que cumplen determinada
> funcion (realizar un request a un servicio http). Lo que hacemos con esto,
> es generar la implementación de estos requests (las interfaces). Es algo muy
> puntual del sistema, pero en si, el generador que desarrolle nos salva de
> escribir miles y miles de lineas de codigo. Las clases que implementa
> (basicamente dtos, getters y setters ) son clases con una o varias clases
> internas, que a su ves las clases internas pueden tener una o mas clases
> internas, etc, etc. En fin, con esto nos hemos ahorrado horas de
> codificacion.
>

En python el concepto de getters y setters no es necesario, y si los
necesitas, generalmente podés usar property[0] para establecer como
una propiedad tiene que ser seteada o recuperada (o borrada).

En resumen no necesitas generar código para tener getters y setters,
en python todos somos adultos. Las propiedades y métodos de una clase
o instancia son públicas, aunque hay convenciones para especificar si
algo es protegido o privado.

> Otro caso, seria, generar codigo html, leyendo una base de datos (o
> cualquiera sea la fuente de datos).

Eso es posible con un poco de introspección y no es necesario generar
código para eso. Hay cosas que a partir del modelo de datos generan
hasta administraciones, como es el ejemplo del Django admin.

En python la introspección está fácil y a la mano. (función dir, módulo inspect)

> Otro caso, serian los IDEs que generan codigo, por ejemplo, cuando seteamos
> varias variables y el ide solo, te genera los setters, getters y
> constructores por defecto.
>

Leer lo de getters y setters arriba.

> En fin, generar codigo es genial, y en si, esta muy buena la mecanica que,
> por lo menos, estamos usando nosotros. Si les interesa, el lunes, cuando
> este en el laburo, les comento un poco cual es la idea del generador.
>

No, generar código NO es genial, si tenés que generar grandes
cantidades de código probablemente signifique que la herramienta que
estas usando apesta.

Cuando el código generado falla, no tenés a donde ir a llorar.

En python no he visto ni trabajado con cosas que necesiten generar
código más alla de los GUI builders (es más divertido generarlo
visualmente que escribir el XML a mano, escribir XML a mano debería
estar penado por ley).

Aca en la lista escuche hablar de codmacs[1], que está hecho en python
y que justamente genera código a partir de templates.



PD: En python hay varios sistemas de templates tipo "smarty": jinja2
(una magia), el builtin de Django (groso pero más lento que jinja2),
mako (no me gusta), y unos cuantos mas.




[0] http://docs.python.org/library/functions.html#property
[1] http://www.codmacs.blogspot.com/


Saludos,
-- 
Fabián E. Gallina
http://www.anue.biz



More information about the pyar mailing list