Scala es un lenguaje muy poderoso que nos permite programar de forma concisa y efectiva, además de ayudarnos a incrementar nuestra productividad al escribir menos código para hacer mas.
En esta sesión se mostrará con ejemplos prácticos como sacar provecho de Scala en el desarrollo de aplicaciones web con las características necesarias para el mercado actual.
Los ejemplos que se verán usarán los dos frameworks mas populares para el desarrollo web en el ecosistema Scala: Play Framework 2.0 y Lift 2.4.
2. • Que es Scala?
• Que es Play Framework 2?
• Arquitectura
• Características
• Anatomía
• Demo
Agenda
3. • Scala es un lenguaje de programación híbrido basado en
los paradigmas de Orientación a Objetos y Programación
Funcional complementándolos de manera armoniosa
inventado por Martin Oderesky.
Que es Scala?
4. • Play 2 es un framework de alta productividad para crear
aplicaciones web en Java y Scala.
• Esta basado en una arquitectura ligera, sin estado y con
poco consumo de recursos como CPU, memoria y
threads.
• Su arquitectura esta basada en un modelo dirigido por
eventos.
Que es Play 2?
6. • Configuración de URL’s de manera declarativa.
• Mapeo de tipos seguro desde HTTP a un API idiomática
de Scala.
• Arquitectura que soporta los tecnologías HTML5 en el
cliente.
• Cambios en vivo con tan solo refrescar el Browser.
• Características completos de un framework web
incluyendo persistencia, seguridad e internacionalización.
Características
7. app
→
Fuentes
de
la
aplicación
└
assets
→
Fuentes
compiladas
de
assets
└
stylesheets
→
CSS
└
javascripts
→
CoffeScripts
└
controllers
→
Controladores
└
models
→
Modelo
de
negocio
└
views
→
Plantillas
(Vistas)
conf
→
Archivos
de
configuration
└
application.conf
→
Archivo
de
configuración
principal
└
routes
→
Definición
de
rutas
public
→
Assets
públicos
└
stylesheets
→
Archivos
CSS
└
javascripts
→
Archivos
JavaScript
└
images
→
Archivos
de
imagen.
project
→
Archivos
de
configuración
de
SBT
└
build.properties
→
Propiedades
del
proyecto
└
Build.scala
→
Script
de
construcción
└
plugins.sbt
→
Plugins
de
SBT
lib
→
Bibliotecas
no-‐manejadas
logs
→
Logs
└
application.log
→
Archivo
Log
por
defecto
target
→
Archivos
binrios
generados
└
scala-‐2.9.1
└
cache
└
classes
└
classes_managed
└
resource_managed
└
src_managed
test
→
Archivos
de
pruebas
de
unidad
y
funcionales
Anatomía