Sobes.tech
Middle

Hoe houd je toezicht op de naleving van de code-stijl in je project?

sobes.tech AI

Antwoord van AI

Om een consistente code-stijl te behouden, gebruik ik de volgende tools en processen:

  1. ESLint: Ik stel regels in voor code-opmaak en kwaliteit (bijvoorbeeld Airbnb of Standard). ESLint helpt bij het detecteren van syntaxfouten, inspringproblemen, ongebruikte variabelen, enz.

    // Voorbeeld .eslintrc.js
    module.exports = {
      extends: 'airbnb-base', // Of een andere gekozen stijl
      rules: {
        // Overschrijven of toevoegen van regels
        'semi': ['error', 'always'],
        'quotes': ['error', 'single']
      }
    };
    
  2. Prettier: Ik integreer Prettier voor automatische code-opmaak. Het zorgt voor spaties, regelafbrekingen, puntkomma's en andere opmaakdetails, werkend samen met ESLint (via plugins).

    // Voorbeeld .prettierrc.json
    {
      "semi": true,
      "singleQuote": true,
      "printWidth": 100
    }
    
  3. Husky en lint-staged: Ik configureer pre-commit hooks met Husky. Met lint-staged voer ik ESLint en Prettier alleen uit op de gewijzigde (staged) bestanden. Dit garandeert dat alleen geformatteerde en gecontroleerde code wordt gecommit.

    // Voorbeeld package.json (deel)
    {
      "husky": {
        "hooks": {
          "pre-commit": "lint-staged"
        }
      },
      "lint-staged": {
        "*.{js,jsx,ts,tsx}": [
          "eslint --fix",
          "prettier --write"
        ],
        "*.{css,scss,less}": [
          "stylelint --fix", // Als ik Stylelint gebruik
          "prettier --write"
        ],
        "*.{html,vue,svelte}": [
          "prettier --write"
        ]
      }
    }
    
  4. Code reviews: Tijdens het code review-proces let ik op de naleving van de vastgestelde code-stijl, zelfs als automatische tools iets over het hoofd hebben gezien of er nuances zijn die niet door de regels worden gedekt.

  5. Documentatie: Ik onderhoud minimale documentatie over de aangenomen code-stijl in het project (bijvoorbeeld in README of CONTRIBUTING.md), zodat nieuwe teamleden snel vertrouwd raken met de regels.

  6. Integratie in IDE: Ik configureer editors (VS Code, WebStorm, enz.) om automatisch te formatteren bij het opslaan en ESLint-fouten direct in de editor weer te geven.