Share
Embed
Transcript
16 slides
-
Un poco de S4N • ¡9 años 4 meses 15
días trabajando en construir el mejor SW del mundo! • Somos un equipo de 150+ personas trabajando desde BOG y MDE atendiendo clientes en 5 países. • Construimos y operamos DistSys para nuestros clientes. • Usamos tecnologías requeridas por la solución del problema. • Un proyecto en S4N es típicamente de 3 años donde intervienen más de 15 desarrolladores en el tiempo. • Mantenemos 25+ proyectos en ejecución simultánea. -
¿Por qué Scala en S4N? Hace 4 años estabamos muy
cansados del ecosistema “empresarial” de Java (JEE, Spring) pues no podíamos entregar el valor que nuestros clientes buscaban. Ejemplo implementación “sagas” en contenedor -
¿Por qué Scala en S4N? Teníamos varios problemas que resolver
en proyectos con MinTIC cuyas soluciones caían en modelos DistSys. P.ej. Alcaldías de Colombia y notificación procesos judiciales -
¿Por qué Scala en S4N? Los problemas a los que
nos enfretabamos eran cada vez más distantes de las “recetas” de los vendedores empresariales por excelencia como IBM, Oracle, Microsoft. -
¿Por qué Scala Funcional en S4N? Mostrar las dos formas
de administrar la complejidad a la hora de construir software. -
Scala Funcional en S4N 1. OO 2. Composición de funciones
(sin efectos secundarios, transparencia referencial, mismo resultado dado los mismos datos de entrada) 3. ADT (Algebraic Data Types) 4. Typeclasses más usadas (Either, Option, Future, Try, List) 5. State, Writter, Reader, Kleisli y MonadT. 6. Un poquito de Shapeless para hacer parsers. 7. Parser combinators. 8. Demás drogas duras de FP. -
Curva de aprendizaje Somos demasiados desarrolladores (+100) saltando de codebase
en codebase en diferentes dominios/clientes y diferentes tecnologías (akka, akka-http, spray, play, cassandra, kafka, mongodb, postgresql, JS, etc) -
Curva de aprendizaje ¿Cómo hacemos para que hacer código más
fácilmente compartible entre todos? ◦ Golang style => Los desarrolladores necesitan herramientas limitadas para que no se vuelen los pies con la escopeta. ◦ S4N style => Somos capaces de aprender y aplicar correctamente las herramientas a nuestra disposición, aprendiendo de nuestros errores. De hecho ¡eso nos motiva! -
Fracasos y aciertos Fracasos • <sparkles> FP </sparkles> • Scalaz
/ cats / Shapeless para todo. Aciertos • Los desarrolladores son personas. Las personas normalmente quieren aprender cosas nuevas y los motiva la maestría :) • FP + Tipos como paradigma de diseño e implementación. • Entender, al menos superficialmente, Teoría de Categorías. -
Beneficios medibles • Bienestar de los equipos y desarrolladores ◦
Satisfacción al aprender ◦ Satisfacción al mantener ◦ Satisfacción al diseñar ◦ Satisfacción al evolucionar • Número de errores asociados a errores capturables en tiempo de compilación gracias a un buen modelamiento del problema, considerablemente menor.