Appearance
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
PascalCasevoor classes, methods en properties._camelCasevoor private fields.camelCasevoor lokale variabelen en parameters.- Async methods eindigen op
Async.
- Structuur
- Duidelijke lagen: Controllers → Business → Data.
- Gebruik Dependency Injection voor services.
- Vermijd
vartenzij het type evident is.
- Formatting
- 4 spaties indentatie, accolades op een nieuwe lijn.
usingdirectives buiten namespaces plaatsen.
- API
- Volg REST conventies.
- Gebruik
camelCasevoor JSON properties. - Standaardiseer foutafhandeling en responses.
3. Vue Frontend Stijl
Structuur
Gebruik de Composition API (
<script setup>aanbevolen).Folderlayout:
bashpublic/ src/ ├── __tests__/ ├── router/ ├── stores/ ├── views/ ├── components/ └── App.vue
Naming
- Components:
PascalCase.vue - Files en props:
camelCase - Emits:
update:modelValue,submitForm
- Components:
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
idals kolomnaam. - Type:
UUID(ofBIGSERIALindien 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_idverwijst naarusers.id
Extra Aanbevelingen
- Timestamps: gebruik
created_atenupdated_atvoor consistentie. - Booleans: gebruik een prefix zoals
is_ofhas_(bv.is_active,has_expired). - Enumeraties / statusvelden: gebruik een
_statussuffix (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