Skip to content

Code Style Guide

Dit document beschrijft de codeerafspraken voor de CloudStack Wrapper Management Portal.
Het doel is een consistente stijl te behouden in de .NET backend, Vue frontend en de infrastructuur.


1. Algemene Richtlijnen

  • Schrijf duidelijke, leesbare en onderhoudbare code.
  • Houd functies en klassen klein en gericht.
  • Gebruik beschrijvende namen; vermijd afkortingen.
  • Documenteer complexe logica kort via comments.
  • Run linters en formatters vóór elke commit.

2. .NET Backend Stijl

  • Naming
    • PascalCase voor classes, methods en properties.
    • _camelCase voor private fields.
    • camelCase voor lokale variabelen en parameters.
    • Async methods eindigen op Async.
  • Structuur
    • Duidelijke lagen: Controllers → Business → Data.
    • Gebruik Dependency Injection voor services.
    • Vermijd var tenzij het type evident is.
  • Formatting
    • 4 spaties indentatie, accolades op een nieuwe lijn.
    • using directives buiten namespaces plaatsen.
  • API
    • Volg REST conventies.
    • Gebruik camelCase voor JSON properties.
    • Standaardiseer foutafhandeling en responses.

3. Vue Frontend Stijl

  • Structuur

    • Gebruik de Composition API (<script setup> aanbevolen).

    • Folderlayout:

      bash
      public/
      src/
      ├── __tests__/
      ├── router/
      ├── stores/
      ├── views/
      ├── components/
      └── App.vue
  • Naming

    • Components: PascalCase.vue
    • Files en props: camelCase
    • Emits: update:modelValue, submitForm
  • Formatting

    • 2 spaties indentatie.
    • Enkele quotes, semicolons verplicht.
    • Trailing commas en newline aan het einde van het bestand.
  • Styling

    • Gebruik scoped styles waar mogelijk.
    • Volg Tailwind of BEM conventies bij custom CSS.

4. Database Naming Convention

Tabelnamen

  • Altijd in het Engels.
  • Gebruik een zinvolle naam die duidelijk beschrijft wat de tabel bevat.
  • Altijd in het meervoud.
  • Gebruik snake_case:
    • Alleen kleine letters.
    • Woord- of spatiescheidingen worden vervangen door een underscore (_).

Voorbeeld: user_roles


Primary Keys

  • Altijd id als kolomnaam.
  • Type: UUID (of BIGSERIAL indien auto-increment gewenst is).

Voorbeeld: id UUID PRIMARY KEY


Foreign Keys

  • Naamgevingsvorm: enkelvoudige tabelnaam + _id.
  • Verwijst altijd naar de primaire sleutel (id) van de gerelateerde tabel.

Voorbeeld: user_id verwijst naar users.id


Extra Aanbevelingen

  • Timestamps: gebruik created_at en updated_at voor consistentie.
  • Booleans: gebruik een prefix zoals is_ of has_ (bv. is_active, has_expired).
  • Enumeraties / statusvelden: gebruik een _status suffix (bv. deployment_status).
  • Join tables (many-to-many): combineer beide tabelnamen in Logische (Parent-Child) volgorde, bij twijfel in alfabetische volgorde, gescheiden door een underscore.

Voorbeeld: user_roles, catalog_blueprints