Curso Clean Architecture

Curso Clean Architecture

Una vez colaboré con una empresa que tenía una aplicación Android cuyo mantenimiento les aportaba casi el 80% de los ingresos.

La aplicación utilizaba una librería para el acceso a la base datos de cache en local.

Las aplicaciones móviles normalmente utilizan cache para el acceso offline a la información cuando no hay red.

El problema era utilizaban esta librería desde cualquier punto de la aplicación, generando acoplamiento muy fuerte.

En estas circunstancias es habitual dificultad para escribir tests, duplicidad en el código, no tener identificado el dominio etc... Por lo tanto, aparecen problemas de tipo arreglo una cosa y se rompen 3.

Cuando trataron de actualizar la librería a una versión superior porque tenía unas features que les interesaban, no pudieron. Se tuvieron que quedar en la versión que usaban, que ya era muy antigua.

El motivo, las versiones nuevas de la librería de acceso a la base de datos tenían breaking changes tan bestias que el coste de adaptarse a esos cambios, debido al acoplamiento, suponía un coste demasiado elevado.

El cliente propietario de la aplicación no estaba dispuesto a asumir ese coste, ya que pensaba que el problema lo habían generado los desarrolladores.

Sin tener todo el contexto, posiblemente tenía parte de razón.

Lo peor vino cuando unos meses más tarde, las políticas Google Play se actualizaron restringiendo el target del SDK, para actualizar aplicaciones, a una versión superior a la que tenía la aplicación.

Cuando tratarón de subir el target del SDK la compilación fallaba.

La razon era que la librería de acceso a la base de datos usaba una parte del SDK de Android que tenia breaking changes también, era necesario actualizar la versión la librería para poder compilar en el nuevo target del SDK.

La consecuencia fue que no podían subir actualizaciones a Google Play para solucionar errores en producción reportados por los usuarios.

Para poder subir una actualización necesitaban actualizar el target del SDK de su aplicación, lo que a su vez requería actualizar la librería a la nueva versión con breaking changes muy bestias.

Se encontraron en un callejón sin salida que estaban pagando los usuarios sin recibir fixes de la app.

Y es que no solo al cambiar de librería o framework puedes verte en callejones sin salida similares a este. Nuevas versiones de librerías que ya usas, con breaking changes muy serios te pueden meter en un problema sin no has hecho un buen trabajo previamente.

La tecnología no para y va muy rápido. Si no estas preparado para adaptarte vas a tener problemas.

La documentación de los frameworks no te enseña a usarlos pero sin depender de ellos. Porque lo que quieren es que los uses y dependas de ellos, parece lógico ¿no?.

Aprender a desacoplarte de librerías y frameworks es tarea tuya.

Volviendo a la empresa con el problemón, tras evaluar la situación y ver que el problema de acoplamiento era generalizado con todas las librerías y no solo con la de acceso a la base de datos, decidieron desarrollar una nueva aplicación.

No les quedo más remedio que asumir un coste todavía mayor al inicial.

Me contrataron para formar al equipo, de forma que aprendieran a no caer en el mismo error al desarrollar la nueva aplicación que sustituyera a la antigua.

No estaban preparados para adaptarse a la velocidad de cambio de librerías y frameworks.

Este curso de Clean Architecture es el curso que impartí en esta empresa para ayudarles a evitar los mismos errores de nuevo.

Valor de este curso

Una vez adquiridas las habilidades que te enseñaré en este curso, obtendrás estás ventajas en tus desarrollos:

  • Reducir costes de mantenimiento
  • Capacidad de adaptarte a la velocidad de cambio de la tecnología.
  • Reducir complejidad y acoplamiento del código
  • Minimizar incidencias en producción
  • Reducir costes de desarrollo
  • Mejorar la base de código sobre la que trabajar
  • Aumento la seguridad en el desarrollo
  • Reducir la deuda técnica
  • Reduce los tiempos de prueba al introducir test automáticos

Metodología

La parte más dificil de un curso es poner en práctica lo aprendido, por eso en este curso los alumnos pasan la mayor parte del tiempo programando.

El curso esta dividido en módulos y cada módulo consta de parte teórica y parte práctica.

La parte práctica se organiza trabajando en pareja, donde se fomenta un entorno comunicativo mediante ejercicios cortos.

Requisitos

Este es un curso para personas con un mínimo de conocimientos de programación.

El lenguaje no es importante porque es una formación generalista, de hecho en los ejemplos yo utilizo diferentes lenguajes a modo de demostración como Java, C#, Kotlin, Swift, TypeSript porque son los lenguajes con los que he trabajado.

