SlideShare ist ein Scribd-Unternehmen logo
1 von 54
Downloaden Sie, um offline zu lesen
Jak poskromić feature
flags w projekcie
Aleksander Patschek
Aleksander Patschek
🧑‍💻 Senior Frontend Developer w The
Software House
✒️Bloguję na fsgeek.pl
📰 Tworzę newsletter webdevnews.pl
Agenda
Co to są Feature Flags?
Zalety korzystania
Wady i pułapki
Dobre praktyki
Podsumowanie i Q&A
Co to są feature flags?
Flaga
Kod A Kod B
Flaga
Kod A Kod B
Zewnętrzny
serwis
If's as a Service
Zalety flag
Wypuść teraz,
aktywuj potem
https://www.atlassian.com/pl/git/tutorials/comparing-workflows/gitflow-workflow
https://www.optimizely.com/optimization-glossary/trunk-based-development/
synchronizować feature
brancha z main
Konflikty w kodzie
i duże PR
Nowa funkcjonalność jest
zawsze zsynchronizowana
z innymi zmianami
Łatwiejsze zmiany w całej aplikacji
np.: aktualizacja bibliotek
Przycisk bezpieczeństwa
Godziny
Minuty
Warunkowy dostęp
Kiedy możemy potrzebować warunkowego
dostępu?
Zdalna konfiguracja
Canary Deployment
https://www.snapt.net/blog/load-balancing-for-blue-green-rolling-and-canary-deployment
Registration
process
20%
80%
Testy A/B
Problemy jakie mogą
powodować flagi
Uzależniają
Wprowadzają dług
techniczny
Wprowadzają dług
techniczny
(i to spory)
Błędy i ślepe zaułki
Ciężkie do testów
Dobre praktyki
There are only two hard
things in Computer Science:
cache invalidation and
naming things.
hideFeatureA
showFeatureB
nazwa zespołu
środowisko
czas życia
platforma
Opisuj flagi
Nazwa flagi
Odpowiedzialny
zespół
Zadanie
w Jira
Spodziewany
czas życia
Inne notatki
Rób audyt
Czy są dobrze
opisane?
Czy każda
flaga jest obecna?
Czy potrzebujesz
każdą flagę?
Co możesz
usunąć?
Usuwaj
niepotrzebne flagi
Zainwestuj
w logowanie informacji
Naucz się odmawiać
Co warto zapamiętać po
dzisiejszej prezentacji?
Zalety flag
✅ Wypuść teraz, aktywuj później
✅ Przycisk bezpieczeństwa
✅ Dostęp warunkowy
✅ Zdalna konfiguracja
✅ Canary deployments
✅ Testy A/B
Wady flag
❌ Uzależniające
❌ Wprowadzają dług techniczny
❌ Błędy i ślepe zaułki
❌ Ciężkie do testów i debugowania
Dobre praktyki
✅ Zainwestuj w dobre nazwy
✅ Nie używaj hide/disable
✅ Stwórz konwencje do nazywania
✅ Opisuj flagi
✅ Rób regularne audyty
✅ Naucz się odmawiać
Pytania?
@fsgeek
aleksanderpatschek
kontakt@fsgeek.pl
tsh.io/programowanko

Weitere ähnliche Inhalte

Ähnlich wie Feature flags na ratunek projektu w JavaScript

Visual Studio – jak zorganizować pracę używając Scrum i GIT?
Visual Studio – jak zorganizować pracę używając Scrum i GIT?Visual Studio – jak zorganizować pracę używając Scrum i GIT?
Visual Studio – jak zorganizować pracę używając Scrum i GIT?Tomasz Kopacz
 
Activiti - BPMN 2.0 nadchodzi
Activiti - BPMN 2.0 nadchodziActiviti - BPMN 2.0 nadchodzi
Activiti - BPMN 2.0 nadchodziMaciek Próchniak
 
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side development
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side developmentTomasz Głogosz: SharePoint Framework - nowa jakość w client-side development
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side developmentSharePoint Saturday Warsaw
 
Piotr Grabski-Gradziński (VML) - To jak zrobimy ten projekt? Czyli o doborze ...
Piotr Grabski-Gradziński (VML) - To jak zrobimy ten projekt? Czyli o doborze ...Piotr Grabski-Gradziński (VML) - To jak zrobimy ten projekt? Czyli o doborze ...
Piotr Grabski-Gradziński (VML) - To jak zrobimy ten projekt? Czyli o doborze ...Business Link Krakow
 
