jueves, octubre 13, 2022

Testing, Solid, Refactor y Docker: el cuarteto del éxito para la calidad en tus proyectos de desarrollo de software @geeks_academy #HackYourCareer

Es muy común que al adentrarse en el mundo de la programación se tenga la idea simplificada de que simplemente consiste en picar código, y que una vez funcione, ¡listo! Eso está bien al inicio de tu carrera como developer, de hecho, es el primer paso. Pero si quieres llevar tus desarrollos al siguiente nivel (y por supuesto, tu carrera como profesional IT) es indispensable que conozcas e incluyas en tu día a día el concepto de QA Testing.


Un día normal como otro cualquiera te comentan “tienes que añadir una funcionalidad nueva al proyecto,…” parece fácil. Pero cuando abres el fichero y ves más de 1.000 líneas de código, trozos comentados, líneas infinitas… Conclusión: ¡un horror! El código legado forma parte de nuestro día a día, así que debes enfrentarte a él, mejorarlo y que la próxima vez sea todo mucho más sencillo. Un perfil senior no solo escribe código sino que, además, incorpora en su día a día rutinas, trucos y actitudes que le permiten ser más productivo, más creativo y un profesional aún mejor.

¿Qué es QA testing?

QA testing hace referencia al proceso por el cual se asegura la calidad en un proyecto de software. Y es que una aplicación puede ser funcional, pero puede no ser todo lo funcional que podría ser. QA Testing, o calidad del software, pretende generar código reutilizable, más breve, filtrado, limpio y sobre todo que permita la escalabilidad del proyecto en cuestión sin cambiar sus funcionalidades.

¿Y qué prácticas llevar a cabo para ello? Hablemos sobre el cuarteto del éxito: Testing, Solid, Refactoring y Docker serán tus aliados para subir un escalón más como programador o programadora en el sector IT.

Testing, Solid, Refactoring y Docker

Testear, testear y testear.

Para añadir fiabilidad a tus desarrollos es indispensable que pongas en marcha el testing de software. Se trata de un proceso que verifica y valida la funcionalidad de una aplicación con el objetivo de garantizar que esté libre de defectos y coincida con los requisitos esperados para entregar un proyecto de calidad.

Existen dos tipos de testing principales: las pruebas funcionales y las no funcionales. Además puedes llevar a cabo la llamada prueba de mantenimiento.
  • Pruebas funcionales: Verifican cada función de una aplicación o software, su funcionalidad con un conjunto específico de requisitos.
  • Pruebas no funcionales o pruebas de rendimiento: Consideran parámetros como la confiabilidad, la usabilidad y el rendimiento.
Dentro de estas categorías existen múltiples técnicas de testing de software que harán que de tu código un desarrollo más profesional, y sobre todo, fiable.

Aplica los principios Solid

SOLID es un acrónimo introducido por Robert C. Martin a comienzos de la década del 2000. Estos principios vieron la luz por primera vez en el libro Agile Software Development, Principles, Patterns and Practices, y entre otras cosas, en el enuncia los famosos Principios SOLID. La metodología SOLID forma parte de los fundamentos de la arquitectura y desarrollo de software y está formado por 5 principios:

S – Single Responsibility Principle (SRP)
O – Open/Closed Principle (OCP)
L – Liskov Substitution Principle (LSP)
I – Interface Segregation Principle (ISP)
D – Dependency Inversion Principle (DIP)

Otorgan legibilidad y extensibilidad en los desarrollos y permiten eliminar código legado provocando que el programador tenga que refactorizar el código fuente. Los principios SOLID son recomendaciones que conviene aplicar para mejorar la cohesión y mantenibilidad de nuestros sistemas. Estos principios implican un nivel de complejidad y abstracción, así que está en tu mano decidir cuándo aplicarlos, ¡pero debes hacerlo!

Refactoring

El término "factoring" se ha utilizado en la comunidad de Forth desde al menos principios de los años ochenta. El capítulo seis del libro de Leo Brodie Thinking Forth (1984) está dedicado al tema. El primer uso conocido del término "refactorización" fue en un artículo de septiembre de 1990 de William Opdyke y Ralph Johnson. El libro de Martin Fowler Refactorización: Mejorando el diseño del código es la mejor referencia sobre el tema.

¿Qué es el proceso de refactorización?

Es un proceso sistemático donde mejoramos nuestro código sin modificar el comportamiento. Este conjunto de pequeñas técnicas independientes, nos ayudan a mejorar el código que ya existe:
  • Diseño más simple.
  • Más fácil de leer.
  • Más fácil de comprender.
Este es un proceso que se tiene que hacer muy poco a poco, esta práctica es muy conveniente realizarla con ayuda de test y si es posible utilizando el ciclo de vida de TDD. Es muy importante este punto, ya que tenemos que saber, si con nuestros refactors, no hemos roto nada del funcionamiento del código. Existen varias técnicas de refactoring, estas son las más útiles y utilizadas.
  • COMPOSING METHODS
  • MOVING FEATURES BETWEEN OBJECTS
  • ORGANIZING DATA
  • SIMPLIFYING CONDITIONAL EXPRESSIONS
  • MAKING METHOD CALLS SIMPLER
  • DEALING WITH GENERALIZATION
  • BIG REFACTORINGS
Para que entiendas mejor en qué consiste la práctica de refactoring, veamos qué NO es:
  • Solventar un error (bug) en nuestro código: el código ya debe estar funcionando correctamente.
  • Mejorar el rendimiento del programa: no persigue el rendimiento del sistema, sino el rendimiento como programador a la hora de trabajar con su código. Incluso al equipo, ya que la programación es una tarea conjunta en la mayoría de los casos.
  • No es añadir nuevas características: no hay que modificar el comportamiento del sistema ya que el usuario no debería darse cuenta de cambios internos que se hayan realizado.
Tenemos que pensar que gran parte del trabajo delante de código es leer y releer las mismas líneas. Por esta razón tenemos que hacer que este código no nos cueste de entender y sea fácil de mantener. El refactoring nos puede aportar la solución.

Docker

Docker es una plataforma de virtualización a nivel de sistema operativo que permite crear una aplicación y empaquetarla junto con sus dependencias y librerías en un contenedor que será capaz de ejecutarse en cualquier otra máquina. Fue desarrollado en 2013 y está escrito en Go. Actualmente Docker es una estándar en el desarrollo aplicaciones y es el corazón de la metodología DevOps y DevSecOps (SecDevOps).

Rafael Troncoso en 0xWord que puedes conseguir con oferta especial

Básicamente facilita a un equipo poder tener las mismas herramientas, homogeneidad de las tecnologías, versiones, etc. ¿Por qué elegir Docker?
  1. Nos olvidaremos del sistema operativo y las configuraciones manuales
  2. Nos olvidamos de "En mi máquina funciona..."
  3. Mucho más ligero y escalable que una máquina virtual.
  4. Trabajar en equipos de desarrollo.
  5. Concebido para trabajar en la nube. Para realizar los despliegues de una manera segura.
  6. La idea es emular durante el desarrollo lo máximo posible nuestro entorno de producción.
En conclusión…

Para ser un buen programador no basta con crear solo código que funcione, sino que es necesario hacer de este un código de calidad facilitando su legibilidad y escalabilidad para alcanzar un mayor grado de abstracción. No importa que seas un desarrollador solitario, formes parte de un gran equipo técnico o un consultor que trabaja con muchos clientes a la vez. Todas estas herramientas te ayudarán a aumentar la calidad de tu software y harán de ti un mejor profesional del desarrollo.

Figura 4: Módulos de contenido del BootCamp Online de QA Testing

En el Bootcamp Online QA Testing de GeeksHubs Academy se combina Testing, DevOps con Docker, Metodología SOLID y prácticas de Refactoring. Te permite formarte 100% online a tu ritmo recibiendo el apoyo de un tutor especialista, como Victor Bolinches o José Marín que te orientarán para que puedas seguir avanzando con la formación, además de tener Tempos de MyPublicInbox para contactar con cualquier profesional de la plataforma.


Si te interesa ampliar tus conocimientos, con el Código COMUNIDADGEEK20 podrás reservar tu plaza con un 20% de descuento. Pide más información al equipo de GeeksHubs Academy aquí.

Hack Your Career!

Autor: Chaume Sánchez, CEO de GeeksHubs



No hay comentarios:

Publicar un comentario