Vinnaren i pepparkakshustävlingen!
  • 1
  • 2
2022-03-06, 13:05
  #13
Moderator
Pontiac-Garages avatar
Citat:
Ursprungligen postat av fletchman
Den mest lättlästa koden har inga kommentarer. Och inga jjävla prefix (tex _sum), förstår inte varför i övrigt duktiga programmerare envisas med det.

Beror lite på vilket språk du syftar på men inom t.ex. Python har sådana prefix betydelse för programflödet.
Citera
2022-03-06, 13:18
  #14
Moderator
Pontiac-Garages avatar
Citat:
Ursprungligen postat av fletchman
Den mest lättlästa koden har inga kommentarer.

Så kan man i princip bara tänka när det gäller ytterst små program för typ inledande programmeringskurser. Ska du konstruera ett program på iallafall ett par hundra rader lär du garanterat behöva kommentera.
Citera
2022-03-06, 18:00
  #15
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av Pontiac-Garage
Så kan man i princip bara tänka när det gäller ytterst små program för typ inledande programmeringskurser. Ska du konstruera ett program på iallafall ett par hundra rader lär du garanterat behöva kommentera.
Man kommenterar väl även för andra personers förståelse och för sitt framtida glömska jag.
Citera
2022-03-06, 18:06
  #16
Moderator
Pontiac-Garages avatar
Citat:
Ursprungligen postat av Enterprise
Man kommenterar väl även för andra personers förståelse och för sitt framtida glömska jag.

Ja bland annat därför, själv programmerar jag en hel del skript mm på jobbet och det hade varit stort tidspill att behöva repetera en kodstruktur jag byggt för typ ett år sen.
Citera
2022-03-12, 09:54
  #17
Medlem
Citat:
Ursprungligen postat av Enterprise
Man kommenterar väl även för andra personers förståelse och för sitt framtida glömska jag.

Lite så.

Citat:
Ursprungligen postat av Pontiac-Garage
Just när det gäller variabeldeklaration är det enklast att ha ev. kommentarer på samma rad, då kommentarer en rad ovanför skulle ge en väldigt lång lista för deklarationerna. Vanligen är ju även kommentarer för att beskriva variabler väldigt korta så då kan man lika gärna ha det på samma rad.

Det är iofs sant.

Citat:
Ursprungligen postat av Telepatisk
Tycker att det är fult med kommentarer på samma rad. Fast jag kommenterar i princip aldrig något.

Enda gången det görs är om det är det typ "TODO" eller om det är något riktigt oförklarligt "hack".

Håller med om att kommentarer på samma rad är ganska fult. Samtidigt, Pontiac-Garage gör ju en rätt bra poäng till varför det ibland är att föredra.

Varför kommenterar du i princip aldrig?
Citera
2022-03-13, 10:25
  #18
Medlem
Goto10s avatar
Citat:
Ursprungligen postat av vhe
Jag delar i viss mån fletchmans åsikt. Inte av orsaken i Real Programmers-memet, utan för att jag ser det som ett litet misslyckande varje gång jag tvingas skriva en kommentar. De behövs ju endast när koden i sig inte är det mest tydliga sättet att uttrycka vad man vill ha sagt. I regel tycker jag att programkod är mer begriplig än naturliga språk - inga tvetydigheter (undantaget undefined behaviour), underförstådda saker eller syftningsfel.
När man behöver skriva en kommentar så behöver man det för att man har misslyckats med att producera begriplig kod.

Sedan bör det så klart finnas dokumentation tillhörande funktioner som beskriver deras syfte och förväntade beteende, men att känna att jag behöver skriva en kommentar mitt i en funktion som berättar vad ett par kodrader gör gör alltid att jag stannar upp och tänker ett extra varv på om det kanske går att formulera om till kod som är begripligare än engelska.
Du har rätt. Det finns kommentarer och så finns det kommentarer. Oftast är det ganska enkelt att förstå VAD en bit kod gör, det som är svårt är att förstå VARFÖR. Låt mig ge ett (påhittat) exempel:
Kod:
// Calculate discount
// Parameters: cust The customer, unitPrice The price
// Returns: The discount
int calculateDiscount(Customer cust, int unitPrice) {
   ...
}
Kommentaren ovan tillför ingenting. Men om den istället hade sett ut så här:
Kod:
// Loyal customers are eligible for discount on certain products.
// The size of the discount depends on several factors like purchase history, ongoing campaigns, etc.
// This function shall be called once for each item in the basket and the returned value summed up to
// give the total discount of the order.
int calculateDiscount(Customer cust, int unitPrice) {
   ...
}
En sådan kommentar förklarar saker som inte går att utläsa från koden och hjälper utvecklarna att förstå både affärsmodellen och hur funktionen är tänkt att användas. Tyvärr är det - enligt min erfarenhet - extremt ovanligt med bra kommentarer i kod. Oftast förklarar de bara vad koden gör men då är det nästan alltid bättre att faktiskt läsa koden.
Lägger man lite tid på att skriva en kommentar om varför koden gör vad den gör och hur den är tänkt att användas så hjälper man alla andra som någongång behöver läsa och förstå. Och även sig själv när man om 6 månader behöver minnas varför man skrev koden på ett visst sätt.
__________________
Senast redigerad av Goto10 2022-03-13 kl. 10:28.
Citera
2022-03-13, 10:32
  #19
Moderator
vhes avatar
Citat:
Ursprungligen postat av Goto10
Oftast är det ganska enkelt att förstå VAD en bit kod gör, det som är svårt är att förstå VARFÖR.

Absolut, det förbisåg jag i mitt tidigare inlägg - men du har helt rätt. Kod är ett bra språk för att uttrycka, som du säger, VAD, men ett mycket dåligt språk för att uttrycka VARFÖR. Det senare behöver så klart besvaras i kommentarer. Däremot är det sällan, tycker jag, som man behöver besvara VARFÖR mitt inne i en funktion. Oftast så gäller ju den frågan funktionens syfte och existensberättigande - inte varför den jonglerar en lista på ett visst sätt på rad 14. Men det finns så klart alltid undantag.

A foolish consistency is the hobgoblin of little minds.
Citera
2022-03-13, 22:41
  #20
Medlem
Telepatisks avatar
Citat:
Ursprungligen postat av yokisuci
Varför kommenterar du i princip aldrig?
Jag tycker inte att man ska behöva kommentera mer än API:n samt hackiga lösningar.

Har man bra namn på funktioner, klasser, variabler etc., så brukar koden förklara sig själv. Bra kod är oftast kort/enkel och utan specialfall/undantag.

Kanske vissa programmeringsspråk behöver mer kommentarer än andra dock. Jag kodar oftast i C och C++.
Citera
  • 1
  • 2

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback