Discussion:
[pyar] leyendo código ajeno
Luis Andraschnik
2018-05-23 16:41:26 UTC
Permalink
Hola Gente!

Quería pedir consejo sobre como entender el código escrito por otros. Me
refiero a proyectos no triviales, con muchos módulos, posiblemente con
orientación a objetos.

Encontré un proyecto sobre el cual tengo competencia técnica en cuanto a su
aplicación y al cual me gustaría aportar pero no sé como engancharme en
algo que no escribí y además tampoco escribí algo tan complejo:

https://github.com/senaite/senaite.lims

Se trata de un addon de Plone4. Lo instalé y corrí sin problemas, pero como
enetnder su estructura y funcionamiento?

Quizá esté lejos de mis posibilidades pero quisiera intentarlo, por dónde
se empieza?

Saludos
Luis
Juan Carizza
2018-05-23 16:57:59 UTC
Permalink
Hola Luis,

Leer el código de otra persona es lo mismo que leer nuestro código de hace
1 año, no entendes nada salvo que este documentado, comentado el código y
desacoplada la lógica en funciones/objetos que te permitan ir descubriendo
qué quisiste hacer

Lo mejor es leer y entender como funcionan los add-on en ese proyecto, qué
archivos y estructura son necesarios etc.
Post by Luis Andraschnik
Hola Gente!
Quería pedir consejo sobre como entender el código escrito por otros. Me
refiero a proyectos no triviales, con muchos módulos, posiblemente con
orientación a objetos.
Encontré un proyecto sobre el cual tengo competencia técnica en cuanto a
su aplicación y al cual me gustaría aportar pero no sé como engancharme en
https://github.com/senaite/senaite.lims
Se trata de un addon de Plone4. Lo instalé y corrí sin problemas, pero
como enetnder su estructura y funcionamiento?
Quizá esté lejos de mis posibilidades pero quisiera intentarlo, por dónde
se empieza?
Saludos
Luis
_______________________________________________
Sitio web: http://www.python.org.ar/
Para administrar la lista (o desuscribirse) entrar a
http://listas.python.org.ar/listinfo/pyar
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
Federico Apelhanz
2018-05-23 17:02:11 UTC
Permalink
No tengo idea de esa libreria, pero el primer paso es haberla usado, de ahí
fijate que objectos/métodos llegaste a usar, buscalos en el código y empezá
a mirar como se usa, bajo que contexto etc.
Post by Juan Carizza
Hola Luis,
Leer el código de otra persona es lo mismo que leer nuestro código de hace
1 año, no entendes nada salvo que este documentado, comentado el código y
desacoplada la lógica en funciones/objetos que te permitan ir descubriendo
qué quisiste hacer
Lo mejor es leer y entender como funcionan los add-on en ese proyecto, qué
archivos y estructura son necesarios etc.
Post by Luis Andraschnik
Hola Gente!
Quería pedir consejo sobre como entender el código escrito por otros. Me
refiero a proyectos no triviales, con muchos módulos, posiblemente con
orientación a objetos.
Encontré un proyecto sobre el cual tengo competencia técnica en cuanto a
su aplicación y al cual me gustaría aportar pero no sé como engancharme en
https://github.com/senaite/senaite.lims
Se trata de un addon de Plone4. Lo instalé y corrí sin problemas, pero
como enetnder su estructura y funcionamiento?
Quizá esté lejos de mis posibilidades pero quisiera intentarlo, por dónde
se empieza?
Saludos
Luis
_______________________________________________
Sitio web: http://www.python.org.ar/
Para administrar la lista (o desuscribirse) entrar a
http://listas.python.org.ar/listinfo/pyar
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
_______________________________________________
Sitio web: http://www.python.org.ar/
Para administrar la lista (o desuscribirse) entrar a
http://listas.python.org.ar/listinfo/pyar
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
Alexis Waisman
2018-05-23 17:02:54 UTC
Permalink
totalmente de acuerdo, agregaría que lastimosamente en la mayoría de los
proyectos colgados en github la documentación es pobre (si es que existe).

