[Python-es] ¿Algún recurso sobre trucos prácticos y ejemplos realistas de testing?
Chema Cortes
pych3m4 en gmail.com
Sab Abr 26 14:46:41 CEST 2014
El 24 de abril de 2014, 1:00, Jesus Cea <jcea en jcea.es> escribió:
> On 31/12/13 16:44, Chema Cortes wrote:
> > Para peticiones asíncronas, el patrón que parece funcionar mejor es el
> > patrón "Actor". Al convesar con el resto de actores a través de
> > mensajes, es mucho más fácil desacoplar y testear cada parte por
> > separado (o sea, con "mocks" que emulan otros actores). Lo único
> > complicado es crear un diseño de actores que sea suficientemente
> > resiliente (recuperación frente a fallos). Para python hay librerías
> > Actor como pykka[1], parley[2] o pulsar[3], pero no las he probado
> > como para darte alguna idea.
> >
> > Para realizar las pruebas, mírate pywovs[4] a ver si te ahorra trabajo.
> >
> > [1]: http://pykka.readthedocs.org/en/latest/
> > [2]: http://osl.cs.uiuc.edu/parley/
> > [3]: http://pythonhosted.org/pulsar/
> >
> > [4]: http://heynemann.github.io/pyvows/
> >
> >
> > No conozco libros que traten de estos temas para python. Mi consejo es
> > que te mires otros lenguajes como Scala/Akka o Erlang si piensas hacer
> > un sistema de actores algo más complejo.
>
> Cuando vi por ahí el tema de actores, hace ya bastantes años, me
> sorprendí que fuera una novedad, porque yo es lo que suelo usar hace
> mucho, cuando me dejan. Mis primeros pinitos con algo parecido fue con
> la idea de "tablón de anuncios" del lenguaje Linda. Escalabilidad
> infinita, reparto de carga automática, transparencia ante caídas de todo
> lo que no sea el propio "tablón de anuncios"....
>
> https://en.wikipedia.org/wiki/Linda_%28coordination_language%29
>
> Muerto hace mucho: https://code.google.com/p/pylinda/
>
> Me apunto las librerías de actores que indicas. Las curiosearé.
>
Nunca hay que sorprenderse que las buenas ideas vuelvan mejoradas.
No sé si usarás un modelo Linda en tu "tablón de anuncios", pero este
modelo no es precisamente de *"escabilidad infinita"*. Era su punto flaco,
que al crecer el número de procesos el sincronismo del tuple-space
ralentizaba bastante y hacía perder disponibilidad.
En general, estamos ante un principio de incertidumbre de la programación
concurrente: nunca podrás tener un sistema consistente y disponible a la
vez ([Teorema CAP][1]). Al igual que pasa en física al cambiar de escala,
esta incertidumbre se hace más patente al aumentar el número de particiones
(+40000). A pequeña escala se nota menos.
La novedad del modelo actor está en poder crear sistemas masivamente
concurrentes que sean resilientes (["Manifiesto Reactivo"][2]). Porque
fallar, seguro que van a fallar.
Actuálmente, es un tema en el que se está investigando mucho y nunca se
sabe qué viejas/nuevas ideas surgirán estos años.
[1]: http://es.wikipedia.org/wiki/Teorema_CAP
[2]: http://www.reactivemanifesto.com
>
> --
> Jesús Cea Avión _/_/ _/_/_/ _/_/_/
> jcea en jcea.es - http://www.jcea.es/ _/_/ _/_/ _/_/ _/_/ _/_/
> Twitter: @jcea _/_/ _/_/ _/_/_/_/_/
> jabber / xmpp:jcea en jabber.org _/_/ _/_/ _/_/ _/_/ _/_/
> "Things are not so easy" _/_/ _/_/ _/_/ _/_/ _/_/ _/_/
> "My name is Dump, Core Dump" _/_/_/ _/_/_/ _/_/ _/_/
> "El amor es poner tu felicidad en la felicidad de otro" - Leibniz
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
--
Hyperreals *R "Quarks, bits y otras criaturas infinitesimales":
http://ch3m4.org/blog
Buscador Python Hispano: http://ch3m4.org/python-es
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20140426/0a7a91ec/attachment.html>
Más información sobre la lista de distribución Python-es