• Home
  • Las 5W de ChileAgil
  • Políticas
  • Contacto
  • Síguenos en Twitter

ChileÁgil

Comunidad Ágil y Lean de Chile

  • AgileDay
    • AgileDay 2012
    • Agile Day 2011
      • Concilio ágil
      • Documentos
    • AgileDay 2010
      • Chile Ayuda. Un terremoto, cientos de voluntarios y 6 días para levantar un portal
      • Implementación de un modelo ágil de gestión por valor de negocio de un portafolio de proyecto
      • Introducción a la Agilidad y el Lean Thinking
      • La Agilidad en 3 décimas por Pablo Morales
      • Lo que odiamos de la Agilidad
      • Los desafíos de la Agilidad en Chile
      • Software Craftmanship
    • AgileDay 2009
      • Agile Perú y Agiles 2010
      • Casos de Éxito – NameAction
      • Casos de Éxito – Proyecto Proaud
      • Lean y Kanban
      • MicroCharlas
      • ScrumManager
      • Web 3: Innovación descentralizada
      • The HashRocket Way
      • Palabras finales
    • AgileDay 2008
  • Eventos
  • Tutoriales
  • Cursos
  • Lenguajes
  • Metodologías
    • Customer Development
    • eXtreme Programming
    • Scrum
    • TDD
  • Publicaciones
  • Opinión
  • Rescata un computín
  • Scrum
You are here: Home / General / Jython: Desarrollo ágil en la plataforma Java (Parte 1)

Jython: Desarrollo ágil en la plataforma Java (Parte 1)

12/10/2009 by leosoto Leave a Comment

Jython es la implementación del lenguaje Python para la plataforma Java, que con el correr del tiempo y gracias a los esfuerzos de distintos proyectos open source, se ha convertido en la plataforma multilenguaje abierta más importante. La Máquina Virtual de Java hace tiempo que ya no sólo ejecuta código escrito en Java: Python, Ruby, JavaScript, Scala, Clojure, Groovy y JavaFX Script son algunos de los lenguajes con una implementación madura integrada en la plataforma Java.

El lenguaje Python, por otra parte, es uno de los lenguajes dinámicos más populares y cuenta con el respaldo de gigantes de la industria como Google.

OK, ¿pero de qué le sirve esto a quienes están intentando usar técnicas o metodologías ágiles en el desarrollo de software? En esta serie de artículos daré algunos tips de como incorporar Jython para apoyar la agilidad en el desarrollo.

Doctest

La primera utilidad de Jython está en hacer que el testing de aplicaciones Java sea menos doloroso. Ya saben, incluso cuando uno está convencido de que es mejor escribir pruebas automáticas es una buena idea, no deja de ser una tarea que a veces se torna aburrida, especialmente si el lenguaje de programación no ayuda mucho. A veces estamos forzados a usar Java como lenguaje de desarrollo, pero el testing es algo en que contamos con libertad, por lo que se puede usar un lenguaje más flexible para esta tarea.

En Python, además de unittest (el clásico framework inspirado en JUnit), se cuenta con doctest, un interesante framework de testing que permite mezclar documentación con tests y que facilita la creación de tests a partir de sesiones con el intérprete de Python. Al usar Jython podemos utilizar este framework para verificar código escrito en Java. Por ejemplo, el siguiente fragmento, además de servir como ejemplo de uso de una hipotética librería para manejar RUTs escrita en Java, es un test ejecutable para doctest:

"""
>>> from milibreriajava.utils import Rut

La clase Rut recibe dos argumentos en su constructor: el número y el verificador:

>>> r = Rut(11111111, '1')
>>> r.toString()
"11111111-1"
>>> r.getVerificador()
'1'
>>> r.getNumero()
11111111
>>> r.isRutEmpresa()
False

En caso que no se indique el verificador, es calculado automáticamente:

>>> Rut(11111111).getVerificador()
'1'

Pero en caso que se indique y sea inválido, se lanza una excepción:

>>> Rut(11111111, '2')
Traceback (most recent call last):
...
milibreriajava.utils.RutInvalidoException: Verificador incorrecto

Tampoco se aceptan un RUT igual o mayor a 100 millones:

>>> Rut(100000000)
Traceback (most recent call last):
...
milibreriajava.utils.RutInvalidoException: Fuera de Rango
"""
if __name__ == "__main__":
    import doctest
    doctest.testmod()

Si el fragmento anterior se ha guardado en un archivo llamado “test_rut.py”, ara ejecutar este test si se tiene instalado Jython basta con:

$ CLASSPATH=/classpath/de/milibreriajava/ jython test_rut.py

O si se usa Windows:

> set CLASSPATH=\classpath\de\milibreriajava\
> jython test_rut.py

Es común decir que los tests unitarios son especificaciones ejecutables. Sin embargo, y a menos que el código sea muy explicativo, no suele ser fácil inferir la razón de los tests. Mi punto es: suele ser fácil entender qué se está testeando, pero no por qué. Doctest por otra parte permite una mezcla mas fluida entre código y descripciones textuales, lo que lo hace ideal para crear especificaciones ejecutables mas mantenibles.