HYC - Angular stań się kanciastym
HYC - Angular stań się kanciastymHYC - Angular stań się kanciastym
HYC - Angular stań się kanciastymDariusz Jagieło
 
To jak zrobimy ten projekt? Czyli o doborze technologii słów kilka.
To jak zrobimy ten projekt? Czyli o doborze technologii słów kilka. To jak zrobimy ten projekt? Czyli o doborze technologii słów kilka.
To jak zrobimy ten projekt? Czyli o doborze technologii słów kilka. Piotr Grabski-Gradziński
 
Co Ty wiesz o Magento?
Co Ty wiesz o Magento?Co Ty wiesz o Magento?
Co Ty wiesz o Magento?White Ducky
 
Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?tkryskiewicz
 
Windows 8 potyczki z kodem - Poznańska Grupa Zawodowa .NET
Windows 8 potyczki z kodem - Poznańska Grupa Zawodowa .NETWindows 8 potyczki z kodem - Poznańska Grupa Zawodowa .NET
Windows 8 potyczki z kodem - Poznańska Grupa Zawodowa .NETWhalla Labs
 
Serverless w Azure, czyli Azure Functions
Serverless w Azure, czyli Azure FunctionsServerless w Azure, czyli Azure Functions
Serverless w Azure, czyli Azure FunctionsLukasz Kaluzny
 
OSGi, deklaratywnie
OSGi, deklaratywnieOSGi, deklaratywnie
OSGi, deklaratywnieCode-House
 
Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...
Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...
Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...Wojciech Sznapka
 
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...Michal Furmankiewicz
 
Extjs & netzke
Extjs & netzkeExtjs & netzke
Extjs & netzkeGaldoMedia
 
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014Grzegorz Bartman
 

Ähnlich wie Feature flags na ratunek projektu w JavaScript (20)

Visual Studio – jak zorganizować pracę używając Scrum i GIT?
Visual Studio – jak zorganizować pracę używając Scrum i GIT?Visual Studio – jak zorganizować pracę używając Scrum i GIT?
Visual Studio – jak zorganizować pracę używając Scrum i GIT?
 
Activiti - BPMN 2.0 nadchodzi
Activiti - BPMN 2.0 nadchodziActiviti - BPMN 2.0 nadchodzi
Activiti - BPMN 2.0 nadchodzi
 
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side development
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side developmentTomasz Głogosz: SharePoint Framework - nowa jakość w client-side development
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side development
 
User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14
User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14
User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14
 
Piotr Grabski-Gradziński (VML) - To jak zrobimy ten projekt? Czyli o doborze ...
Piotr Grabski-Gradziński (VML) - To jak zrobimy ten projekt? Czyli o doborze ...Piotr Grabski-Gradziński (VML) - To jak zrobimy ten projekt? Czyli o doborze ...
Piotr Grabski-Gradziński (VML) - To jak zrobimy ten projekt? Czyli o doborze ...
 
HYC - Angular stań się kanciastym
HYC - Angular stań się kanciastymHYC - Angular stań się kanciastym
HYC - Angular stań się kanciastym
 
To jak zrobimy ten projekt? Czyli o doborze technologii słów kilka.
To jak zrobimy ten projekt? Czyli o doborze technologii słów kilka. To jak zrobimy ten projekt? Czyli o doborze technologii słów kilka.
To jak zrobimy ten projekt? Czyli o doborze technologii słów kilka.
 
React Native by Artur Staszczyk
React Native by Artur StaszczykReact Native by Artur Staszczyk
React Native by Artur Staszczyk
 
Co Ty wiesz o Magento?
Co Ty wiesz o Magento?Co Ty wiesz o Magento?
Co Ty wiesz o Magento?
 
Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?
 
Windows 8 potyczki z kodem - Poznańska Grupa Zawodowa .NET
Windows 8 potyczki z kodem - Poznańska Grupa Zawodowa .NETWindows 8 potyczki z kodem - Poznańska Grupa Zawodowa .NET
Windows 8 potyczki z kodem - Poznańska Grupa Zawodowa .NET
 
Serverless w Azure, czyli Azure Functions
Serverless w Azure, czyli Azure FunctionsServerless w Azure, czyli Azure Functions
Serverless w Azure, czyli Azure Functions
 
