Scala en la Práctica Julio Carlos Sánchez Ortega
Scala en la Práctica
Julio Carlos Sánchez Ortega
Agenda
• Introducción a Scala
• Casos de uso práctico
• Pattern Matching
• Haciendo pruebas
• Retos al usar Scala
• Uso en la industria
• Código
Introducción a Scala
• Es multi-paradigma
• Es todo-propósito
• Es multi-plataforma
• Soporte “nativo” de concurrencia
• Creado por el principal desarrollador del javac
Casos de uso práctico
• Como lenguaje principal en una aplicación
• Como lenguaje en de scripting
• Como lenguaje en el middleware
• Como lenguaje en el back-end
• Como lenguaje en el front-end
Como lenguaje de scripts
Scala puede ser usado para automatizar tareas repetitivas y ejecutarse desde el shell tal como se puede hacer con otros lenguajes como Python y Ruby.
Como middleware
• Scala nos puede servir como un broker de mensajería con ayuda de Actores
• Nos permite implementar muchas de las funciones de les EIP
Como back-end
• Usando un ORM como Squeryl
• Usando un cache como Infinispan
Como front-end
• En aplicaciones web con un framework como Lift
• En aplicaciones de escritorio con Swing
Pattern Matching
• Nos permite hacer una selección a partir de una estructura de datos y ejecutar una acción
• Es una de las características mas usadas en Scala
Usos del Pattern Matching
• Se usa como una sentencia switch con esteroides
• Se usa para discriminar los mensajes recibidos en los actores
• Se usa para ejecutar acciones a partir de una coincidencia en un set de expresiones regulares
• Se usa en el manejo de excepciones
Haciendo pruebas
• Pruebas de unidad con ScalaTest
• Pruebas estilo BDD con ScalaTest
• MockObjects y MockFunctions con Borachio
Retos al usar Scala
• Adopción
• Paradigma
• Legacy code
• Soporte de IDE’s
Uso en la industria
Código
Ejemplos adaptados de implementaciones reales.
Preguntas
Recursos
• Sitio oficial Scala - http://www.scala-lang.org/
• Sitio oficial de Lift - http://liftweb.net/
• Sitio oficial de Squeryl - http://squeryl.org/index.html
• Scala MUG - http://scala-mug.org/
• Primeros pasos con Scala – http://www.artima.com/scalazine/articles/steps.html
• Twitter on Scala –http://www.artima.com/scalazine/articles/twitter_on_scala.html
• LinkedIn Signal - http://www.infoq.com/articles/linkedin-scala-jruby-voldemort
• Código: http://hg.scala-mug.org/scala-in-practice/
Datos de contacto
• @thegeekinside
• http://mx.linkedin.com/in/juliocarlossanchez