Keystone Interface y Keystone Flag

Compartir esta publicación

Share on facebook
Share on linkedin
Share on twitter
Share on email

Tabla de contenidos

Como todos sabemos, los desarrolladores de software pueden facilitar su proceso de desarrollo integrando su trabajo tan a menudo como puedan. También se sabe que liberar con frecuencia a la producción ayuda mucho. Pero los desarrolladores y las partes interesadas en el proyecto no quieren exponer a sus usuarios características a medio desarrollar. Entonces, ¿qué ocurre en este caso? Una técnica útil para tratar este problema es construir el backend, integrarlo, pero no construir la interfaz de usuario. La característica puede ser integrada y probada, pero la interfaz de usuario se mantiene con la ayuda de un keystone (más información se puede encontrar en el blog de Martin Fowler), y se añade sólo cuando la característica se completa, mostrándola a los usuarios.

Los equipos de desarrollo de software utilizan mucho las feature flags porque aportan mucho valor. Los ingenieros pueden integrar sus cambios con mayor frecuencia. Las feature flags, por ejemplo la herramienta Koople, desbloquea capacidades como la canary release, lo que permite a los equipos lanzar features de forma segura.

En cuanto a la keystone flag, es un patrón que ayuda a reducir el número de puntos de decisión de la bandera para una característica moviendo esas decisiones a los límites del sistema.

Keystone Interface

La idea principal detrás de la interfaz keystone es que se evitan las ramas de características de larga duración mediante la implementación de una característica de una manera back-to-front, exponiéndola en la interfaz de usuario como el paso final. Esto permite a los ingenieros fusionar continuamente su trabajo en una rama de integración compartida sin que ese trabajo a medio terminar quede expuesto a ningún usuario. Una vez que la función está totalmente implementada, el desarrollador de software añade la interfaz -la keystone- que muestra la función a los usuarios.

Keystone Flag

Veamos cómo se puede utilizar la interfaz keystone en las plataformas de eventos en las que se necesitan códigos de descuento. El descuento es un concepto sencillo para un consumidor, pero requiere mucho trabajo entre bastidores. Los desarrolladores de software tienen que crear interfaces de usuario internas para crear y configurar códigos de descuento, enseñar a los sistemas de pago cómo aplicar los descuentos, mostrar los descuentos en los pedidos, etc. Esa interfaz de usuario «Añadir un código de descuento» es la interfaz clave. En lugar de dejar la interfaz clave sin implementar, los desarrolladores de software pueden implementarla pero ocultarla detrás de una bandera de característica, con la bandera desactivada por defecto mientras la característica está todavía en desarrollo. Esto es un Keystone Flag – una bandera de característica que protege una interfaz keystone.

Las Keystone flags garantizan que la función a medio terminar no esté expuesta a nuestros usuarios, pero los usuarios internos pueden acceder a ella con fines de validación: pruebas, exhibición, etc. Los desarrolladores de software pueden incluso realizar estas pruebas en producción si lo desean.

Una keystone flag abre otras oportunidades más allá de las pruebas. Las keystone flags también hacen que el lanzamiento de una característica sea más seguro en general. Por ejemplo, imagina un escenario en el que la funcionalidad del código de descuento está implementada y probada, por lo que se ha lanzado, activando la característica para todos los usuarios, pero entonces los desarrolladores descubren un error. Resulta que hay un problema para evitar que el mismo código de descuento se reutilice varias veces. Por suerte, la interfaz de usuario para introducir el código de descuento sigue estando protegida por una bandera de función. Los desarrolladores pueden desactivar rápidamente la interfaz de usuario, evitando una pérdida masiva de ingresos. Si los desarrolladores no hubieran utilizado un indicador, tendrían que realizar una reversión de emergencia, con todos los riesgos que ello conlleva. Cualquier funcionalidad de código de descuento más allá del sistema no necesita ser gestionada directamente por un indicador: podemos tenerla latente en producción, con la seguridad de que no se ejercitará hasta que estemos preparados para exponerla a través de la interfaz keystone.

Esto es lo que hace que el uso de la keystone flag sea una práctica tan valiosa: ofrece todas las ventajas de seguridad de la señalización de características, al tiempo que minimiza la suciedad que esas mismas señales de características pueden añadir a su código. 

Si necesitas ayuda con las feature flags o con el desarrollo de software en general, háznoslo saber. Somos expertos en este campo. 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Suscríbete a nuestro boletín de noticias

Recibe actualizaciones de los últimos descubrimientos tecnológicos

Acerca de Apiumhub

Apiumhub reúne a una comunidad de desarrolladores y arquitectos de software para ayudarte a transformar tu idea en un producto potente y escalable. Nuestro Tech Hub se especializa en Arquitectura de Software, Desarrollo Web & Desarrollo de Aplicaciones Móviles. Aquí compartimos con usted consejos de la industria & mejores prácticas, basadas en nuestra experiencia.

Posts populares
Descarga Grow Professionally: Inside Apiumhub's Dev Team

¿Estás orientado a Datos?

Construyamos tu éxito juntos.

Contáctanos

¿Tienes un proyecto desafiante?

Podemos trabajar juntos