Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Seminario Scala

Seminario Scala

Invitamos a fortalecer a las comunidades de desarrolladores de otros lenguajes y colaborar en la creación de arquitecturas opinadas para cómputo y sistemas distribuidos en Scala a través de la creación de Seminarios.

Salvador Parra Rosas

May 01, 2014
Tweet

More Decks by Salvador Parra Rosas

Other Decks in Technology

Transcript

  1. Agenda 1. Objetivos 2. Audiencia 3. Contenido 4. Metodología 5.

    Recursos 6. Motivación 7. Resultados esperados
  2. Objetivos • Aprendizaje y dominio del lenguaje de programación Scala

    para el desarrollo de sistemas distribuidos de cómputo. • Fortalecer a las comunidades de desarrolladores de otros lenguajes y colaborar en la creación de arquitecturas opinadas para cómputo y sistemas distribuidos. • Formar el Grupo de desarrollo de Scala México, con sede en Puebla (scala.org.mx)
  3. Audiencia • Desarrolladores con conocimientos básicos de programación estructurada que

    desean aprender un nuevo lenguaje para el planteamiento de retos de desarrollo de software mayores. • Desarrolladores de otros lenguajes de programación que deseen incursionar en el terreno del cómputo distribuido y los lenguajes de programación híbridos • Profesionales interesados en la arquitectura de sistemas complejos y la programación funcional moderna. • Estudiantes y profesores que deseen anticiparse a escenarios de desarrollo de software para el tratamiento de Big Data.
  4. Contenido 1. Introducción, método y teoría básica: Un lenguaje escalable

    2. Primeros pasos en Scala 3. Siguientes pasos en Scala 4. Clases y Objetos 5. 5. Tipos Básicos y Operaciones 6. Objetos Funcionales 7. Estructuras de Control Interconstruídas 8. Funciones y Cerraduras 9. Abstracción de Control 10. Composición y Herencia 11. Jerarquías de Scala 12. Traits (Rasgos) 13. Paquetes e importaciones 14. Aserciones y Pruebas Unitarias 15. Clases de Casos y Coincidencia de Patrones 16. Trabajo con Listas 17. Colecciones 18. Objetos con estado 19. Parametrización de Tipos 20. Miembros Abstractos 21. Conversiones Explícitas y Parámetros 22. Implantación de Listas 23. Expresiones For Revisadas 24. El API de Colecciones de Scala 25. a Arquitectura de Colecciones de Scala 26. Extractores 27. Anotaciones 28. Trabajo con XML 29. Programación Modular usando Objetos 30. Igualdad de Objetos 31. Combinando Scala y otros Lenguajes 32. Actores y Concurrencia (Introducción) 33. Análisis Gramatical de Combinadores
  5. Metodología Ciclo participativo Lectura y Comprensión Discusión Ejecución Participación Proyectos

    Formato • Taller dinámico con participación activa de la audiencia y conductor designado. • El ciclo de participaciones estará centrado en la lectura y comprensión de los temas, la ejecución de código interactivo, la discusión de las arquitecturas propuestas y el diseño de proyectos modestos. • Principio de Trabajo: Del fundamento formal a los patrones de software, de los patrones a la opinión y de la opinión a la arquitectura. • Se formarán equipos en tríadas: Senior, Junior, Tester
  6. Recursos Bibliografía básica Martin Odersky, Lex Spoon, Bill Venners Programming

    in Scala, Second Edition A comprehensive step-by-step guide Artima (2010) Joshua D. Suereth Scala in Depth Manning. 2012 Nilanjan Raychaudhuri Scala in Action Manning. 2013 Comunidad • Proponemos la creación de la comunidad Scala México y el mantenimiento del sitio scala.org.mx a través del seminario y los entusiastas de todo el país. • Promoveremos la hibridación de soluciones y el diseño de arquitecturas opinadas para incorporar los desarrollos en Scala en los proyectos personales y profesionales de la audiencia.
  7. Motivación • De la página scala-lang.org Object-Oriented Meets Functional Have

    the best of both worlds. Construct elegant class hierarchies for maximum code reuse and extensibility, implement their behavior using higher-order functions. Or anything in-between. Lo Orientado a Objetos se encuentra con lo Funcional Tener lo mejor de dos mundos. Construir jerarquías de clases elegantes para maximizar el reúso de código y la extensibilidad, implantar su comportamiento utilizando funciones de alto orden. O cualquier cosa intermedia.
  8. Resultados Esperados • Aprender un nuevo lenguaje y un nuevo

    estilo de programación. El aprendizaje y la actualización en temas de estado del arte en programación de sistemas. • El planteamiento de proyectos para su desarrollo en las etapas posteriores. • La experiencia de trabajo en equipo y la participación activa en el diseño de arquitecturas opinadas. • Creación de habilidades básicas necesarias en el tratamiento de Big Data. • La creación de perspectivas en aptitudes potenciales en el mercado laborar de elite. • Formación de una comunidad de apoyo y un clúster de colaboración para proyectos de software científico, industrial y empresarial.