En los ejercicios prácticos se pueden usar también otros lenguajes, eso no es problema.

Contenido

Este curso cubre los siguientes temas:

  • Principios SOLID:
    • Principio de responsabilidad única
    • Principio abierto cerrado
    • Principio de Sustitución de Liskov
    • Principio de Segregación de Interfaces
    • Principio de Inversion de dependencia
  • Clean Architecture
    • Arquitecturas limpias
    • Regla de dependencia
    • Casos de uso
    • Entidades
    • Adaptadores
    • Frameworks y drivers
    • Ideas clave
  • Patrones de diseño, prácticas y code smells
    • Vertical Slice
    • Implementaciones concretas
    • Patrones de inyección de dependencias
    • Patrones en la capa de datos o infraestructura
    • Patrones en la capa de presentación
    • Patrones en la capa de dominio
    • Code Smells
  • Testing con Clean Architecture
  • Consejos

Duración

La duración del curso es de 16 horas.

Puede ser repartido en 2 bloques de 8 horas o 4 bloques de 4 horas.

Formato

El formato del curso puede ser de forma presencial o de forma remota por videoconferencia.

Precio

El precio del curso son 570€ + IVA por alumno.

El número de alumnos deberá ser entre 6 y 15 alumnos para empresas.

Para empresas y en abierto

El curso se puede impartir in-house, (cerrado para la empresa que lo contrata), o en abierto.

Cuando es en abierto será exclusivamente de forma online y será comunicado vía la newsletter.

A las ediciones en abierto es habitual que asistan las empresas pequeñas enviando gente y también pueden participar particulares.

Antes de enviar tu consulta, échale un vistazo a la información básica sobre protección de datos aquí

xurxodev.com te informa que los datos de carácter personal que me proporciones rellenando el presente formulario serán tratados por Jorge Sánchez Fernández como responsable de esta web.

Finalidad de la recogida y tratamiento de los datos personales: enviar la información que el usuario requiera a través de la web.

Legitimación: Consentimiento del interesado.

Destinatarios: Hosting: DigitalOcean, LLC. Debes saber que mi hosting 100% seguro.

Derechos: Podrás ejercer tus derechos de acceso, rectificación, limitación y suprimir los datos en info@xurxodev.com así como el derecho a presentar una reclamación ante una autoridad de control.

El hecho de que no introduzcas los datos de carácter personal que aparecen en el formulario como obligatorios podrá tener como consecuencia que no pueda atender tu solicitud.

Información adicional: Puedes consultar la información adicional y detallada sobre Protección de Datos en mi página web: xurxodev.com, así como consultar mi política de privacidad.

Testimonios

"Curso recomendable 100%, para aquellos que les pique la curiosidad de que es eso de Clean Architecture o para afianzar conceptos y resolver posibles dudas.
Da igual la tecnología, el lenguaje, front, back... se trata de escribir código lo más entendible y fácil de testear/mantener por ti y sobre todo por el que vendrá más tarde!!!
Gracias por todo Jorge."
Miguel Llácer San Fernando

"Yo solo puedo recomendar de una forma muy positiva el trabajo de Jorge.
Nos ha ayudado a crecer técnicamente el equipo móvil (Android & iOS), y medio año después el balance que hemos hecho es muy positivo.
El equipo tiene los conocimientos sobre qué tiene que hacer y cómo lo tiene que hacer.
El equipo es mucho más crítico con su propio trabajo.
Las aplicaciones que tenemos en producción cada vez fallan menos.
Para dar datos reales en base a la analítica que extraemos de forma mensual puedo decir que el tiempo invertido en solucionar errores en las aplicaciones en el último trimestre de 2016 fue del 24% y en el primer trimestre de 2017 es del 9% (ya con refactorización e inclusión de tests en base a los conceptos aprendidos con Jorge). De cara al mes de junio ya tenemos programada una mejora en la arquitectura de las aplicaciones con la que esperamos reducir aún más esta tasa y hacer que las aplicaciones sean más extensibles y absorban mejor el cambio.
En resumen, considero que ésta es una de las mejores inversiones que ha realizado RadMas a lo largo de su historia.
100% recomendable"
Jorge Hernán Esparza

"Jorge Sánchez estuvo impartiendo en mi empresa clases acerca de Clean Code. Gracias a las técnicas que nos enseñó hoy nos está siendo más fácil el mantenimiento de las aplicaciones que desarrollamos gracias a que aplicamos lo aprendido en las clases de Jorge.".
Yhondri Josué Acosta Novas

"Jorge es un profesional serio, comprometido con su trabajo y en continuo reciclaje de sus conocimientos. Ha demostrado contar con gran experiencia en las técnicas para la construcción y mejora de software moderno (CLEAN, DDD, SOLID, TDD, CI, etc.). La formación impartida al equipo de Mejora Tu Ciudad está permitiendo que tanto en el ámbito mobile como en backend nuestro producto esté progresando muy positivamente, con resultados observables tanto técnicamente como por parte del cliente final".
Fernando Moro Hernández

"Jorge nos lleva ayudando durante varias semanas a asentar conceptos acerca de principios de desarrollo SOLID, TDD, buenas prácticas, etc.
Gracias a su formación, ya contamos con herramientas de testing en nuestros desarrollos de aplicaciones. La formación se estructuraba en sesiones teóricas así como prácticas, en forma de katas de programación, pudiendo aplicar los conocimientos de primera mano. Las sesiones son amenas y muy entretenidas, cualquier duda o pregunta nos atiende sin ningún problema. Además también adjunta al final de las sesiones un apartado de bibliografía recomendada para continuar con la adquisición de los conocimientos. En definitiva la formación es bastante completa y útil para desarrolladores que buscan limpieza y organización de código".
Carlos Ramírez Lizán

"Conocí a Jorge a través de de su primer blog, xurxodeveloper.blogspot.com. Yo ya venía siguiendo su línea por los aportes a la calidad de software que nos hace en sus artículos, y me pareció una persona con suficiente experiencia. Así fue como decidí solicitarle un curso sobre testing en Android. El curso ha sido una de las mejores inversiones que he hecho. Estoy muy contenta con su trabajo y lo que he aprendido con él, yo lo recomiendo al 100% y en estos temas no he encontrado otra persona con tanto nivel de especialización y experiencia en estos aspectos. Le avala lo que podemos saber de él a través de toda la documentación que comparte con la comunidad".
Liudmila Sánchez

Artículos Relacionados

Curso Clean Architecture para Power Electronics
Esta semana he impartido la primera de las dos ediciones que voy a realizar del Clean Architecture en Power Electronics. En Power Electronics es una empresa de servicio y fabricante de productos de electrónica de potencia avanzada. Ofrecen al sector industrial y solar fotovoltaico un amplio portfol…
Segunda edición en abierto y online del curso Clean Architecture
Esta semana ha tenido lugar la segunda edición en abierto del curso del Clean Architecture de forma online. Han sido dos ediciones en abierto durante este año, además de alguna privada para empresas. Tras el éxito de la primera edición, decidí abrir lista de espera para lanzar la segunda. Con
Curso Clean Architecture para PrevenControl
Esta semana he impartido un curso del Clean Architecture en PrevenControl. En PrevenControl se dedican tanto a la consultoría de riesgos laborales como a la inspección técnica de vehículos. * Consultora de riesgos laborales: https://prevencontrol.com/ * Inspecciones de vehiculos: https://www.cit…
Primera edición en abierto online del curso Clean Architecture
El mes pasado tuvo lugar la primera edición en abierto del curso del Clean Architecture de forma online. Este curso lo llevo impartiendo desde 2016 en empresas. Debido a la cantidad de solicitudes que había recibido mediante redes sociales o el formulario de la web por parte de particulares o
Formación en Abantail
En este mes de Mayo he estado impartiendo unas sesiones de formación en Abantail. Abantail Abantail es una empresa referente en la automatización del proceso de ingeniería bajo pedido desde el año 2004, esta ubicada Arrasate-Mondragon (Gipuzkoa). Sonia Ortubai, gerente de Abantail, se puso en…
Plan de formación en RadMas Technologies
Desde octubre he estado impartiendo un plan de formación en Rad(+) Technologies. RadMas Technologies RadMAs es una empresa de desarrollo de software a medida especializada en Software Libre. Desarrollan diferentes aplicaciones como por ejemplo Mejora Tu Ciudad. Jorge Hernán, el responsable…

¡Genial! Te has inscrito con éxito.
Bienvenido de nuevo! Has iniciado sesión correctamente.
Te has suscrito correctamente a XurxoDev.
Su enlace ha caducado.
¡Éxito! Comprueba en tu correo electrónico el enlace mágico para iniciar sesión.
Éxito! Su información de facturación ha sido actualizada.
Su facturación no se actualizó.