Maak een uitgebreide checklist voor codebeoordeling met Amazon CodeWhisperer
description
Door deze checklist te gebruiken, kan ik ervoor zorgen dat de codekwaliteit van mijn team consequent hoog is, potentiële problemen vroegtijdig identificeren en naleving van coderingsnormen bevorderen, wat leidt tot beter onderhoudbare software.
prompt
try_prompt
Help me een grondige checklist voor codebeoordeling te ontwerpen die is afgestemd op mijn project en die best practices en veelvoorkomende valkuilen bevat. Projectnaam: {{project_naam}}. Belangrijke aand ... more
generate_helper
...
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een uitgebreide checklist voor codebeoordeling, afgestemd op jouw e-commerce platform en gebaseerd op de Airbnb JavaScript Style Guide, met aandacht voor code-efficiëntie, best practices, veelvoorkomende valkuilen en suggesties voor kwaliteitsverbetering en onderhoudbaarheid:
**1. Algemene Richtlijnen**
- [ ] Is de code consistent volgens de Airbnb JavaScript Style Guide (gebruik van indentatie, spaties, komma’s, etc.)?
- [ ] Zijn er duidelijke en informatieve naamgevingen voor variabelen, functies, componenten en bestanden?
- [ ] Worden functies en componenten op een modulaire en herbruikbare wijze geschreven?
- [ ] Is de code goed gestructureerd en logisch georganiseerd?
**2. Efficiëntie en Prestatie**
- [ ] Worden loops en iteraties optimaal gebruikt (bijvoorbeeld vermijden van onnodige herhaalde bewerkingen)?
- [ ] Worden asynchrone operaties correct gebruikt en afgehandeld (async/await, Promises)?
- [ ] Zijn er onnodige DOM-manipulaties of API-aanroepen die kunnen worden geoptimaliseerd?
- [ ] Wordt caching gebruikt waar mogelijk om herhaalde berekeningen of data-ophalen te verminderen?
- [ ] Wordt gebruikgemaakt van efficiënte datastructuren (bijvoorbeeld Sets, Maps) voor snelle lookups?
**3. Codekwaliteit en Leesbaarheid**
- [ ] Is de code begrijpelijk zonder uitgebreide documentatie (bijvoorbeeld door duidelijke functies en variabelen)?
- [ ] Worden functies klein gehouden (Single Responsibility Principle)?
- [ ] Zijn er overbodige of dubbele codefragmenten?
- [ ] Worden constante waarden en configuraties op een centrale plek beheerd?
- [ ] Worden er duidelijke comments gebruikt waar de logica complex is, maar niet vanzelfsprekend?
**4. Coderingsnormen (Airbnb Style Guide)**
- [ ] Is de code conform de indentation (2 spaces)?
- [ ] Worden haakjes en spaties correct gebruikt volgens de gids?
- [ ] Zijn functies en variabelen correct benoemd volgens de conventies?
- [ ] Wordt gebruik gemaakt van ES6+ features zoals destructuring, arrow functions, template literals?
- [ ] Zijn er geen console.log of debug-statements in productiecode?
- [ ] Worden imports en exports correct en overzichtelijk gebruikt?
**5. Error Handling en Robustheid**
- [ ] Worden fouten correct afgehandeld (try/catch, error callbacks)?
- [ ] Is de gebruiker niet blootgesteld aan technische fouten; worden gebruikersvriendelijke foutmeldingen gebruikt?
- [ ] Zijn API-responses gecontroleerd op validiteit voordat ze worden gebruikt?
**6. Veiligheid**
- [ ] Worden user input en data sanitization toegepast om beveiligingsrisico’s te verminderen?
- [ ] Wordt er aandacht besteed aan beveiliging van betalingsgegevens en persoonlijke informatie?
**7. Onderhoudbaarheid en Testbaarheid**
- [ ] Is de code testbaar (bijvoorbeeld door losse functies en componenten)?
- [ ] Zijn er unit- en integratietests geschreven voor kritieke functionaliteiten?
- [ ] Worden codegebaseerde documentaties en commentaren onderhouden?
- [ ] Worden dependencies up-to-date gehouden?
**8. Veelvoorkomende Valkuilen**
- [ ] Vermijden van grote en complexe functies; refactor zo nodig.
- [ ] Geen hardcoded data; gebruik configuratiebestanden of environment variables.
- [ ] Voorkom duplicatie van code door herbruikbare componenten of functies.
- [ ] Vermijd inline styling of scripts; scheid presentatie en logica.
**9. Suggesties voor Verbetering en Onderhoudbaarheid**
- [ ] Gebruik linters en formatteringshulpmiddelen (bijv. ESLint met Airbnb-configuratie) voor consistente code.
- [ ] Implementeer code reviews met checklist en peer feedback.
- [ ] Documenteer belangrijke ontwerpkeuzes en architectuur.
- [ ] Stel automatische tests en Continuous Integration (CI) in voor regelmatige kwaliteitscontrole.
- [ ] Evalueer regelmatig code en refactor waar nodig om technische schulden te verminderen.
**10. Beoordelingsproces**
- [ ] Plan periodieke codebeoordelingen met focus op nieuwe features en refactoring.
- [ ] Gebruik statische code-analysetools voor automatische controle.
- [ ] Verzamel feedback van ontwikkelaars en gebruikers om verbeterpunten te identificeren.
---
**Extra Tips:**
- Maak gebruik van code review checklists en check-in sessies.
- Documenteer best practices en richtlijnen specifiek voor jouw project op een centrale plek.
- Stimuleer een cultuur van continue verbetering en kennisdeling.
Hopelijk helpt deze checklist je om je codekwaliteit te waarborgen en je e-commerce platform efficiënt en onderhoudbaar te houden!
provider: deepseek
model: deepseek-chat
Zeker, hier is een grondige codebeoordeling-checklist op maat voor jouw E-commerce Platform, afgestemd op de Airbnb JavaScript Style Guide en met focus op code-efficiëntie, kwaliteit en onderhoudbaarheid.
---
### **Codebeoordeling Checklist: E-commerce Platform**
**Project:** E-commerce Platform
**Primaire Focus:** Code Efficiëntie
**Coderingsstandaard:** Airbnb JavaScript Style Guide
---
#### **1. Algemene Codekwaliteit & Leesbaarheid**
- [ ] **Leesbaarheid:** Is de code gemakkelijk te lezen en te begrijpen? Zijn variabelen, functies en klassen beschrijvend genoemd?
- [ ] **Commentaar:** Zijn commentaar alleen gebruikt waar de code niet voor zichzelf spreekt? Zijn ze actueel en accuraat?
- [ ] **DRY-principe (Don't Repeat Yourself):** Is er duplicate code? Kan deze worden geherstructureerd naar herbruikbare functies, componenten of hooks?
- [ ] **Single Responsibility Principe:** Heeft elke functie, module of component één duidelijke verantwoordelijkheid?
- [ ] **Consistentie:** Volgt de code consequent de projectbrede conventies en de Airbnb JavaScript Style Guide?
#### **2. JavaScript Specifiek (Airbnb JS Style Guide)**
- [ ] **Variabelen & Constanten:** Worden `const` en `let` correct gebruikt? Is `var` vermeden? Zijn constanten in hoofdletters genoemd?
- [ ] **Functies:** Zijn pijlfuncties (`=>`) gebruikt waar geschikt? Zijn functies concies en gericht op één taak?
- [ ] **Objecten & Arrays:** Worden object properties afgekort waar mogelijk? Worden spread operator (`...`) en destructuring correct gebruikt?
- [ ] **Vergelijkingen:** Worden strikte gelijkheidsoperatoren (`===` en `!==`) gebruikt in plaats van `==` / `!=`?
- [ ] **Template Literals:** Worden template strings (backticks) gebruikt voor het samenvoegen van strings i.p.v. concatenatie?
- [ ] **Imports/Exports:** Worden ES6 modules (`import`/`export`) gebruikt? Zijn imports geordend en logisch gestructureerd?
#### **3. Code Efficiëntie & Prestaties (Cruciaal voor E-commerce)**
- [ ] **Algoritmische Complexiteit:** Zijn er onnodig geneste loops (`O(n²)` of erger)? Kan de algoritmische complexiteit worden geoptimaliseerd?
- [ ] **Rendering Optimalisatie (Frontend):**
- [ ] Worden onnodige her-renders voorkomen in React-componenten (gebruik van `React.memo`, `useMemo`, `useCallback`)?
- [ ] Zijn er grote lijsten? Is virtualisatie (bijv. `react-window`) geïmplementeerd voor productlijsten?
- [ ] **API & Data Ophalen:**
- [ ] Worden API-aanroepen gecached waar mogelijk (bijv. met React Query, SWR of browser caching)?
- [ ] Is er sprake van over-fetching (te veel data ophalen) of under-fetching (te weinig, leidend tot extra calls)?
- [ ] Worden requests gedebounced voor zoekfunctionaliteiten?
- [ ] **Geheugengebruik:**
- [ ] Zijn er geheugenlekken (bijv. event listeners die niet worden opgeruimd, abonnementen in `useEffect` zonder cleanup)?
- [ ] Worden grote objecten of arrays onnodig gekopieerd?
- [ ] **Bundelgrootte:** Zijn er ongebruikte imports of grote dependencies die de bundelgrootte onnodig vergroten?
#### **4. E-commerce Specifieke Functionaliteiten**
- [ ] **Winkelwagen Logica:** Is de winkelwagenstatus correct en consistent beheerd (toevoegen, verwijderen, hoeveelheid aanpassen)? Wordt deze persistent opgeslagen?
- [ ] **Productcatalogus:** Werkt filteren en sorteren correct en efficiënt? Worden filters in de URL bewaard voor deelbaarheid?
- [ ] **Checkout Proces:** Is de gebruikersstroom soepel en foutloos? Is formuliervalidatie robuust?
- [ ] **Beveiliging:**
- [ ] Worden alle gebruikersinvoeren gevalideerd en gesanitized?
- [ ] Zijn gevoelige gegevens (prijzen, voorraad) alleen op de backend gevalideerd?
- [ ] Zijn API keys en geheimen nooit hardcoded in de frontend code?
- [ ] **Toegankelijkheid (a11y):** Hebben knoppen en formulier elementen een duidelijk doel? Zijn er alt-teksten voor afbeeldingen? Is de kleurcontrast voldoende?
#### **5. Foutafhandeling & Robuustheid**
- [ ] **Foutgrenzen:** Zijn er React Error Boundaries geïmplementeerd om de applicatie te beschermen tegen crashes?
- [ ] **API Foutafhandeling:** Worden netwerkfouten en API-fouten netjes afgehandeld en aan de gebruiker getoond?
- [ ] **Fallback UI:** Is er een loading state en een foutstate voor componenten die data ophalen?
#### **6. Testbaarheid & Onderhoudbaarheid**
- [ ] **Testbaarheid:** Is de code eenvoudig te testen? Zijn functies puur (geen side-effects) waar mogelijk? Worden dependencies geïnjecteerd (Dependency Injection)?
- [ ] **Modulariteit:** Is de code opgedeeld in kleine, herbruikbare en onafhankelijke modules/componenten?
- [ ] **Configuratie:** Zijn hardcoded waarden (zoals API URLs, feature flags) geëxtraheerd naar configuratiebestanden of environment variables?
- [ ] **Documentatie:** Zijn complexe algoritmes of bedrijfslogica gedocumenteerd? Is de `README` bijgewerkt met setup-instructies?
#### **7. Security Review**
- [ ] **Dependency Scan:** Zijn de dependencies gecontroleerd op bekende beveiligingslekken (bijv. met `npm audit` of Snyk)?
- [ ] **XSS:** Worden gebruikersinvoeren veilig weergegeven om XSS-aanvallen te voorkomen? Wordt `dangerouslySetInnerHTML` vermeden?
- [ ] **Authenticatie/Authorisatie:** Worden rechten altijd op de backend gecontroleerd? Is client-side auth alleen voor UX?
---
### **Suggesties voor het Beoordelingsproces en het Waarborgen van Kwaliteit**
1. **Gebruik Tools:**
* **Linters:** Configureer ESLint met de Airbnb configuratie om automatisch stijlfouten te catchén.
* **Formatters:** Gebruik Prettier om automatisch de opmaak consistent te houden.
* **Statische Analyse:** Gebruik tools zoals SonarQube of CodeClimate voor automatische kwaliteitsmetingen en "code smells".
* **Bundle Analyzer:** Gebruik `webpack-bundle-analyzer` om de bundelgrootte visueel te inspecteren en grote dependencies te identificeren.
2. **Beoordelingsproces:**
* **Focus op Begrip:** Vraag de auteur om een korte uitleg van de verandering voordat je de code bekijkt.
* **Check op Tests:** Vereis dat nieuwe functionaliteit wordt vergezeld door unit- en integratietests. Controleer de testdekking.
* **Efficiëntie als Prioriteit:** Maak prestatie-analyse (bijv. met React Profiler of Lighthouse CI) een verplicht onderdeel van de review voor code die de productcatalogus, winkelwagen of checkout beïnvloedt.
* **Positieve Feedback:** Geef niet alleen aan wat beter kan, maar ook wat goed is gedaan. Dit moedigt een positieve cultuur aan.
3. **Onderhoudbaarheid Waarborgen:**
* **Architectuur Reviews:** Houd periodiek reviews op hoog niveau om ervoor te zorgen dat de algemene architectuur (state management, folder structuur) schaalbaar en onderhoudbaar blijft.
* **Refactoring Cultuur:** Moedig actief refactoring aan. Reserveer tijd om technische schuld aan te pakken die tijdens reviews wordt geïdentificeerd.
* **Kennis Delen:** Gebruik codebeoordelingen als een kans voor mentorschap en kennisdeling binnen het team.
Deze checklist is een levend document. Pas hem aan op basis van de specifieke technische stack (bijv. React, Node.js, database) en de unieke uitdagingen die jullie tegenkomen bij het bouwen van het E-commerce Platform. Succes met het project

