Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blogg
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB & UPPDRAG
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Krönika Standard


Veckans krönika: Varför man skall undvika kommentarer i kod


Vem som helst kan skriva kod som en dator kan förstå men det är en konst att skriva kod som en människa kan förstå. För att försöka få en människa att förstå vår kod brukar vi förmedla detta i onödiga kommentarer; vi klottrar helt enkelt ner vår kod för att försöka förklara för andra och för oss själva vad vår kod gör.

Jag vågar hävda att vi gör detta för vi inte kan skriva bra kod. Vi är inte säkra på att vi förstår koden nästa gång vi vill ändra i den och försöker därför berätta vad koden gör med hjälp av text. Det blir inte mer underlättande för oss själva eller andra, istället krånglar vi oftast till det för oss. Så fort en kommentar måste skrivas så vet vi att koden är otydlig.

Vi utvecklare vill gärna läsa koden som om det vore en uppsats, vi vill läsa och förstå vad den gör genom självbeskrivande metodnamn, självbeskrivande klassnamn m.m.

Underhåll av kommentarer är också ett vanligt problem vi har: Vem orkar läsa och underhålla en sjö med kommenterar? Hur vet vi att våra kommentarer talar sanning? Jag kan garantera att över hälften av all kod som idag är fyllda med kommentarer faktiskt ljuger för oss.

Det är faktiskt bättre att inte ha kommentarer alls än att ha en massa som ljuger för oss. Vad händer om vi inte läser koden? Hur vet vi då att de är sanna? Varför skall vi läsa både kommentarer och kod när vi faktiskt kan skriva självförklarande kod? Vi vill inte läsa en massa onödig text som vi ändå inte vågar förlitas oss på.

Ett annat problem som kan uppstå är att det Ibland skrivs fler rader kommentarer än kod. Vi tappar oftast tid och fokus genom underhållsarbetet av kommentarer.

 

Majoriteten utvecklare tycker inte ens om att kommentera, speciellt inte underhålla andras kommentarer och det är då de oftast förblir felaktiga. Det är också mycket vanligt att vi inte hinner dokumentera pga. tidsbrist.

Ett annat mönster som oftast syns i dålig kod är otydliga metodnamn. Istället för att ändra metodnamnet låter vi en kommentar förklarar vad metoden gör.

Försök se kommentarer som en varning, försök förtydliga koden med ett bättre namn istället, det är oftast där problemet ligger.

Vill du exempelvis kommentera en loop inuti din kod, refaktorera loopen och lägg den i en metod med ett förklarande namn istället. Refaktoring är viktigt, den görs för att förtydliga koden, minska antal rader kod, samt för att ta bort dubblerande kod.

En viss typ av dokumentation måste dock finnas, men den skall vara i ett separat dokument och dokumentationen skall vara kort och enkel och förklara designen och inte tekniken. Tekniken har vi redan läsbar genom vår kod. Ingen vill läsa flera hundra sidor dokument. Det finns en regel som säger:

”Skriv dokumentation om du måste men bara om den verkligen gör någon nytta!”

GOD JUL & GOTT NYTT ÅR


Dotway är specialister på .Net och har en mängd kunder och erfarenheter inom de flesta områden. Vi håller utbildningar, seminarier, mentorskap, SCRUM masters och mycket mer. Besök oss gärna för att diskutera vad vi kan göra tillsammans. Vi söker också alltid duktiga medarbetare, varmt välkommen.

 

Nyligen

  • 12:45 Någon med erfarenhet av NoSQL?
  • 16:12 SQL optimering
  • 15:47 Okompilerad ASMX igen... (problem
  • 11:38 Loop i ett budgetproram
  • 19:22 Skapa xml från window applikation
  • 14:52 Okompilerad ASMX, problem med AD-l
  • 11:17 Kategori med subkategori
  • 21:45 Excel i Visual Basic 6

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 487 420
26 959
260 879
65
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.4841.13023 (2013-04-19 23:03:48)
  • Om
  • Kontakta
  • Regler
  • Cookies