Hola a todos, soy Graham y estoy muy emocionado de darles una charla hoy sobre el uso de feature flags con componentes de servidor de React, así que empecemos. Soy Graham McNichol. Soy el cofundador de Growthbook. Growthbook es la plataforma de feature flagging y pruebas A-B de código abierto más popular. Pasé por Y Combinator hace un par de años y anteriormente fui el CTO de mi última startup.
El objetivo de la charla de hoy es, si aún no están familiarizados, darles una breve introducción sobre qué es el feature flagging. Vamos a dar algunos ejemplos de cómo pueden implementar feature flags en su aplicación y luego algunos ejemplos más complejos. Y luego, lo más importante de esta charla, es hablar sobre cómo interactúa el feature flagging con React y en particular con algunas de las diferentes estrategias de renderizado que tiene React. Vamos a ver cuatro ejemplos diferentes de diferentes estrategias de renderizado que tiene React y cómo pueden usar el feature flagging en cada una de ellas.
Bien, teniendo eso en cuenta, vamos a ver qué es el feature flagging. Los feature flags son lógica condicional que colocas alrededor de un bloque de código que te permite controlar el estado de esa característica de forma independiente de la implementación del código. Realmente te ayuda a separar las implementaciones del código del lanzamiento de características, ¿verdad? Y eso es realmente fundamental cuando estás trabajando con organizaciones de productos grandes. Tienes muchos commits que ocurren al mismo tiempo.
Así que veamos algunas de esas ventajas. Desde el punto de vista del desarrollo, te permite hacer commits de código, aunque esté en progreso, porque nunca será visto por un usuario. Así que puedes hacer commits con más frecuencia sin exponer esos cambios a tus usuarios. También permite el desarrollo basado en tronco, siéntanse libres de buscarlo. No tengo tiempo para entrar en eso, pero también es una forma interesante de hacer desarrollo si se encuentran constantemente con muchos conflictos de fusión. También te permite hacer lanzamientos condicionales de características. Puedes lanzar características a un subconjunto de tus usuarios, o puedes hacer pruebas en vivo en producción, por ejemplo, apuntando solo a usuarios beta, o haciendo lanzamientos canarios, o lanzando solo a un pequeño subconjunto de tus usuarios. Realmente no puedes hacer eso sin otros sistemas o codificarlo directamente. Y FeatureFlag hace que eso sea tan fácil y trivial.
Desde una perspectiva de producto, como ingenieros, una de las cosas que sucede es que podemos lanzar una característica y causar un error inesperado. En ese caso, históricamente, tenías que revertir rápidamente tu código, encontrar el error y volver a implementarlo, o volver a una versión anterior y luego implementar esa versión. Y ahora estás esperando a que termine tu canalización de CI/CD. Es un poco estresante esperar un par de minutos mientras todo se ejecuta. Esperemos que sean solo un par de minutos. A veces puede ser mucho, mucho más tiempo. Y luego hay todo tipo de efectos de interacción. Si tu implementación se lanzó con otras características, ahora estás revirtiendo el trabajo de otras personas.
Comments