📖 Namngivningskonventioner i programmering

Att ge saker namn i kod är lite som att döpa sina husdjur: gör du det slarvigt blir det snabbt kaos. Tänk dig att alla i klassen har en katt som heter Misse – hur ropar man in rätt katt då? 🐈 Namngivningskonventioner är vårt sätt att skapa ordning och förutsägbarhet i koden.

Varför bry sig om namnstilar?

  • Läsbarhet: andra (och ditt framtida jag) förstår vad du menade.
  • Konsekvens: projektet ser enhetligt ut, även om många kodar.
  • Standarder: stora språk och plattformar har officiella rekommendationer.

📋 Vanliga konventioner

KonventionUtseendeTypiskt användningsområdeExempel i C-Sharp
PascalCaseStor bokstav på varje ordKlasser, metoder, publika egenskaper, konstanterpublic class CustomerOrder { }
public void PlaceOrder() { }
public const int MaxUsers = 100;
camelCaseFörsta ordet liten bokstav, sedan stor bokstavLokala variabler, parametrar, privata fältint orderCount;
string customerName;
snake_caseAlla ord små, separerade med _Vanligt i databaser, Python, JSON-fälttotal_price, customer_id
kebab-caseAlla ord små, separerade med -Filnamn, webbadresser, CSS-klassermy-style-class, user-profile-page
UPPER_CASEAlla bokstäver stora, _ som separatorHistoriskt för konstanter i C/C++. Förekommer ibland i blandade kodbaser.MAX_USERS, PI
HungarianNotation (historisk)Prefix som talar om typ eller syfteFörr i VB6/C, används sällan idagstrName, btnSubmit

🎯 Snabbguide (minnesknep)

  • PascalCase → “Pascal är stilig” → allt börjar med stor bokstav.
  • camelCase → “kamel med puckel” → börjar lågt, sedan pucklar.
  • snake_case → “en orm slingrar sig med streck”.
  • kebab-case → “kebabspett med streck mellan bitarna”.
  • UPPER_CASE → “skrikstil”, användes mycket förr men inte längre standard i C-Sharp.

🔍 UPPER_CASE – varför dyker det upp?

Många studerande undrar: “Varför skriver vissa MAX_USERS istället för MaxUsers?”

  • C/C++ tradition: Förr definierades konstanter med #define, och UPPER_CASE gjorde dem lätta att se.
  • C-Sharp/.NET tradition: Microsoft rekommenderar PascalCase för const och readonly, både publika och lokala (Microsoft docs).
  • Verkligheten: blandade kodbaser innehåller båda stilarna – särskilt om kodare har bakgrund i C/C++ eller JavaScript.

Exempel i C#


// Rekommenderad stil (Microsoft .NET guidelines)
public const int MaxUsers = 100;
public static readonly double Pi = 3.14159;

// Äldre/alternativ stil (inspirerad av C/C++)
public const int MAX_USERS = 100;
public static readonly double PI = 3.14159;

🧩 Övning för studerande

Skriv om följande namn till rätt stil:

Ursprungligt namnPascalCasecamelCasesnake_case
customer nameCustomerNamecustomerNamecustomer_name
order totalOrderTotalorderTotalorder_total
max usersMaxUsersmaxUsersmax_users

✅ Sammanfattning

  • PascalCase för klasser, metoder, properties och konstanter.
  • camelCase för variabler och parametrar.
  • snake_case i databaser och JSON.
  • kebab-case i filnamn, webbadresser, CSS.
  • UPPER_CASE lever kvar av historiska skäl – men är inte Microsofts rekommendation i C-Sharp.

👉 Viktigast: Följ teamets stilguide och håll dig konsekvent.

🕰️ En kort historielektion

  1. C (1970-talet)

    • Konstanter definierades med #define.
    • Exempel:

      #define MAX_USERS 100
      
    • Motivering: “Vi skriker ut värdena så vi inte missar dem!”
    • Resultat: ALL_CAPS blev standard.
  2. C++ (1980-talet)

    • Tog med sig samma vana: MAX_USERS, PI, BUFFER_SIZE.
    • Programmerarna var nöjda: “Så har vi alltid gjort!”
  3. Java (1990-talet)

    • Höll fast vid ALL_CAPS för final static konstanter.
    • Exempel:

      public static final int MAX_USERS = 100;
      
    • Kommentar från Java-gänget: “Visst, vi kunde ändra – men nää, vi kör vidare på CAPS.”
  4. C-Sharp (2000-talet)

    • Microsoft ville vara lite mer stilrena: “Nu blir det PascalCase för allt publikt!”
    • Exempel:

      public const int MaxUsers = 100;
      public static readonly double Pi = 3.14159;
      
    • Argument: “Varför ska konstanter se ut som om de är arga? Vi vill ha harmoni.”
  5. Verkligheten (idag)

    • Resultatet? Kodbaser är blandade.
    • Vissa kör MaxUsers, andra envisas med MAX_USERS.
    • Eleverna frågar: “Men… vilket är rätt?”
    • Lärarens svar: “Det beror på vem som hade kaffet sist när guiden skrevs. Följ den standard som gruppen/företaget kör med bara. When in Rome…”

Upp

Upp


Licens: Apache 2.0 | © 2023 Marcus Medina, Campus Mölndal. Alla rättigheter förbehållna.
Du får använda och modifiera detta verk enligt villkoren i Apache License, Version 2.0. Du får inte använda detta verk för kommersiella ändamål utan tillstånd från upphovsmannen.