Resumen 2020

Pues comenzamos el 2021 con un resumen del 2020. Escribiendo una entrada en el blog después de mucho tiempo. Lo cual, espero hacer más a menudo.

Personalmente, digamos que ha sido un año de crecimiento profesional. 2020 empezó fuerte y con muchas ganas e ilusiones. Adquiriendo más responsabilidades y nuevos proyectos.

Pero poco a poco el año fue en caída libre, y también puedo decir y aunque parezca contradictorio, también ha sido un año de estancamiento. Tenía muchas ganas de adquirir conocimiento en distintos lenguajes y empezar un par de proyectos personales que no pudieron llevarse a cabo.

También tenía en mente darle un cambio visual a este blog. Añadir nuevo contenido de manera más regular al blog. Aparte de esto, también quería aprender más sobre SEO y adentrarme más profundamente en este tema. Lo cual también podría usarlo para nuevo contenido de calidad en el blog.

Siempre, cuando un nuevo año empieza, aparecen nuevas metas y propósitos para el nuevo año que entra. Lo cual, lo expondré más adelante lo que espero para el 2021. Pero ya adelanto que estará bastante relacionado con lo que he expuesto en el párrafo anterior.

Tras esta pequeña introducción, vamos a meternos en el resumen del 2020 de cabeza.

Actividad laboral del 2020

Comencemos por el principio. 2020 ha sido un año de crecimiento laboral. He mejorado en la abstracción y en el análisis de los problemas. No solo eso, la calidad del código también la he mejorado en una manera sustancial.

El liderazgo en un par de proyectos sobre los que he tenido la máxima responsabilidad ha ayudado a ello. Esto, me ha obligado a estar más pendiente y a focalizar no solo en solucionar el problema que tenía. También debería de hacerlo de la mejor manera posible.

Sistema de notificaciones en tiempo real (Real Time Updates)

En este proyecto, hemos tenido que desarrollar un sistema de notificaciones en tiempo real. Gestionando múltiples colas, usando RabbitMQ y SQS. Además, diferentes bases de datos, tanto relacionales como MySQL como bases de datos no relacionales como Redis.

Elegir la arquitectura del sistema para alcanzar la solución más eficiente, fue uno de los retos más complicados, ya que al ser una integración de varios sistemas y múltiples conexiones entre ellos la eficiencia y la eficacia era algo primordial. También, había que convencer a los managers, de que era la mejor solución. No fue fácil, pero finalmente, después de varias pruebas y demostraciones de que era la solución perfecta para el problema que teníamos que resolver.

En la planificación inicial, cometimos errores debido a la falta de requisitos claros y concisos, así como los distintos cambios de los mismos durante el desarrollo. Los hemos ido depurando hasta obtener un sistema de notificación en tiempo real fácil de expandir para añadir nuevos sistemas, con gran reutilización de código, un código limpio, entendible y siguiendo patrones de diseño.

Con bastante imaginación en el código se ha logrado un sistema de notificaciones donde, desde el inicio de la acción hasta que todos los distintos sistemas son notificados, pasando por las distintas colas de procesamiento y procesando y adaptando la información al formato de cada uno de los sistemas, se logra en apenas 2-3 segundos lo cual es fantástico.

Para terminar con este tema, he de decir, que he aprendido mucho. Ya que las notificaciones en tiempo real hoy día es algo en auge. Crear tu propio sistema te da una visión profunda de la complejidad que ello supone. Comprobar la capacidad de estar a cargo y ver que he sido capaz de hacerlo me ha dado un plus de seguridad en mí mismo.

Nuevos endpoints y helpers para el sistema

Otro de los desarrollos más importantes de este año ha sido la generación de nuevos endpoints para la API del sistema. La reorganización de la estructura de ficheros para ordenar el código.

Anteriormente, se usaba un fichero donde se le añadían los métodos de la API, esto nos iba dando lugar a ficheros enormes de +10K líneas y no era mantenible. Se ha optado por la reestructuración y tener un nuevo fichero por cada función que gestiona los nuevos endpoints.

