Hola, por acá Danilo👋Bienvenido a esta nueva sección de Robotipy llamada Lunes de Bots & Bytes 🤖
Cada lunes te enviaré un email con una idea breve de lo que haya conversado o visto durante la semana anterior acerca de RPA y Python.
También seguiras recibiendo articulos más largos de forma bisemanales, como nuestra último post:
Si te interesa aprender a hacer que tus robots sean más eficientes, escalables y fáciles de mantener, te invito a suscribirte.
Hace dos semanas estuve aprendiendo más acerca de principios de diseño y de como construir un software más robusto y escalable, y volví a leer acerca de los principios SOLID.
Estos principios, si bien fueron pensado para el desarrollo de software, me pregunté como sería aplicarlos en RPA.
Hice una encuesta en Linkedin para saber cuantas personas utilizan estos principios para sus automatizaciones y me sorprendió saber que casi la mitad de los votantes indicaron que sí los aplican🔥
Realmente esto me quedó atrapado en la cabeza, así que decidí escribir como aplicar los principios SOLID en la construcción de nuestros robots.
🧱Que es SOLID?
SOLID es un acronimo en inglés para los siguientes principios: Responsabilidad única, Abierto-Cerrado, Sustitución de Liskov, Segregación de interfaces e inversión de dependencias.
SOLID (Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion) es un acrónimo introducido por Robert C. Martin que representa 5 principios básicos de la POO y el diseño. Cuando estos principios se aplican en conjunto es más probable que un desarrollador cree un sistema que sea fácil de mantener y ampliar con el tiempo.
- SOLID: Wikipedia
Estos principios establecen las prácticas para construir código mantenible y aunque es pensado normalmente para la programación orientada a objetos, también puede ser aplicada a la programación funcional y por lo tanto, al RPA.
Acá van 4 ideas de como puedes aplicarlos en tus bots.
🧩Modularización de procesos
De forma general, todos los principios nos llevan al mismo lugar. Segmentar tu proceso en pequeñas partes con subrobots con lógicas específicas.
Dividir tu robot en tareas específicas te va a facilitar detectar errores, ya que si algo falla, sabrás donde buscar.
El principio de responsabilidad única te dice que cada robot tiene que tener una única responsabilidad y un solo motivo para cambiar.
Por ejemplo, supongamos que tenemos un robot que debe iniciar sesión en un sitio web, extraer datos y luego guardarlo en una planilla de cálculo, lo más recomendable es dividir este proceso en al menos 3 robots. Uno para iniciar sesión, otro para extraer los datos y uno para almacenarlos.
Técnicas que te pueden ayudar a modularizar son:
Estrucutra basada en la interfaz — Tu robot debería cambiar solo si una parte de la interfaz cambia
Estructura basada en Lógica — Tu robot solo debería cambiar si algo en la lógica del robot cambia
♻️Robots reciclables
A medida que realizamos más automatizaciones, comenzamos a tener procesos que comparten los mismos flujos de trabajo, como por ejemplo, robots para inicio de sesión en ciertos portales.
Estos robots con la misma lógica deberían poder ser reutilizables en tus diferentes automatizaciones sin tener que modificar su código.
El principio abierto-cerrado nos dice que un robot debe quedarse abierto para su extensión, pero cerrado para su modificación. Esto significa que tenemos que crear robots que podamos reutilizar y agregar más funcionalidades, pero no modificar la existente.
Si aprendemos a aplicar este principio, reduciremos el riesgo de introducir errores en lo que ya tenemos desarrollado cuando necesitemos agregar más funcionalidades a nuestras automatizaciones
🙂Construye robots simples
Crear una navaja suiza no es una buena idea. Un robot que recibe decenas de parámetros y validaciones para casos particulares solo nos hace difícil la tarea de debugear o agregar nuevas funcionalidades.
El principio de segregación de interfaces se traduce en construir robots simples que realicen actividades específicas y reciban una cantidad reducida de parámetros, en lugar de robots genéricos con varias variables de entrada.
Más de alguna vez hemos construido un robot reciclable, agregando validaciones, variables y actividades que no se ejecutan, para que funcione en muchos casos. Cuando pensemos en esto volvamos al primer punto. Crear robots más pequeños que manejen cada uno de esos casos
🔀Robot flexible a los cambios
Los procesos cambian todo el tiempo y no podemos evitar que ciertas partes de la lógica de nuestro robot falle en estos casos.
Imagina que tienes un robot que tiene un robot hijo que se encarga de extraer información de un documento específico de un banco y retorna los datos al robot principal para ser usado por otro subrobot.
Si el usuario decide cambiar de banco, tu automatización debería poder seguir funcionando una vez que modificas el robot hijo encargado de la extracción de los datos.
El Principio de Sustitución de Liskov nos indica justamente eso. Deberías poder reparar o intercambiar robots que realicen una tarea específica, sin causar problemas en tu flujo.
🧘Usa tu criterio
Tanto el desarrollo de software como la automatización de procesos requiere mucho más que programar. Tenemos que cumplir tiempos de entrega, documentar, atender reuniones, entre mil otras cosas.
Estos principios no son una regla que debe aplicarse siempre, y si no lo haces tus procesos están mal automatizados. Va en tu criterio aplicarlo según tus circunstancias y la dinámica de tu equipo.
Entender principios y patrones de diseño te ayudará a ser un mejor desarrollador RPA y a construir robots de mejor calidad.
Si estás recién comenzando, escribí una guía que te puede servir 👇
Y eso es todo por hoy! Si encontraste valor en este newsletter, considera alguna de estas cosas:
1) Suscribete a mi newsletter — Si aún no lo has hecho, considera convertirte en un suscriptor pago. Puedes ver más sobre los beneficios dando clic acá:
2) Lee con tus colegas — El mejor agradecimiento es tu recomendación. Comparte este artículo con tu compañero que le pueda interesar y consigue membresías gratuitas a través del programa de referido
Ten una gran semana! 🚀
Danilo