Crónica de Codemotion Madrid 2017

Una nueva edición de Codemotion Madrid se celebró los días 24 y 25 de noviembre en el Campus Montepríncipe de la Universidad San Pablo CEU.

Profile estuvo presente, no solo como company partner del evento, sino también disfrutando del gran encuentro de desarrolladores y comunidades de desarrollo IT de España.

El equipo de arquitectura de Profile en Codemotion Madrid

Más de 2.000 personas, según la organización, asistieron a Codemotion Madrid, que contó con más de 140 charlas. Estos datos demuestran el interés de los patrocinadores, empresas y profesionales del sector informático por la mejora continua de las soluciones empresariales y la búsqueda de nuevos retos.

Las instalaciones de la Universidad San Pablo CEU y los organizadores cumplieron como buenos anfitriones en todo momento: en el timing de las charlas, en los medios técnicos, amplitud de las salas, el pícnic para reponer fuerzas…

La asistencia a todas las charlas es imposible por lo que si se asiste en grupo se puede optar por dividir los temas de interés y después comentarlos en los descansos. En dichos descansos también se aprovecha para comentar con compañeros de otras empresas algún detalle de alguna charla o la evolución del sector.

Hay que agradecer a los ponentes su esfuerzo para condensar en tan breve tiempo de exposición asuntos tan extensos y complejos. Asimismo, el compartir la documentación elaborada para las presentaciones y que sirve como un buen punto de partida en el estudio de las materias en las que se tiene interés.

El grado de especialización es enorme y se mostraron infraestructuras, paradigmas, herramientas, metodologías, productos, etc., para resolver un gran número de problemas de los que se presentan en el día a día y por supuesto, mejorar las soluciones existentes.

Reseñamos algunas de las charlas que más nos llamaron la atención.

Arquitectura Kappa 2.0

Juantomás García, veterano profesional y simpatiquísimo ser humano, ofreció una charla muy divertida e interesante sobre la Arquitectura Kappa basada en el procesamiento de streams de eventos que se almacenan en logs. Permite procesamiento masivo, de alto rendimiento e implementación en tiempo real de reglas de negocio. Actúa como receptor de eventos que se procesan en tiempo real para después almacenar los resultados obtenidos en otros subsistemas de backend como bases de datos, sistemas de reporting, históricos, etc.

En la charla se mostró cómo incrementar la capacidad de procesamiento en varios órdenes de magnitud con una reducción en esfuerzo y costes muy considerable por el cambio de paradigma y el uso de la arquitectura Kappa. Asimismo se comentaron las ventajas de los servicios en la nube en general con las ventajas de escalabilidad, costes, disponibilidad y distribución de las necesidades de los elementos necesarios para los sistemas de información.

Clean Architecture

Esta charla, a cargo de Álvaro García Loaisa, fue muy interesante desde el punto de vista de la arquitectura de los sistemas de información. Se hizo una exposición de diversas arquitecturas que se han utilizado a lo largo del tiempo y mediante unos diagramas de radar o estrella analizaron pros y contras como escalabilidad, facilidad de despliegue, facilidad para desarrollar, rendimiento, etc., así como los elementos más importantes de cada una de ellas.

La documentación de la charla sirve como punto de partida en una discusión profesional que ayude a elegir una arquitectura como base para un grupo de proyectos dentro de una compañía teniendo en cuenta un par de variables que a juicio del ponente son muy importantes: cohesión y acoplamiento. Merece la pena verla de nuevo.    

Charla de Clean Architecture en Codemotion

Component-Driven Development with React

Una de las charlas más orientadas al mundo ‘front’ fue ‘Component-Driven Development with React’. Alberto Vilva se centró en cómo pasar de una metodología de trabajo basada en aplicaciones monolíticas a hacerlo con una visión más orientada a componentes, haciendo que nuestras aplicaciones se compongan de estos como si de piezas de puzzle se tratase.

Se habló del concepto de Visual driven development como una nueva forma de desarrollar UIs basada en el clásico TDD. En este artículo se puede ampliar información sobre VDD y la potencia que ofrece.

Una de las partes interesantes fue el uso del Storybook como herramienta de desarrollo y testeo de dichos componentes o piezas del puzzle, la cual sirve como librería para poder ver el conjunto de los diferentes estados de estos componentes así como desarrollarlos de forma interactiva y de realizar tests sobre los mismos.

También se habló de cómo generar y mantener una librería de componentes basada en este sistema de Storybooks y se pudo ver una demo y cómo, a partir de dichos componentes, se iba construyendo una web sencilla.

La idea fue clara: hacer aplicaciones más usables, más mantenibles, más reutilizables y todo esto escribiendo menos código y haciendo el desarrollo más mucho sencillo y ágil. En resumen, se pudo ver el potencial de reusabilidad y la velocidad del desarrollo orientado a componentes, comenzando desde la fase de diseño, todo ello basándose en código React.

Git NoSQL

También hubo charlas más exóticas como la de ‘Git as a NoSQL Database’ de Kenneth Truyers, en la que se pudo ver cómo, dándole una vuelta de tuerca a una tecnología ya existente y orientada a un fin, se puede transformar con mucho ingenio en un herramienta para resolver una problemática bien distinta. Fue el caso de Git utilizado como una base de datos NoSQL en la que se pudo ver con multitud de ejemplos y código, cómo, utilizando la base de datos de objetos que git emplea internamente y usando de forma combinada comandos que proporciona la herramienta git, se puede simular el comportamiento de un base de datos NoSQL y obtener características muy interesantes que las bases de datos tradicionales no soportan, como son el almacenamiento duplicado y el histórico de los datos.

Esta charla pudo ofrecer una visión de que con creatividad se pueden obtener usos extra de herramientas existentes y enfocadas a otros menesteres y mostró la potencia que ofrece git en sus ‘tripas’ y cómo aprovecharse de ella, ya que muchos desarrolladores se limitan a utilizarla en su capa más superficial.

La programación funcional en la práctica… con todas sus consecuencias

Los amantes de la programación funcional disfrutamos de esta charla, con Juanma Serrano como ponente y maestro, porque además de presentar las ventajas teóricas de la programación funcional y su potente base matemática, expuso un ejemplo práctico para implementar una aplicación real. Dividiendo el problema en dos partes: la programación declarativa con el ‘qué’ debe hacer la aplicación y la implementación del ‘cómo’ lo hace.

Además de la transparencia referencial, funciones puras, inmutabilidad se mostró cómo se pueden definir sucesivos DSLs para cada uno de los módulos de la aplicación y diversas soluciones en forma de bibliotecas o productos para aplicar los efectos de lado al ‘qué’ (DSL) para pasar al ‘cómo’ mediante bibliotecas y contextos computacionales del paradigma funcional.

Reducción de código ‘boilerplate’, eliminación de Mocks en los tests, unificación de tests unitarios y de integración y productos para implementar por ejemplo un servicio RESTful con lógica de negocio y persistencia de datos. ¡No te la puedes perder!

Seamos “Hipster”, pensemos en ServerLess

Manu Delgado ofreció una charla muy interesante para los que nunca habíamos visto el ‘Serverless’ en acción. Además de la infraestructura Cloud necesaria, en este caso Azure, se enseñó cómo de manera muy sencilla, la función a ejecutar y su configuración necesaria, se puede implementar una operación de negocio que requiera ser ejecutada en un contexto Cloud. Ya sea por capacidad de cálculo, determinado stack tecnológico, paralelización, coste, etc.

El caso es que nuestro sistema de información se puede complementar con una (o varias) funciones de negocio que se ejecutan en una infraestructura que ofrece una funcionalidad variada y extensa. Todo lo que se necesita es el código de la función y la configuración necesaria. No hay que preocuparse por nada más. Se llama a la función y se obtiene el resultado. Muy sencillo y productivo.

Practical Spring Cloud

Alvaro Sánchez-Mariscal, ingeniero en el equipo de Grails, nos muestra uno de los proyectos más importantes de Pivotal: Spring Cloud para configuración distribuida y sus distintos subproyectos que tiene para seguir la metodología twelve-factor en microservicios.