Es una pena... Porque si hubiera más y mejor documentación muchos proyectos
no quedarían estancados.
Saludos.!-
Post by Juan Carizza
Hola Luis,
Leer el código de otra persona es lo mismo que leer nuestro código de hace
1 año, no entendes nada salvo que este documentado, comentado el código y
desacoplada la lógica en funciones/objetos que te permitan ir descubriendo
qué quisiste hacer
Lo mejor es leer y entender como funcionan los add-on en ese proyecto, qué
archivos y estructura son necesarios etc.
Post by Luis Andraschnik
Hola Gente!
Quería pedir consejo sobre como entender el código escrito por otros. Me
refiero a proyectos no triviales, con muchos módulos, posiblemente con
orientación a objetos.
Encontré un proyecto sobre el cual tengo competencia técnica en cuanto a
su aplicación y al cual me gustaría aportar pero no sé como engancharme en
https://github.com/senaite/senaite.lims
Se trata de un addon de Plone4. Lo instalé y corrí sin problemas, pero
como enetnder su estructura y funcionamiento?
Quizá esté lejos de mis posibilidades pero quisiera intentarlo, por dónde
se empieza?
Saludos
Luis
_______________________________________________
Sitio web: http://www.python.org.ar/
Para administrar la lista (o desuscribirse) entrar a
http://listas.python.org.ar/listinfo/pyar
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
_______________________________________________
Sitio web: http://www.python.org.ar/
Para administrar la lista (o desuscribirse) entrar a
http://listas.python.org.ar/listinfo/pyar
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
Damián Castro
2018-05-23 17:06:48 UTC
Permalink
Un punto de partida posible es buscar los tests donde ahí vas a ver al
menos qué cosas debería hacer el programa, cómo se instancian los objetos
principales y cómo interactúan entre sí.

Saludos,
Damián

El mié., 23 de may. de 2018 13:41, Luis Andraschnik <
Post by Luis Andraschnik
Hola Gente!
Quería pedir consejo sobre como entender el código escrito por otros. Me
refiero a proyectos no triviales, con muchos módulos, posiblemente con
orientación a objetos.
Encontré un proyecto sobre el cual tengo competencia técnica en cuanto a
su aplicación y al cual me gustaría aportar pero no sé como engancharme en
https://github.com/senaite/senaite.lims
Se trata de un addon de Plone4. Lo instalé y corrí sin problemas, pero
como enetnder su estructura y funcionamiento?
Quizá esté lejos de mis posibilidades pero quisiera intentarlo, por dónde
se empieza?
Saludos
Luis
_______________________________________________
Sitio web: http://www.python.org.ar/
Para administrar la lista (o desuscribirse) entrar a
http://listas.python.org.ar/listinfo/pyar
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
Luis Andraschnik
2018-05-23 17:55:51 UTC
Permalink
Gracias por los aportes.

Además de los test algunos recomiendan empezar solucionando bugs, siempre y
cuando primero entienda que hace el código ...