WF w zastosowaniach Web
WF w zastosowaniach WebWF w zastosowaniach Web
WF w zastosowaniach Web
 
OSGi, deklaratywnie
OSGi, deklaratywnieOSGi, deklaratywnie
OSGi, deklaratywnie
 
Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...
Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...
Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...
 
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
 
Extjs & netzke
Extjs & netzkeExtjs & netzke
Extjs & netzke
 
Praktyki techniczne
Praktyki technicznePraktyki techniczne
Praktyki techniczne
 
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 

Mehr von The Software House

Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...
Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...
Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...The Software House
 
Jak efektywnie podejść do certyfikacji w AWS?
Jak efektywnie podejść do certyfikacji w AWS?Jak efektywnie podejść do certyfikacji w AWS?
Jak efektywnie podejść do certyfikacji w AWS?The Software House
 
O co chodzi z tą dostępnością cyfrową?
O co chodzi z tą dostępnością cyfrową?O co chodzi z tą dostępnością cyfrową?
O co chodzi z tą dostępnością cyfrową?The Software House
 
Chat tekstowy z użyciem Amazon Chime
Chat tekstowy z użyciem Amazon ChimeChat tekstowy z użyciem Amazon Chime
Chat tekstowy z użyciem Amazon ChimeThe Software House
 
Jak nie zwariować z architekturą Serverless?
Jak nie zwariować z architekturą Serverless?Jak nie zwariować z architekturą Serverless?
Jak nie zwariować z architekturą Serverless?The Software House
 
Analiza semantyczna artykułów prasowych w 5 sprintów z użyciem AWS
Analiza semantyczna artykułów prasowych w 5 sprintów z użyciem AWSAnaliza semantyczna artykułów prasowych w 5 sprintów z użyciem AWS
Analiza semantyczna artykułów prasowych w 5 sprintów z użyciem AWSThe Software House
 
Typowanie nominalne w TypeScript
Typowanie nominalne w TypeScriptTypowanie nominalne w TypeScript
Typowanie nominalne w TypeScriptThe Software House
 
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQL
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQLAutomatyzacja tworzenia frontendu z wykorzystaniem GraphQL
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQLThe Software House
 
Serverless Compose vs hurtownia danych
Serverless Compose vs hurtownia danychServerless Compose vs hurtownia danych
Serverless Compose vs hurtownia danychThe Software House
 
Testy API: połączenie z bazą danych czy implementacja w pamięci
Testy API: połączenie z bazą danych czy implementacja w pamięciTesty API: połączenie z bazą danych czy implementacja w pamięci
Testy API: połączenie z bazą danych czy implementacja w pamięciThe Software House
 
Jak skutecznie read model. Case study
Jak skutecznie read model. Case studyJak skutecznie read model. Case study
Jak skutecznie read model. Case studyThe Software House
 
Firestore czyli ognista baza od giganta z Doliny Krzemowej
Firestore czyli ognista baza od giganta z Doliny KrzemowejFirestore czyli ognista baza od giganta z Doliny Krzemowej
Firestore czyli ognista baza od giganta z Doliny KrzemowejThe Software House
 
Jak utrzymać stado Lambd w ryzach
Jak utrzymać stado Lambd w ryzachJak utrzymać stado Lambd w ryzach
Jak utrzymać stado Lambd w ryzachThe Software House
 
O łączeniu Storyblok i Next.js
O łączeniu Storyblok i Next.jsO łączeniu Storyblok i Next.js
O łączeniu Storyblok i Next.jsThe Software House
 
Amazon Step Functions. Sposób na implementację procesów w chmurze
Amazon Step Functions. Sposób na implementację procesów w chmurzeAmazon Step Functions. Sposób na implementację procesów w chmurze
Amazon Step Functions. Sposób na implementację procesów w chmurzeThe Software House
 
Co QA może i czego nie powinien się bać?
Co QA może i czego nie powinien się bać?Co QA może i czego nie powinien się bać?
Co QA może i czego nie powinien się bać?The Software House
 
Zmigrujmy 30 tys. użytkowników ze starego systemu. Co może pójść nie tak?
Zmigrujmy 30 tys. użytkowników ze starego systemu. Co może pójść nie tak?Zmigrujmy 30 tys. użytkowników ze starego systemu. Co może pójść nie tak?
Zmigrujmy 30 tys. użytkowników ze starego systemu. Co może pójść nie tak?The Software House
 