¿Y qué más?

Por supuesto que hay más maneras de usar Jython junto con técnicas ágiles de desarrollo que serán vistas en futuras entregas de esta serie. Para los impacientes, pueden ver la presentación que expuse en las Jornadas Regionales del Software Libre 2009 (o descargarla en PDF si lo prefieren), bajarse el código fuente de las demos y darle una mirada al libro de Jython que se está desarrollando bajo una licencia Creative Commons y que será publicado por Apress, y del cual soy parte del equipo de autores :)

PD: Si algún lector de ChileÁgil estuvo en la audiencia de esta presentación y piensa también asistir al Encuentro Linux me gustaría escuchar en qué área le gustaría ver más demos (o tal vez que demos le gustaría ver con mucho mayor detalles). ¡Gracias!

Jython: Python para la plataforma Java (JRSL 09)

View more presentations from leo.soto.
Filed Under: General Tagged With: jrsl09

Speak Your Mind Cancelar respuesta

*

*

Últimos artículos

  • El diálogo y la agilidad
  • Invitación a vivenciar Scrum
  • Pruebas parametrizadas en JUnit
  • Capacitación en SCRUM MANAGER
  • Mapa mental del trabajo colaborativo del AgileDayChile2012

Últimos comentarios

  • Rafael Mendez en Sobre la Asociación de Emprendedores de Chile
  • Natalia en Sobre la Asociación de Emprendedores de Chile
  • Sergio López C. en Rescata un computin: Como renunciar
  • Talleres prácticos de iniciación a la Cultura Ágil y Kanban, y AgileDay en Concepción y el Norte en Workshop de Extreme Programming en Puerto Montt (Viernes 29 de abril, Universidad Austral)
  • Talleres prácticos de iniciación a la Cultura Ágil y Kanban, y AgileDay en Concepción y el Norte | LeanSight en Workshop de Extreme Programming en Puerto Montt (Viernes 29 de abril, Universidad Austral)

Suscríbete al Grupo

Grupos de Google
Aquí donde la comunidad ágil se reune a discutir ideas, dudas y buscar apoyo.

Correo electrónico:

Google Group

Segundo Meetup
24 May 2013 - Tamara Paulina Rivera Farias
OpenDebate: Por que en mi ultimo emprendimiento no he buscado capitalistas
23 May 2013 - Agustin Villena
Empresas destacables en agilidad
22 May 2013 - Edgardo Herrera
Your Daily digest for ChileAgil
22 May 2013 - Blogtrottr
Mañana podriamos aprender este juego en el meetup
21 May 2013 - Agustin Villena

Fail Fast

Tecnicas/ metodologias para 1 o 2 desarrolladores
23 April 2013 - dcarreroc
Material o Buenas prácticas sobre el concepto "Entendimiento Común"
22 April 2013 - rodrigo muñoz
TDD, clientes conocidos, experiencia y predicciones
17 April 2013 - matías toro ipinza
Ejemplo de proyecto de software que no haya utilizado un método ágil y tendió al fracaso
15 April 2013 - rocio
Como postular a Startup Chile
1 April 2013 - philippe.camacho

Twitter

yamitcar: RT @ChileAgil: ¿Como equilibrar entres los babysteps del TDD y el avanzar en funconalidades basado en tu experiencia? #failfast http://t.co…
23 May 2013
agustinvillena: RT @ChileAgil: ¿Como equilibrar entres los babysteps del TDD y el avanzar en funconalidades basado en tu experiencia? #failfast http://t.co…
23 May 2013
LeanSight: RT @Innovacioncl: "Lo fondos de inversión de riesgo son pocos y que trabajan de manera incipiente", dice Agustín Villena, de @ChileAgil htt…
23 May 2013
ChileAgil: RT @Innovacioncl: "Lo fondos de inversión de riesgo son pocos y que trabajan de manera incipiente", dice Agustín Villena, de @ChileAgil htt…
23 May 2013
agustinvillena: RT @Innovacioncl: "Lo fondos de inversión de riesgo son pocos y que trabajan de manera incipiente", dice Agustín Villena, de @ChileAgil htt…
23 May 2013
ChileAgil: Hoy aprendimos el Juego de los puntos de @alshalloway en @poderopedia con @miguelpaz y @agustinvillena #meetup http://t.co/2sQQ7wtas1
23 May 2013
patomontedura: RT @ChileAgil: Ya estamos en el meetup de chileagil!
22 May 2013
ChileAgil: Ya estamos en el meetup de chileagil!
22 May 2013
HannaIsBack: RT @Innovacioncl: "Lo fondos de inversión de riesgo son pocos y que trabajan de manera incipiente", dice Agustín Villena, de @ChileAgil htt…
22 May 2013
Innovacioncl: "Lo fondos de inversión de riesgo son pocos y que trabajan de manera incipiente", dice Agustín Villena, de @ChileAgil http://t.co/zUPpuukyS5
22 May 2013

Return to top of page

©2012 ChileÁgil