Lo que yo necesito es un maestro Jedi :)
Post by Damián Castro
Un punto de partida posible es buscar los tests donde ahí vas a ver al
menos qué cosas debería hacer el programa, cómo se instancian los objetos
principales y cómo interactúan entre sí.
Saludos,
Damián
El mié., 23 de may. de 2018 13:41, Luis Andraschnik <
Post by Luis Andraschnik
Hola Gente!
Quería pedir consejo sobre como entender el código escrito por otros. Me
refiero a proyectos no triviales, con muchos módulos, posiblemente con
orientación a objetos.
Encontré un proyecto sobre el cual tengo competencia técnica en cuanto a
su aplicación y al cual me gustaría aportar pero no sé como engancharme en
https://github.com/senaite/senaite.lims
Se trata de un addon de Plone4. Lo instalé y corrí sin problemas, pero
como enetnder su estructura y funcionamiento?
Quizá esté lejos de mis posibilidades pero quisiera intentarlo, por dónde
se empieza?
Saludos
Luis
_______________________________________________
Sitio web: http://www.python.org.ar/
Para administrar la lista (o desuscribirse) entrar a
http://listas.python.org.ar/listinfo/pyar
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
_______________________________________________
Sitio web: http://www.python.org.ar/
Para administrar la lista (o desuscribirse) entrar a
http://listas.python.org.ar/listinfo/pyar
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
Cabu
2018-05-23 18:37:08 UTC
Permalink
Alguna vez intente usar un autodocumentador sin mucho exito. epydoc. ¿Hay
alguna herramienta que permita autodocumentar? Así seria mas fácil leer
código ajeno.
Andres Riancho
2018-05-23 19:33:48 UTC
Permalink
Creo que se aprende haciendo, asi que ahi va mi consejo:
* Ejecuta la aplicacion, usala, encontrá 3 cosas muy chiquitas que te
guste mejorar
* Mejoralas, seguramente va a ser codigo feo que no quieras
compartir, pero cada vez te va a ir mejor
* Si te sentis comodo, pasa al proximo paso: preguntale al lider de
proyecto de la aplicacion a ver si te puede asignar una tarea SIMPLE
* Soluciona la tarea, de la manera que puedas. Si no te sale,
pregunta al lider de proyecto
* Manda un pull request con tus modificaciones. Si te lo rechazan no
te desalientes, aplica todas las modificaciones que hagan falta para
que sea aprobado

Si el lider de proyecto de la aplicacion no coopera, pasa a otro
proyecto que te interese.
Post by Luis Andraschnik
Hola Gente!
Quería pedir consejo sobre como entender el código escrito por otros. Me
refiero a proyectos no triviales, con muchos módulos, posiblemente con
orientación a objetos.
Encontré un proyecto sobre el cual tengo competencia técnica en cuanto a su
aplicación y al cual me gustaría aportar pero no sé como engancharme en algo
https://github.com/senaite/senaite.lims
Se trata de un addon de Plone4. Lo instalé y corrí sin problemas, pero como
enetnder su estructura y funcionamiento?
Quizá esté lejos de mis posibilidades pero quisiera intentarlo, por dónde se
empieza?
Saludos
Luis
_______________________________________________
Sitio web: http://www.python.org.ar/
Para administrar la lista (o desuscribirse) entrar a
http://listas.python.org.ar/listinfo/pyar
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
--
Andrés Riancho
Project Leader at w3af - http://w3af.org/
Web Application Attack and Audit Framework
Twitter: @w3af
GPG: 0x93C344F3
_______________________________________________
Lista de Correo de PyAr - Python Argentina - ***@python.org.ar
Sitio web: http://www.python.org.ar/

Para administrar la lista (o desuscribirse) entrar a http://listas.python.org.ar/listinfo/pyar

La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argenti
Luis Andraschnik
2018-05-23 20:03:10 UTC
Permalink
Buenos consejos!

No estoy seguro que ese sea el proyecto para mí, de por sí Plone es
bastante complejo, aunque hay otros proyectos interesantes como Orange que
puedo aportar algo en la parte de espectroscopía infrarroja que hice
bastante código python útil.

