Quéson los 기능 로고?

11444 단어 reactangularwebdev
현대 프로그램에서 우리는 새로운 기능을 사용하여 응용 프로그램을 실현할 수 있다. 이것은 실행 가능한 도구이다. 이것은 완전한 과정, 완전한 과정, 불완전한 과정, 완전한 과정을 실현할 수 있다.
Supongamos que tenemos una tarea dedicada a construir la base de una página pero el resto de elementos por su completejidad serán implementadas en otra tarea,dejándola asíincompleta para el usuario final.Continuando con las buenas prácticas,nos gustaría agregar el có digoal branch principal("지속 통합"y "지속 배치")?pero que vamos hacer con esta página que est á incompleta?아쿠스 동드 엔트라 엔조이고 로스터 깃발.

🤔 규삼?


Son simples valores booleanos que nos permite utilizar con algún condicial para mostrar o esconder una sección,asíde simple😁.

✏️ ?Cómo los puedo definir?


Algunas de las opciones que me vienen a la mente son:
  • Utilizar un servicio de는 깃발을 특색으로 하고 Ejempo 탄두 열차가 어둠 속에서 작동한다.
  • Utilizar un lenguaje de back-end y crear un servicio,en el que el app pueda consumir y obtener los valores de los flags.(En caso que est é pensando En crear un servicio, existen proyectos 개원 que permiten hacer la administración de flags, solo debemos encargarnos de configurarloy hostearlo, ejempo bullet train es 개원 as íque podemos montar nuestro propio servicio).
  • Utizar archivos locales dentro el app.Estáopción no es recomendable porque cada vez que modifiques el archivo donde definas los flags,tendrás que correr un nuevo build.아스크 필드 디나미스모.
  • 🔨 ?Para quémás lo puedo Utizar?


    Los feature flags también son utilizados en estrategias de A/B testing en el que puedes mostrar cierta functionalidad(feature/característica)A una parte de la población de usuarios y A otra no.Esto es una estrategia de marketing que permite descubrir que es más atractivo/visitado/utilizado por el usuario.

    🤨 제안

  • 독립선언의 목적은 서비스의 유효성을 증명하는 것이다.Esto te ayudaráa ser más ordenado y a ser más escalable.
  • Toma el tiempo de analizar si debes definir un valor inicial a la variable que va almacenar el flag.Generalmente no va ser un problem que el flag pase defalse(valor inicial)atrue(respuesta del servicio)porque independentientemente del tiempo que tome en returnar el servicio,solo se muestra cuando seatruepero no va a pasar lo mismo si definimos comotrueel valor inicial y pasafalse,en esta situación puede llegar a pasar un“flash”en el que se despliega una sección y luego se esconde por el tiempo que toma la respuesta del servicio en volver,introductiondo un comportamiento in sperado en el app.
  • Intenta utilizar pocos flags por página,ente más granular seas,más dependes del servicio.
  • 💡회사 명


    Construiremos una aplicación de Angular con un component toggle,que nos permitirárepresentar el valor definido en Bullet Train(servicio que utilizaremos para definir los flags).
  • Debemos crearnos una cuenta en 탄두 열차, una vez que creamos unenvironmentcopiamosél ID(lo necesitaremos luego), y creamos un flag que se llametoggle_status.
  • Agregamos la librería de Bullet Train que nos facilitaráel trabajo:
  • npm i bullet-train-client --save
  • Definimos un servicio que nos permitir á inicializar 탄두 열차 y obtener los flags.Reemplaza la constanteenvironmentIDcon el ID que copiaste en el paso 1.
  • import { Injectable } from '@angular/core';
    import bulletTrain from 'bullet-train-client';
    
    const environmentID = 'XXXXXXXX';
    
    @Injectable({ providedIn: 'root' })
    export class FeatureFlagService {
    
      public getFlags() {
        return bulletTrain.getAllFlags();
      }
    
    }
    
    export function preloadFlags() {
      return async function() { 
        return bulletTrain.init({
          environmentID
        });
      };
    }
    
  • En este caso,quiero que los valores de los flags se carguen antes de que la aplicación inicie,asíque usaremos el tokenAPP_INITIALIZERpara inyectar los valores En el app,
  • @NgModule({
      imports:      [ BrowserModule, FormsModule ],
      declarations: [ AppComponent, ToggleComponent ],
      bootstrap:    [ AppComponent ],
      providers: [
        {
          provide: APP_INITIALIZER,
          multi: true,
          useFactory: preloadFlags
        }
      ]
    })
    export class AppModule { }
    
    그거 알아요?🔝
  • Estamos utilizando el tokenAPP_INITIALIZERque permite decirle a Angular que ejecute la función factory que definíamos(la cual debe ser una promesa)antes de iniciar.
  • multile indica que se debe agregar este evento junto a otros que hayan sido definidos en alguna otra parte del app.
  • Porúltimo,debemos consumir los valores del servicio y pasárselos al componente toggle
    import { Component } from '@angular/core';
    import { FeatureFlagService } from './feature-flag.service';
    
    @Component({
      selector: 'my-app',
      templateUrl: './app.component.html',
      styleUrls: [ './app.component.css' ]
    })
    export class AppComponent  {
    
      public isActive: boolean;
    
      constructor(private featureFlags: FeatureFlagService ) {
        const { toggle_status } = this.featureFlags.getFlags()
        this.isActive = !!toggle_status.enabled;
      }
    }
    
    <h2>Ejemplo</h2>
    <app-toggle [isActive]="isActive"></app-toggle>
    
    Si marcamos comoenabledel flag en Bullet Train,el componente se mostrarácomo activo desde el inicio del app.


    Puedes Encentar el ejemplo completo acá
    https://stackblitz.com/edit/feature-flags-angular-bullet-train

    👀결론


    Los feature flags es una herramienta poderosa que nos permite poder seguir integrando nuestro código con el de otros y a su vez esconder o mostrar functionalidades al-usuario según la condición que definamos.

    저는 커피를 좋아하지 않는 사람입니까?

    좋은 웹페이지 즐겨찾기