Press "Enter" to skip to content

Implementing LaunchDarkly – #2 LaunchDarkly Feature Flags


Ho obiezioni a questo tutto bene così
in questa configurazione il modo in cui lo facciamo qui noi
stiamo accoppiando il roll out e l’implementazione
insieme quindi l’unico modo per noi di rotolare
una caratteristica è di fare un cambiamento e
distribuirlo un beneficio di questo è che
è molto molto semplice
tuttavia ci sono due problemi con
avendo questo accoppiamento questo duro accoppiamento
tra schieramento e robot
il primo è la sincronizzazione della squadra
e questo è qualcosa che accade solo
una volta che hai lavorato in più team
il tuo prodotto quindi diciamo che nel frattempo
lo stai facendo come se fossi un cambiamento
vuoi cambiare l’ordinamento predefinito
ordine c’è anche un’altra squadra
lavorando su di te sai qualunque cosa e loro
sono come quello è un bel c’è caratteristica
è abbastanza grande, ne fa un bel po ‘
cose e sono nel mezzo del
processo di sviluppo e vogliono
saranno pronti la prossima settimana
o come venerdì e sono come
un mucchio di roba sul master che loro non fanno
non sono ancora pronti per il rilascio ma
la tua cosa che si desidera ottenere quello fuori
ora, ma a causa del fatto che l’unico
il modo in cui puoi eseguire il roll out delle funzionalità è
spiegando significa che la loro cosa è
verrà distribuito se lo si distribuisce
questo significa che dal momento che questi sono accoppiati
significa che sei molto duro molto
molto legato alle altre squadre che significa
che stai per essere al fine di
tira quando vuoi rotolare le cose
fuori devi parlare con altre squadre
che potrebbe andar bene se ne hai uno
altra squadra anche se potrebbero ritardare
ti piace che non parli ancora molto
ma se ti piacciono dieci squadre questo è questo
l’accoppiamento diventa molto rapidamente
incredibilmente difficile da gestire, ma quello è
se hai la sincronizzazione della squadra
succede davvero solo come una volta la tua squadra
diventa più grande l’altro Pro
non succede sempre e questo è doppio
rischio quindi supponiamo che entrambe queste cose siano nostre
la distribuzione rischiosa è rischiosa molte cose
può andare storto nella distribuzione
soprattutto se hai qualche manuale
passi nella tua distribuzione come se fosse
non è qualcosa che vuoi fare
Venerdì sera come prima di partire
per il fine settimana ci sono cose
quello può andare storto ora la stessa cosa
la stessa cosa vale per il lancio come si può
potrebbe essere che hai un bug nel tuo nuovo
funzionalità e si rompe per alcuni utenti e
fondamentalmente vuoi tenere d’occhio e
dove questa cosa è successo come potresti
ho appena fatto un sacco di cose
che puoi sopportare un sacco di errori
avresti potuto farlo da quando entrambi
queste cose sono rischiose che tu davvero non lo fai
voglio doverli fare allo stesso modo
tempo quindi un vantaggio enorme con funzionalità
Le bandiere sono che possiamo disaccoppiare questi due
in modo che possiamo nascondere la nostra prima caratteristica dietro
un flag di funzionalità quindi distribuirlo e una volta
la distribuzione è a posto , possiamo iniziare a rotolare
il film è tutto a posto quindi andiamo
attuare questo usando magra genericamente
bel cane Luca che fai e ti lunge no
per favore Oh clicker qui per iniziare la prova
ah inizia il tutorial brillante, facciamolo
creare un flag di funzionalità per il quale abbiamo bisogno di un nome
questa bandiera caratteristica che è come il
oltre il nome della funzionalità noi
stanno testando e stanno uscendo, quindi facciamolo
chiama la sequenza di ordinamento predefinita delle playlist
viene aggiunto che è molto lungo
imposta la tua applicazione
no js ‘ non è corretto javascript è giusto
chiamata file di credito bla accanto all’HTML
dopo ho avuto la seguente testa per il
testa e ciò che non è il 1994 non lo facciamo
usa i tag script qual è la chiamata
Elly client vogliamo usare NPM e web
pacchetto e roba si caricano tutto bene
dov’è dove è dove è?
dove si trova lì cliente LD Jess Grazie
va bene NPM I L declino installazione del torace
vediamo i client LD del codice codice
e inizializzare questo vogliamo questo su
componente dead mount suppongo facciamolo
che mmm cliente sì Ella che è
probabilmente quello che stiamo ricevendo da NPM
copia del pacchetto che incolla questo qui blah
bla bla bla bla bla bla là e
questo è il tuo signore, penso che questo
questo deve essere un oggetto con una chiave così
siamo solo tipo di ID utente come noi
usalo più tardi per poterlo fare
usa l’utente specifico che vogliamo io
penso che ci toccheremo un po ‘
che in seguito ma per ora abbiamo solo andando
codice rigido questo abc123 che è il loro utente
ID questo è il nostro ID cliente e e e e
con il primo cliente a guardarlo
penso che abbiamo bisogno di ascoltare il pronto
Evento quindi facciamolo così bene al cliente
pronto lo faremo
lungo buio essere pronto Darlie pronto porta
fai clic su Dalai Lama con freddezza
pronto e probabilmente abbiamo bisogno di legarlo
perché le classi sono cose orribili
è per chiarire che e ci andiamo e
abbiamo anche bisogno di averne bisogno
accessibile in classe mmm come pensare
questo è come lo fai
variazione e poi prendiamo l’ID che
abbiamo creato prima cosa abbiamo creato
come si chiama questo è quello che è
chiamato questo tira la variazione da quello
per ora ho solo console.log questo
Ciao ciao ho la variazione vedere dove
erano a
sì ho capito che non abbiamo implementato
ascoltando gli eventi della playlist evoluta
aggiunto nell’ambiente di produzione quindi
pensa che tu voglia che io corra davvero
questo e dobbiamo cominciare Start Start
queste trame iniziano solo a parlare solo
appena iniziato a iniziare per iniziare è
iniziando stiamo aspettando che accenda
andiamo, andiamo, boom ok, tutto è rotto
ora il client non è definito mmm no
questo perché ho la nostra proprietà
sulla classe oh, dai, dai
solo un avvertimento non ci interessa
ciao ho la variazione sulla dannata trovata
perché è fatto bene , ha funzionato
nella cosa però ha funzionato tutto
fantastico ricevi l’affitto dalla tua
bandiera ma perché è indefinito mi mancava
il tuo cruscotto clicca fammi trovare questo
cosa fa sembrare bugiardo?
il targeting per iniziare il surf lo cade
dovrebbe servire false ho capito che questo
dovrebbe essere falso fammi provare a farlo
diventa tardivo Oh accendi questo è bello
lascia un commento opzionale ma la cosa
è come se il lancio direttamente me lo dicesse
loro non spingeranno per come sono
non proprio in competizione con altre funzionalità
sistemi di segnalazione è il loro grande concorrente
persone che cercano di costruire la propria funzione
sistemi di segnalazione che è quello che abbiamo costruito
a Spotify ci sono voluti due anni
questo ridicolo ed era come una squadra
costruendo si scopre che anche se
i sistemi di flagging delle feature sono molto semplici
nel suo essenziale è fondamentalmente solo un
un piccolo database e poi l’archiviazione
cose lì e sei in grado di ottenere
cose dal database ma c’è un
molti di nuovi ad esso
come questo si scopre che tu vuoi
sapere quando qualcuno ha girato a
caratteristica bandiera su e spegnerlo è sorta
di voler vedere la storia delle cose che
tipo di voler sapere se un flag di funzionalità
viene ancora utilizzato dal codice tutto
tipi di piccole cose quindi è come un
molto semplice problema essenziale e
solo la puf esplode di poco
cose che vuoi che il sistema faccia
L’ho acceso inizialmente nell’iniziale a
pochi motivi po ‘mi sentivo come in su
accendendolo, ok, vado a rinfrescare
l’app reagisce vedere se otteniamo qualcosa ciao
Ho una variazione in caso di maledizione
i flag di funzionalità Dannit Dannit Dammit devono
essere contrassegnato disponibile per il lato client
SDK quindi la pagina delle impostazioni di riproduzione delle funzioni
ah ah ah ah ah ah ah ah
lalala rende questa bandiera disponibile per
cliente come esca
ci andiamo salvare le impostazioni trovato fresco
ciao ho avuto la variazione vero oh quello era
cacchio di cane ha molto senso
non è il default, suppongo perché
non lo fai lontano da tutti i tuoi
feature flags è qualcosa che tu
voglio mettere a disposizione dei nostri clienti
hai anche un sacco di problemi
Spotify dove le persone amano analizzare il
il codice e le flag di funzionalità trovate che
non dovevano trovare e cose simili
che come suggerimenti di caratteristiche che lo farebbero
srotolare o forse non srotolare mai così
sì, il sensore mix-a-lot è il default
ma un po ‘ una trappola complicata che è
quello che sto cercando in entrambi i casi una volta noi
ho questo volare questa bandiera che voglio impostare
questo allo stato ti piace così
i migliori stati impostati e i flag di funzionalità e
vogliamo impostare ciò che separa qualsiasi cosa
e vogliamo fare questo ordinamento predefinito
la cosa è stata aggiunta, va bene, qui
e mettilo lì ora dovrebbe caricare il file
le bandiere e lo controllerò
l’app reagisce per verificare questo sì
le impostazioni predefinite su Sì sono vere
bene adesso dobbiamo usare questo modo
prima di tutto voglio se la funzione
le bandiere non sono ancora caricate, voglio
mostra una finestra di caricamento simile a a
cosa comune in cui ti imbatti quando
inizia a implementare la funzione segnala a te
scoprire che hmm va bene le cose che siamo
sincrono non sono più sincroni
c’è una configurazione che deve essere
caricato prima che la mia app sia caricata e
va bene, è solo un modo di cui abbiamo bisogno
fare come si può fare un sacco di figo
cose con avvio di avviamento come
avvia queste cose nell’app per
rendere le cose caricate più velocemente ma per ora
vorremmo tenerli sincroni
né parlare è molto molto veloce e comunque
come se diciamo che lo sei
caricando le tue canzoni in modo sincrono
probabilmente ci vorrà più tempo comunque
fermare il boom
se questo punto indica un flag di funzionalità blurbs
se loro non lo sono, siamo solo noi
andando
restituiscilo qui e chiamalo caricamento
restituire tutto a posto adesso, ordinando correttamente
qui mmm questo è un po ‘ complicato perché no
più a lungo riflette è un
semplificazione eccessiva della realtà perché
ordinamento è un po ‘come ora, invece
di essere uno stato ora è qualcosa che
è dedotto da in parte il selezionato
ordinamento nell’interfaccia e anche il
ordinamento predefinito che potrebbe anche avere
stato caricato o non ancora così, lo farò
cambia questa cosa per essere selezionato e
ordina anche l’ordinamento selezionato
qui ora quando è selezionato non c’è
qualcosa come l’ordinamento selezionato o essere
null che è ciò che abbiamo usato in precedenza
per la cernita naturale ora scriverò
naturale qui altrimenti le cose otterranno
pazzo così così così così questo va bene mmm
questo è un po ‘disordinato andiamo solo
inizia qui
quindi se i flag di funzionalità del punto di stato
l’ordinamento predefinito di punti viene aggiunto se questo è
vero, allora siamo di controllo andando se abbiamo un
ordinamento selezionato o se non si dispone di un
ordine selezionato ora diventa questo
strano selezionare il tipo o è ciò che noi
controlla prima quindi se hai selezionato
ordinamento quindi tutto va bene siamo solo
intenzione di fare questo penso che siamo solo andando
fare questo penso che dobbiamo anche fare
scegli qui una variabile, quindi se abbiamo un
se è presente un ordinamento selezionato, se
l’utente ha cliccato su questo e se questo è
aggiunto allora faremo il suo più recente
altrimenti faremo un selezionatore
essendo indefinito penso che questo
l’ espressione ternaria è onestamente un po ‘
difficile da leggere penso che sia meglio
per usare solo un’istruzione if se così
seleziona ordine aggiunge poi un SORTER
assegnare sorter per essere il più nuovo se
questo ordine di ordinamento statale è naturale
quindi assegneremo il sorter a essere
questo è indefinito molto più lungo ma io
pensa che solo se le dichiarazioni sono molto
semplice e facile da seguire ea volte
è solo a mio parere meglio solo
espandi koteas essere molto semplice e molto
chiaro tutto bene però se non abbiamo
un ordinamento selezionato poi andremo
ricadere ai valori predefiniti
e il valore predefinito dipende dalla funzione
contrassegna quindi se questo puntatore di funzione caratteristica del punto
punto no scusa questa caratteristica del punto di stato
contrassegna e quindi seleziona l’ordinamento predefinito
là fuori quindi ci accingiamo a utilizzare
il selezionatore sarà il suo più nuovo
altrimenti sarà indefinito
che non è affatto del tutto quaggiù
stiamo determinando lo stato in base a
l’ ordinamento selezionato che come noi
parlato prima di così è il
quello era in precedenza un ordinamento che era
come una visione troppo semplicistica della realtà giusta
ora vogliamo fare il confronto reale
quale negozio che stiamo usando quindi se il
il selezionatore è in prima fila, quindi stiamo andando
usare bold o e se il sorter è
il più recente è sorter poi andremo a
essere vogliamo grassetto questo vediamo
se questo funziona probabilmente non porta
segno inaspettato questo prima di tutto
questo dovrebbe essere lasciato andare bene, è stato bello
va bene adesso penso che tutto
sta lavorando come previsto onestamente così qui
come vedi ora naturale non è più il
di default quindi se mi aggiorno abbiamo tempo come
di default così e posso ancora cambiare
ora torniamo al lancio
direttamente e andare alle bandiere future e
[Musica]
la regola predefinita qui è ora vera ma così il
la funzione è stata lanciata e lasciami fare
tiralo indietro di nuovo
chi è tornato in me ha salvato un cambiamento
qui e ora facciamo il refresh e ora lo siamo
torna all’ordinamento naturale come predefinito così
notare ora che se questa applicazione ha avuto
stato schierato dal vivo sarei stato in grado di
tira il rotolo fuori la caratteristica e dentro a
sarà così distribuito e distribuito
ora è stato disgiunto e questo è buono
perché ci consente di gestire i rischi
di entrambi questi separatamente è anche
buono perché permette anche il
proprietario del prodotto per eseguire il roll out
separatamente dalle altre squadre perché
questi non sono più una coppia come noi
non è più tutto legato a questo
cosa di distribuzione soprattutto possiamo tutti
distribuire in master e una volta che siamo pronti
possiamo fare il roll out come l’esatto
minuto che vogliamo e in realtà anche
riduce il rischio in un altro modo che ci consente
a se abbiamo qualche errore nella nostra funzione
siamo in grado di rotolare indietro in appena un
pochi secondi invece di dover fare a
completa ridistribuzione o sovrapposizione di
Gesù posso parlare oggi di spiegamento di
la nostra app va bene, ma abbiamo ancora un problema
Qui
un enorme rischio
Please follow and like us: