Download - Scala en la Practica

Transcript
Page 1: Scala en la Practica

Scala en la Práctica

Julio Carlos Sánchez Ortega

Page 2: Scala en la Practica

Agenda

• Introducción a Scala

• Casos de uso práctico

• Pattern Matching

• Haciendo pruebas

• Retos al usar Scala

• Uso en la industria

• Código

Page 3: Scala en la Practica

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

Page 4: Scala en la Practica

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

Page 5: Scala en la Practica

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.

Page 6: Scala en la Practica

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

Page 7: Scala en la Practica

Como back-end

• Usando un ORM como Squeryl

• Usando un cache como Infinispan

Page 8: Scala en la Practica

Como front-end

• En aplicaciones web con un framework como Lift

• En aplicaciones de escritorio con Swing

Page 9: Scala en la Practica

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

Page 10: Scala en la Practica

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

Page 11: Scala en la Practica

Haciendo pruebas

• Pruebas de unidad con ScalaTest

• Pruebas estilo BDD con ScalaTest

• MockObjects y MockFunctions con Borachio

Page 12: Scala en la Practica

Retos al usar Scala

• Adopción

• Paradigma

• Legacy code

• Soporte de IDE’s

Page 13: Scala en la Practica

Uso en la industria

• LinkedIn

• Twitter

Page 14: Scala en la Practica

LinkedIn

Page 15: Scala en la Practica

Twitter

Page 16: Scala en la Practica

Código

Ejemplos adaptados de implementaciones reales.

Page 17: Scala en la Practica

Preguntas

Page 18: Scala en la Practica

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/