Este documento presenta información sobre Danijel Arsenovski, incluyendo su experiencia profesional como programador, desarrollador de software, autor y consultor ágil. También proporciona enlaces a su blog, sitio web y perfiles en redes sociales. Además, discute brevemente temas como la Ley de Moore, programación paralela vs programación multi-hilo, Groovy y Grails, y recursos de la comunidad ágil chilena.
5. La ley de Moore
“El numero de transistores en un circuito
integrado se duplica cada 2 años (aprox.)”
Basado en la miniaturización
N° de transistores ≈ GHz o Gb
Conspiración: Ley Compensatoria de Moore
¿Otra burbuja más?
www.empoweragile.com
6. …se esta acabando
Se estancara la industria de software, video
juegos, hardware etc.
Crisis en India, China
¿Guerra, cataclismo?
www.empoweragile.com
7. Multinúcleo
¡Es posible mantener la tendencia!
En lugar de hacer las cosas mas
rápido, hagamos mas de una cosa a la
vez
Paralelismo a nivel de hilos
Para poder aprovechar esta capacidad
del procesador, hay que programar
pensado en el paralelismo
www.empoweragile.com
8. Programación paralela vs.
Programación multi-hilo
Parecido, !=
Multi-hilo
Asincronismo
Capacidad de responder (hilo GUI y hilo en fondo)
Aplicaciones en el servidor
Programación paralela
cualquier tarea en paralelo
ej. ordenar una lista.
Programación multi-hilo es compleja (“locks” ->
“deadlocks”)
Se necesitan: abstracciones nuevas y mas sencillas
www.empoweragile.com
9. Groovy y Grails
Groovy
Lenguaje dinámico (≈ Python, Ruby etc.)
Expresivo
Corre sobre JVM y bastante compatible con Java
Grails
Aplicaciones web Groovy sobre Hibernate y Spring
“Convención por sobre configuración”
Scaffolding (“andamiaje”) y inspirado por RoR
Respaldados por Spring Source
www.empoweragile.com
11. …Y en realidad
Micro-benchmarks:
“Java theory and practice: Anatomy of a
flawed microbenchmark”
JVM –Server
Compilación dinámica
Optimizaciones de compilador
Aplicaciones I/O vs aplicaciones de computo
Groovy++
Java www.empoweragile.com
12. GPars
Es la librería de programación concurrente en
Groovy (parte de la distribución)
Groovy permite escribir un código concurrente mas
expresivo que Java
GPars soporta múltiples modelos de programación
concurrente:
Procesamiento de colecciones concurrente
Actores
Dataflow
Fork/Joine
Etc. www.empoweragile.com
13. import groovyx.gpars.ParallelEnhancer
//lista con inferencia de tipos
def animals = ['dog', 'ant', 'cat', 'whale']
//en Java- ¿como?
ParallelEnhancer.enhanceInstance animals
animals.eachParallel{
//it es variable implícita
println(it)
} www.empoweragile.com
14. Comunidad Chile Ágil
http://www.chileagil.cl/
¡Día Ágil 2011!
Blog
Tutoriales: Desafío Kanban
http://groups.google.com/group/chileagil
Foro
http://failfast.chileagil.cl/
Preguntas y respuestas parecidas a Stackoverflow.com
@chileagil
Twitter
www.empoweragile.com
15. Extreme Programming y Software Craftmanship
Desarrollo dirigido por pruebas (Test Driven Development)
Refactoring
Integración Continua
Diseño ágil y fundamentos de orientación a objetos
Diseño Dirigido por el Dominio (DDD) del problema a resolver
http://www.leansight.com/clinica-agil/
www.empoweragile.com