Mehr von The Software House (20)

Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...
Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...
Jak kraść miliony, czyli o błędach bezpieczeństwa, które mogą spotkać również...
 
Uszanowanko Podsumowanko
Uszanowanko PodsumowankoUszanowanko Podsumowanko
Uszanowanko Podsumowanko
 
Jak efektywnie podejść do certyfikacji w AWS?
Jak efektywnie podejść do certyfikacji w AWS?Jak efektywnie podejść do certyfikacji w AWS?
Jak efektywnie podejść do certyfikacji w AWS?
 
O co chodzi z tą dostępnością cyfrową?
O co chodzi z tą dostępnością cyfrową?O co chodzi z tą dostępnością cyfrową?
O co chodzi z tą dostępnością cyfrową?
 
Chat tekstowy z użyciem Amazon Chime
Chat tekstowy z użyciem Amazon ChimeChat tekstowy z użyciem Amazon Chime
Chat tekstowy z użyciem Amazon Chime
 
Migracje danych serverless
Migracje danych serverlessMigracje danych serverless
Migracje danych serverless
 
Jak nie zwariować z architekturą Serverless?
Jak nie zwariować z architekturą Serverless?Jak nie zwariować z architekturą Serverless?
Jak nie zwariować z architekturą Serverless?
 
Analiza semantyczna artykułów prasowych w 5 sprintów z użyciem AWS
Analiza semantyczna artykułów prasowych w 5 sprintów z użyciem AWSAnaliza semantyczna artykułów prasowych w 5 sprintów z użyciem AWS
Analiza semantyczna artykułów prasowych w 5 sprintów z użyciem AWS
 
Typowanie nominalne w TypeScript
Typowanie nominalne w TypeScriptTypowanie nominalne w TypeScript
Typowanie nominalne w TypeScript
 
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQL
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQLAutomatyzacja tworzenia frontendu z wykorzystaniem GraphQL
Automatyzacja tworzenia frontendu z wykorzystaniem GraphQL
 
Serverless Compose vs hurtownia danych
Serverless Compose vs hurtownia danychServerless Compose vs hurtownia danych
Serverless Compose vs hurtownia danych
 
Testy API: połączenie z bazą danych czy implementacja w pamięci
Testy API: połączenie z bazą danych czy implementacja w pamięciTesty API: połączenie z bazą danych czy implementacja w pamięci
Testy API: połączenie z bazą danych czy implementacja w pamięci
 
Jak skutecznie read model. Case study
Jak skutecznie read model. Case studyJak skutecznie read model. Case study
Jak skutecznie read model. Case study
 
Firestore czyli ognista baza od giganta z Doliny Krzemowej
Firestore czyli ognista baza od giganta z Doliny KrzemowejFirestore czyli ognista baza od giganta z Doliny Krzemowej
Firestore czyli ognista baza od giganta z Doliny Krzemowej
 
Jak utrzymać stado Lambd w ryzach
Jak utrzymać stado Lambd w ryzachJak utrzymać stado Lambd w ryzach
Jak utrzymać stado Lambd w ryzach
 
Jak poskromić AWS?
Jak poskromić AWS?Jak poskromić AWS?
Jak poskromić AWS?
 
O łączeniu Storyblok i Next.js
O łączeniu Storyblok i Next.jsO łączeniu Storyblok i Next.js
O łączeniu Storyblok i Next.js
 
Amazon Step Functions. Sposób na implementację procesów w chmurze
Amazon Step Functions. Sposób na implementację procesów w chmurzeAmazon Step Functions. Sposób na implementację procesów w chmurze
Amazon Step Functions. Sposób na implementację procesów w chmurze
 
Co QA może i czego nie powinien się bać?
Co QA może i czego nie powinien się bać?Co QA może i czego nie powinien się bać?
Co QA może i czego nie powinien się bać?
 
Zmigrujmy 30 tys. użytkowników ze starego systemu. Co może pójść nie tak?
Zmigrujmy 30 tys. użytkowników ze starego systemu. Co może pójść nie tak?Zmigrujmy 30 tys. użytkowników ze starego systemu. Co może pójść nie tak?
Zmigrujmy 30 tys. użytkowników ze starego systemu. Co może pójść nie tak?
 

Feature flags na ratunek projektu w JavaScript