Me ayudaría si existe alguna utilidad que construya automáticamente los
diagramas UML de clases y las dependencias de los imports que suele ser lo
primero que me causa picazón cuando empiezo a inspeccionar cada módulo y
digo ¿Que hace esto?
from acá.demasallá.unpocoalcostado import noseque.paraquesirve.utils
* Ejecuta la aplicacion, usala, encontrá 3 cosas muy chiquitas que te
guste mejorar
* Mejoralas, seguramente va a ser codigo feo que no quieras
compartir, pero cada vez te va a ir mejor
* Si te sentis comodo, pasa al proximo paso: preguntale al lider de
proyecto de la aplicacion a ver si te puede asignar una tarea SIMPLE
* Soluciona la tarea, de la manera que puedas. Si no te sale,
pregunta al lider de proyecto
* Manda un pull request con tus modificaciones. Si te lo rechazan no
te desalientes, aplica todas las modificaciones que hagan falta para
que sea aprobado
Si el lider de proyecto de la aplicacion no coopera, pasa a otro
proyecto que te interese.
Federico Apelhanz
2018-05-23 20:13:21 UTC
Permalink
Nunca la use, pero pycharm tiene algo así

saludos
Post by Luis Andraschnik
Buenos consejos!
No estoy seguro que ese sea el proyecto para mí, de por sí Plone es
bastante complejo, aunque hay otros proyectos interesantes como Orange que
puedo aportar algo en la parte de espectroscopía infrarroja que hice
bastante código python útil.
Me ayudaría si existe alguna utilidad que construya automáticamente los
diagramas UML de clases y las dependencias de los imports que suele ser lo
primero que me causa picazón cuando empiezo a inspeccionar cada módulo y
digo ¿Que hace esto?
from acá.demasallá.unpocoalcostado import noseque.paraquesirve.utils
* Ejecuta la aplicacion, usala, encontrá 3 cosas muy chiquitas que te
guste mejorar
* Mejoralas, seguramente va a ser codigo feo que no quieras
compartir, pero cada vez te va a ir mejor
* Si te sentis comodo, pasa al proximo paso: preguntale al lider de
proyecto de la aplicacion a ver si te puede asignar una tarea SIMPLE
* Soluciona la tarea, de la manera que puedas. Si no te sale,
pregunta al lider de proyecto
* Manda un pull request con tus modificaciones. Si te lo rechazan no
te desalientes, aplica todas las modificaciones que hagan falta para
que sea aprobado
Si el lider de proyecto de la aplicacion no coopera, pasa a otro
proyecto que te interese.
_______________________________________________
Sitio web: http://www.python.org.ar/
Para administrar la lista (o desuscribirse) entrar a
http://listas.python.org.ar/listinfo/pyar
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
Facundo Batista
2018-05-24 13:01:29 UTC
Permalink
El 23 de mayo de 2018, 13:41, Luis Andraschnik
Post by Luis Andraschnik
Quería pedir consejo sobre como entender el código escrito por otros. Me
refiero a proyectos no triviales, con muchos módulos, posiblemente con
orientación a objetos.
Encontré un proyecto sobre el cual tengo competencia técnica en cuanto a su
aplicación y al cual me gustaría aportar pero no sé como engancharme en algo
Estos casos yo los resuelvo con:

- print()
- poder ejecutar el código "y que trabaje de verdad"
- tiempo


Entonces, voy mostrando lo que va haciendo, explorando el código
visualmente pero tambien viendo en la realidad sus estructuras de
datos.

Saludos,
--
. Facundo

Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.python.org/ar/
Twitter: @facundobatista
_______________________________________________
Lista de Correo de PyAr - Python Argentina - ***@python.org.ar
Sitio web: http://www.python.org.ar/

Para administrar la lista (o desuscribirse) entrar a http://listas.python.org.ar/listinfo/pyar

La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina -
Pablo Dalmasso
2018-05-25 01:40:18 UTC
Permalink
Cómo sugerencia para entender funciones podés usar Ipdb.set_trace para ir
siguiendo el flujo de una función o código. Una vez que identificas desde
donde se lanza una función

Saludos


El jue., 24 de may. de 2018 10:01 a. m., Facundo Batista <
Post by Facundo Batista
El 23 de mayo de 2018, 13:41, Luis Andraschnik
Post by Luis Andraschnik
Quería pedir consejo sobre como entender el código escrito por otros. Me
refiero a proyectos no triviales, con muchos módulos, posiblemente con
orientación a objetos.
Encontré un proyecto sobre el cual tengo competencia técnica en cuanto a
su
Post by Luis Andraschnik
aplicación y al cual me gustaría aportar pero no sé como engancharme en
algo
- print()
- poder ejecutar el código "y que trabaje de verdad"
- tiempo
Entonces, voy mostrando lo que va haciendo, explorando el código
visualmente pero tambien viendo en la realidad sus estructuras de
datos.
Saludos,
--
. Facundo
Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.python.org/ar/
_______________________________________________
Sitio web: http://www.python.org.ar/
Para administrar la lista (o desuscribirse) entrar a
http://listas.python.org.ar/listinfo/pyar
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
nahuel
2018-05-25 19:24:27 UTC
Permalink
Hola Luis
Post by Facundo Batista
Post by Luis Andraschnik
Quería pedir consejo sobre como entender el código escrito por otros. Me
refiero a proyectos no triviales, con muchos módulos, posiblemente con
orientación a objetos.
Encontré un proyecto sobre el cual tengo competencia técnica en cuanto a su
aplicación y al cual me gustaría aportar pero no sé como engancharme en algo
- print()
- poder ejecutar el código "y que trabaje de verdad"
- tiempo
Entonces, voy mostrando lo que va haciendo, explorando el código
visualmente pero tambien viendo en la realidad sus estructuras de
datos.
Saludos,
--
. Facundo
Como complemento a pdb, también podes utilizar Python Hunter [0], que te permite analizar la ejecución del script sin necesidad de insertar puntos de ruptura.

El proyecto contiene un lenguaje que te te permite filtrar que módulos te interesan analizar. Lo he usado para entender código a refactorizar sin mayores inconvenientes, simplemente instalando el paquete en tu entorno y definiendo una variable de ambiente.


Saludos!


[0] https://pypi.org/project/hunter/
_______________________________________________
Lista de Correo de PyAr - Python Argentina - ***@python.org.ar
Sitio web: http://www.python.org.ar/

Para administrar la lista (o desuscribirse) entrar a http://listas.python.org.ar/listinfo/pyar

La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - htt
Luis Andraschnik
2018-05-31 20:12:16 UTC
Permalink
Soy demasiado vago para usar pdb, lo intenté un par de veces pero como
escribir print es tan fácil ...., es adictivo!
(aunque Facundo B. lo recomienda a pesar de la mala prensa)

Gracias por todos los consejos
Saludos
Post by Juan Carizza
Hola Luis
Post by Facundo Batista
Post by Luis Andraschnik
Quería pedir consejo sobre como entender el código escrito por otros. Me
refiero a proyectos no triviales, con muchos módulos, posiblemente con
orientación a objetos.
Encontré un proyecto sobre el cual tengo competencia técnica en cuanto
a su
Post by Facundo Batista
Post by Luis Andraschnik
aplicación y al cual me gustaría aportar pero no sé como engancharme en
algo
Post by Facundo Batista
- print()
- poder ejecutar el código "y que trabaje de verdad"
- tiempo
Entonces, voy mostrando lo que va haciendo, explorando el código
visualmente pero tambien viendo en la realidad sus estructuras de
datos.
Saludos,
--
. Facundo
Como complemento a pdb, también podes utilizar Python Hunter [0], que te
permite analizar la ejecución del script sin necesidad de insertar puntos
de ruptura.
El proyecto contiene un lenguaje que te te permite filtrar que módulos te
interesan analizar. Lo he usado para entender código a refactorizar sin
mayores inconvenientes, simplemente instalando el paquete en tu entorno y
definiendo una variable de ambiente.
Saludos!
[0] https://pypi.org/project/hunter/
_______________________________________________
Sitio web: http://www.python.org.ar/
Para administrar la lista (o desuscribirse) entrar a
http://listas.python.org.ar/listinfo/pyar
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
Argentina - http://www.usla.org.ar
Loading...