El día 1 de marzo de 2013 19:11, Miguel Ángel Alarcos Torrecillas <[email protected]> escribió: > Hola a todos, me gustaría dar a conocer un proyecto al que he dado el nombre > de PyViewPredicate. Se trata de crear GUIs de manera declarativa, y además > reactiva. Con esto quiero decir que la GUI recibe los nuevos datos a mostrar > después de que se hayan modificado en el mismo u otro computador. > > De momento he implementado un visualizador de objetos BasicView (visualiza > una fila de una tabla de BDD) y un visualizador Table que visualiza un > predicado más complejo que es realmente una SQL. > > La wiki del proyecto tiene un ejemplo explicativo: > > https://bitbucket.org/miguel_alarcos/pyviewpredicate/wiki/Home > > Admito todo tipo de críticas, pero especialmente las constructivas. > Responderé a cuantas dudas o cuestiones me planteéis. > > Espero no robaros mucho tiempo, saludos pythónicos desde Murcia :)
He estado revisando el código un rato hasta que me he cansado, por lo que solo puedo darte una impresión superficial. Lo primero, es recomendarte que siguas un mismo estilo para nombrar las clases. No resulta cómodo ver mezclados los estilos "CamelCase" y unix. Se ve que has invertido muchas horas en crear este código. Pero necesita bastante refactorización, sobre todo deberías hacer un paquete con el monolítico 'wxpython_gui' y, de paso, darle otro nombre que lo diferencie mejor del paquete wxpython general. Por otro lado, deberías limpiar el código. Al repositorio puedes indicarle que no versione los ficheros .pyc (sobra designable.pyc), quitar ficheros de pruebas (wxApp1.py, wxApp2.py,...) y que no aparezcan otras versiones que no tienen nada qué ver ahora (tkinter_app.py, tkinter_gui.py). Así mismo, asegúrate que estás versionados todos los ficheros que usas (falta 'pubsub.py', que supongo es una dependencia externa). Siguiendo con cuestiones de estilo, nunca deberías usar 'from modulo import *'. Está totalmente desaconsejado fuera de su uso en la línea de comandos. En un código normal deberías siempre indicar explícitamente qué objetos estás importando. En cuanto a mejorar la compresión, creo, por lo que he visto, que intentas implementar algo similar al patrón Actor. Localizar todo el código relativo a la creación de actores en su propio módulo puede ayudar más a entender lo que hace el código, así como localizar más rápido los mensajes a los que responden los actores (por ejemplo, en con un diccionario). -- Hyperreals *R: http://ch3m4.org/blog Quarks, bits y otras criaturas infinitesimales _______________________________________________ Python-es mailing list [email protected] http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