Nos hace una breve introducción a todos los proyectos que componen Spring Cloud basados en los distintos patrones para sistemas distribuidos (Load balancing, circuit breakers, event bus, service discovery).

Comienza explicando la configuración distribuida en Spring Cloud, nos enseña las distintas maneras de configuración desde un .yml con la configuración de todos los entornos en cada jar/war (nivel “primate”como dice en la charla) hasta utilizar Consul (nivel “homo-sapiens”), pasando por el config-server con spring cloud bus para refresco de propiedades.

Para finalizar pone en práctica los distintos proyectos que nos ha explicado y así vemos código que al fin al cabo es lo que nos gusta. Levanta un config server y un cliente que lo consuma, hace lo mismo con Consul y nos enseña casos reales de distributed tracing con Sleuth

Tensorflow 101: From theory to practice & Adding containers to your CI/CD pipeline

Dos charlas (la primera a cargo de Moisés Martínez y Nerea Luis, y la segunda por Nacho Coloma)  que demuestran las ventajas de los servicios en la nube y la declaración frente a la implementación. Comparten el descomponer los problemas en tareas sencillas que con la ayuda de los múltiples servicios cloud y de forma declarativa consiguen resolver los problemas de una forma fácil.

Descomponer el problema, utilizar infraestructura existente y sobre todo decir lo que hay que hacer pero no implementarlo. Procesos tan complejos como machine learning, procesamiento de matrices en el caso de Tensorflow o construcción de las aplicaciones, creación de imágenes virtualizadas, despliegues, escalado, alta disponibilidad, configuración de red, despliegues en diferentes entornos, rollout / rollback de versiones, etc., se convierten en tareas relativamente sencillas si invertimos el tiempo en estudiar los servicios y en cómo definir la solución de los problemas en lugar de invertir el tiempo en implementar las soluciones.

Indie[Mad]

Otro de los puntos atractivos del evento fue el IndieMad, que era una zona exclusivamente dedicada al mundo de los videojuegos y que permitió a empresas españolas involucradas en este sector mostrar al público demos de sus videojuegos y poder jugarlas en directo. Todo aderezado con un buen atrezzo en cada stand así como con sorteos de merchandising participando en competiciones de los mismos.

Conclusiones

Son un par de jornadas que sirven para descubrir junto con los colegas de profesión el estado del arte del sector en lo que se refiere a los lenguajes de programación y tecnología.

Se presentan nuevas formas de resolver los problemas o mejoras en las soluciones que antes eran desconocidas y eso demuestra que el ingenio, la creatividad, la especialización y sobre todo la pasión por la tecnología en el sector, gozan de buena salud. Nuevos proyectos empresariales o personales surgirán sin duda del conocimiento compartido en las charlas de evento.

Tenemos como reto conseguir aplicar todo ese caudal de recursos en las empresas con las que colaboramos y reducir el esfuerzo y el coste empleados en los Sistemas de Información y por eso es recomendable asistir al evento del año que viene.

Aunque muchas de las charlas, presentaciones y documentos pueden verse sin asistir presencialmente al evento, es importante para el sector elevar el prestigio y promoción internacionales además de las ventajas económicas que supone para la ciudad donde se celebran.

Si no pudiste asistir o quieres revisitar algunas ponencias, en el canal youtube de Codemotion Madrid encontrarás una buena batería de charlas de esta edición.

¡Hasta el próximo año, Codemotion!

workshops de desarrollo IT en Codemotion Madrid

¿Te pareció interesante? Compártelo:
Share on Facebook
Facebook
Share on Google+
Google+
Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin
Print this page
Print
Email this to someone
email

Profile Software Services

Profile Software Services es una compañía de consultoría y servicios TI y software formada por más de 140 profesionales, especialistas en arquitectura de software, desarrollo web, apps móviles, sistemas, cloud computing, apificación y gestión de APIs y diseño UX. Estamos en Madrid, Barcelona y Sevilla.