La programación funcional está repleta de vocablos aparentemente inaprensibles: mónadas, funtores, type classes, tipos algebraicos de datos…
Todos estos conceptos de la programación funcional pueden parecer alejados de lo que acostumbramos a usar en el mundo más puramente orientado a objetos. No obstante, ¿qué pasa si ponemos frente a frente ambas arquitecturas y patrones?
En esta charla queremos unir las experiencias de Habla Computing con la programación funcional y CodelyTV con Arquitectura Hexagonal para motivar el aprendizaje de patrones y principios traídos de la programación funcional poniéndolos en contexto a nivel de arquitectura. Lo haremos desde un enfoque práctico viendo los paralelismos con los patrones de orientación a objetos y cómo podemos potenciarlos
Trataremos temas característicos de la Arquitectura Hexagonal como la definición y separación de capas, la regla de dependencia, y el modelado del dominio para ver qué cosas nos podemos traer de la programación funcional y así enriquecer ese conocimiento existente en la Orientación a Objetos. Luego ya le pondremos nombre y veremos que podemos entender el significado de las mónadas, las type classes y otras técnicas de la programación funcional, a través del papel que juegan en el diseño de una arquitectura hexagonal.
¡Os esperamos!

Comments

Comments are closed.

Great presentation for a quite difficult topic to grasp if you are not fully into FP. Both speakers in their own styles have this special thing that makes all the audience pay attention so I hope we can see more of this in the future.

Javier Ferrer González (Speaker) at 12:24 on 4 Oct 2018

# Retrospectiva interna sobre cómo creemos que nos fue la charla

## Keep: Cosas que consideramos que hicimos y deberíamos mantener para otras charlas o para otras veces que demos esta charla

* Hangouts de seguimiento y charla alineada 100%. Evitar el típico trabajo en grupo de la uni donde cada uno hace su parte. Rethinking code con conclusiones trabajadas conjuntamente necesarias
* Poner en contexto a la gente a pesar de que sea rápidamente
* Alternar ejemplos de uno y otro mundo de forma seguida (dinamismo)
* Ritmo de la presentación
* Slides trabajadas
* Créditos a ambos potenciando ambas marcas
* Practicidad
* Transmitir ilusión
* Estimación de tiempos previa

## Add: Cosas a añadir y que consideramos que no hicimos

* Usar semántica en ejemplos funcional (map -> andThen, E: -> ErrorType) -> Modelo mixto, en OO quizás lo harías así, pero aquí sólo 1 letra y pq
* Usar ejemplos en múltiples lenguajes para evidenciar conceptos agnóstico (OO: PHP y Java, FP: Kotlin, Haskell)
* Enfatizar que esto no es una charla de Scala
* Colgar código ni que sea en un Gist
* Dar tiempo para preguntas y debate

## Less: Cosas que hicimos y consideramos que deberíamos haber hecho menos

* Menos contenido. Centrar mensajes a enviar entorno a APIs a través la relación entre capas -> Potenciar código de parte capas y arquitectura ya que podría quedar coja en términos de ejemplos de código
* Caer en la trampa de dedicarle mucho tiempo al índice -> Revisar vídeo para mejorar
* Dejar preparación slides para última hora
* Repetición de conceptos en algunos Hangouts
* Alargar momento conclusión en apartado Takeaways y More Info. Repetir mensajes conclusión OK. Volver a los por qué y explicaciones KO.

## More: Cosas que hicimos, pero consideramos que no lo suficiente

* Promo de la charla previamente
* Explicar el por qué de las decisiones. Ejemplo: Niveles de indirección adicionales en FP. Poner ejemplo de front&back con puerto AS
* Debatir más en los Rethinking Time. El objetivo es que al acabar la charla la gente esté discutiendo sobre los pros&cons del rethinking time
* Destacar en el papel que tenía esta charla en el contexto de una Software Crafters. Poner ejemplo de 2 amigos que no se conocen entre sí y sientes que se tienen que conocer porque congeniarían.
* Enfatizar en desmontar mito de que FP es teoría, académico, etc

==================
¿Qué opináis vosotros?
==================

Aprovecho para dejar info sobre Habla Computing y CodelyTV por si queréis profundizar sobre los temas de la charla:

* Formación presencial Habla Computing: https://hablapps.com
* Cursos online sobre Arquitectura Hexagonal, refactor a type classes, y demás CodelyTV Pro: https://codely.tv/pro/cursos

¡Gracias!