Skip to content

Anti-patroon Preventie Checklist

Gebruik deze checklist om te controleren of je RxJS code anti-patronen bevat. Klik op elk item voor gedetailleerde uitleg en codevoorbeelden.

Checklist Items

🔴 Vermijd Ernstige Problemen

CheckItemPunt
Subject publiceren met asObservable()Exporteer Subject niet direct, maar publiceer als Observable met asObservable()
Statuswijzigingen alleen mogelijk maken via toegewijde methoden
Vermijd geneste subscribeRoep geen andere subscribe aan binnen een subscribe
Maak plat met switchMap, mergeMap, concatMap, etc.
Oneindige streams altijd opzeggenOneindige streams zoals event listeners altijd opzeggen
takeUntil patroon of Subscription beheer
shareReplay instellingen expliciet makenGebruik shareReplay({ bufferSize: 1, refCount: true }) formaat
Activeer reference counting om geheugenlekken te voorkomen
Vermijd if-statement nesting in subscribeVermijd complexe voorwaardelijke vertakkingen binnen subscribe (3 of meer niveaus nesten)
Schrijf declaratief met operators zoals filter, iif, partition

🟡 Vermijd Problemen die Aandacht Vereisen

CheckItemPunt
map is pure functie, bijwerkingen in tapWijzig geen status of log output binnen map
Schei bijwerkingen expliciet af met tap operator
Juiste gebruik van Cold/HotConverteer HTTP requests etc. naar Hot met shareReplay
Bepaal of het bij elke subscribe moet worden uitgevoerd of gedeeld
Converteer Promise met fromMeng Promise en Observable niet
Converteer naar Observable met from() voor uniforme verwerking
Beheers hoogfrequente eventsBeheers zoekinvoer met debounceTime, scrollen met throttleTime
Elimineer duplicaten met distinctUntilChanged

🔵 Verbeter Codekwaliteit

CheckItemPunt
Behandel fouten correctVang fouten op met catchError en behandel ze correct
Toon begrijpelijke foutmeldingen aan gebruikers
Probeer opnieuw met retry / retryWhen indien nodig
Geef DOM events correct vrijZeg subscriptions van fromEvent altijd op
Automatisch opzeggen bij component vernietiging met takeUntil
Zorg voor type-veiligheidDefinieer interfaces of type aliases
Specificeer Observable<T> type parameters
Maak gebruik van TypeScript type inferentie
Selecteer juiste operatorsZoeken: switchMap, parallel: mergeMap
Sequentieel: concatMap, dubbelklik preventie: exhaustMap
Eenvoudige verwerking vereist geen RxJSArray verwerking etc. is voldoende met gewone JavaScript
Gebruik RxJS voor asynchrone verwerking of event streams
Beheer status reactiefBeheer status met BehaviorSubject of scan
Gebruik subscribe als uiteindelijke trigger
Schrijf testsVoer marble tests uit met TestScheduler
Maak asynchrone verwerking synchroon testbaar

Hoe te Gebruiken

1. Bij Code Review

Na het schrijven van nieuwe code, voer een zelf-review uit met deze checklist.

2. Bij Pull Requests

Door deze checklist in het pull request template op te nemen, kunnen reviewers en jij controleren met gemeenschappelijke standaarden.

3. Periodieke Herziening

Gebruik deze checklist periodiek voor je bestaande codebase om te controleren of er geen anti-patronen zijn binnengeslopen.

4. Delen binnen Team

Deel met teamleden en unificeer RxJS best practices.

Gerelateerde Bronnen

Tips voor Checklist Gebruik

  1. Probeer niet alle items tegelijk perfect te maken

    • Behandel eerst de ernstige problemen (🔴)
    • Verbeter stapsgewijs
  2. Bepaal prioriteiten binnen het team

    • Pas het belang aan volgens projectkenmerken
    • Maak een aangepaste checklist
  3. Overweeg automatisering

    • Automatische controle met statische analysetools zoals ESLint
    • Integreer in CI/CD pipeline
  4. Update regelmatig

    • Update volgens RxJS versie-upgrades
    • Reflecteer inzichten verkregen uit teamervaring

Belangrijk: Deze checklist is niet bedoeld om perfecte code te schrijven, maar als gids om veelvoorkomende problemen te vermijden. Gebruik flexibel volgens de context van je project.

Uitgebracht onder de CC-BY-4.0 licentie.