Por otro lado, había distintas funciones que se repetían en el código. Tras estudiar el código existente y hacer un análisis de código y ver cómo se podría mejorar. Llegamos a la conclusión de crear helpers o librerías internas auxiliares.

Tener en un único lugar ese código que está repetido varias veces en nuestro proyecto. Nos va a aportar algunos beneficios:

  • Código único para esa funcionalidad única
  • Reutilización
  • Limpieza de código

El empezar a reemplazar el antiguo código por los nuevos helpers. De esa manera, tenemos centralizado el código. Un pequeño ejemplo de utilidad será el siguiente:
A la hora de actualizar/arreglar un bug en una función para leer una variable. Solventar el error en el helper, implicaría arreglarlo en todos los lugares donde se utiliza. Lo cual ya nos ahorraría, tener que revisar el código y ver dónde hacemos ese código y tener que solventarlo X veces según las veces que estuviera repetido.

Por lo tanto, es una mejora muy importante. Nos permite reutilizar código, nos da más velocidad de desarrollo y a la hora de arreglar fallos también nos ayuda.

Otras cosas

Bueno, para finalizar con el tema del 2020.Estos han sido una de las cosas que veo que han sido más productivas y más nos han ayudado en tema de desarrollo de código.

Pero el tener el liderazgo del desarrollo, también me ha obligado a planificar. Evidentemente, he cometido errores y he aprendido de los mismos. A mejorar las estimaciones también he aprendido. A ser una figura de referencia para otros compañeros, y tener que el faro que los ha estado guiando para ciertos desarrollos, también ha aumentado mi seguridad en mí mismo.

Con eso he abarcado el crecimiento profesional durante 2020, lo cual puedo decir que ha sido bastante bueno.

Por otro lado, había bastantes cosas que se me han quedado en el tintero. Como ya comenté al principio, me gustaría haber empezado a crear código en otros lenguajes de programación. Tenía en mente sobre todo Python y NodeJS.

Además, de adquirir nuevo conocimiento SEO y de marketing online, porque quería darle una vuelta al blog.

Así, que con esto vamos a dejar atrás 2020 y vamos de lleno a lo que tengo en mente para 2021.

Planes para el 2021

Primero de todo, aquí estoy escribiendo una nueva entrada, después de bastante tiempo sin hacerlo. Quiero empezar a publicar asiduamente, al menos 2 veces al mes.

El sitio, en principio no está muy mal. Pero aún así quiero darle un cambio visual. Desarrollar un nuevo tema visual y que se acuerde a los nuevos standard, y actualizar cierta información que no está del todo fina.
También, dentro de ese proceso de cambio, trataré de mejorar su posicionamiento y de añadir más SEO.

También, adquirí recientemente varios cursos de Python y NodeJS como comenté anteriormente. Quiero hacer pequeños proyectos y ver cómo se trabaja en esos lenguajes. Tras 5 años usando PHP como lenguaje principal y Laravel como framework. Creo que debería de conocer otros lenguajes y ver las posibilidades que me pueden ofrecer.

También, y esto es un aspecto más personal que profesional. Tengo un par de proyectos que tengo que terminar, así como esforzarme en mi liderazgo. Ser más claro y conciso con los objetivos que tengo que realizar y dedicar cierto tiempo a mi crecimiento personal.

Con esto creo que la entrada está completa.

Gracias por haber llegado hasta el final.

Comparte 🙂

Si te ha gustado el contenido de este artículo, no te olvides de compartirlo con eso me harías muy feliz. GRACIAS 😉

Participa 😉

Además de todo ello, si tienes dudas, sugerencias o algo que me quieras comentar, añade un comentario, no dudes en hacerlo. GRACIAS 😉

Otras entradas similares

Juan Ramón González Morales
Follow Me
Últimas entradas de Juan Ramón González Morales (ver todo)

¿Y tú qué opinas?

Antes de participar en los comentarios, ten en cuenta que leeré personalmente cualquier cosa que escribas. Así que, por favor, mantén las formas y compórtate como una persona de bien.

  • (will not be published)

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">