lördag 10 januari 2009

Översättning

Jag ger mig på att försöka att översätta Robert C. Martins "kodregler" ur boken Clean Code lite kortfattat. De beskriver inte saker som nödvändigtvis är felaktiga eller dåliga men situationer och saker där man bör fundera ett varv extra på om man kanske har något som man kanske kan göra bättre.

Om kommentarer
  • C1: Fel information i fel system
  • C2: Felaktiga kommentarer
  • C3: Onödiga kommentarer
  • C4: Dåligt skrivna kommentarer
  • C5: Bortkommenterad kod
Utvecklingsmiljö
  • E1: Kräver mer än ett steg för att bygga
  • E2: Kräver mer än ett steg för att köra tester
Funktioner
  • F1: För många argument
  • F2: "Output" argument
  • F3: Boolska flaggor som arguement
  • F4: Oanvända funktioner
Allmänna
  • G1: Flera språk i samma fil
  • G2: Förväntat beetende är inte implementerat
  • G3: Felaktigt beteende vid gränser (boundaries, cornercases)
  • G4: Borttagna säkerhets funktioner
  • G5: Duplicering
  • G6: Kod i fel abstraktions nivå
  • G7: Klasser beroende av sina arvingar
  • G8: För mycket information
  • G9: Död kod
  • G10: Vertikalt avstånd
  • G11: Inkonsekvens
  • G12: Skräp
  • G13: Artificiella kopplingar
  • G14: Funktionsavundsjuka
  • G15: Val genom argument
  • G16: Kodat uppsåt
  • G17: Felaktigt placerat ansvar
  • G18: Olämpligt användning av static
  • G19: Använd förklarande variabler
  • G20: Funktionsnamn ska säga vad de gör
  • G21: Förstå algoritmen
  • G22: Gör logiska beroenden fysiska
  • G23: Föredra arv före if/else eller switch
  • G24: Följ konventioner enligt standard
  • G25: Ersätt magiska nummer med konstanter
  • G26: Var exakt
  • G27: Struktur över konvention
  • G28: Dölj boolska uttryck
  • G29: Undvik negativa booska uttryck
  • G30: Funktioner bör göra en sak
  • G31: Dolt beroende av tid/ordning
  • G32: Var inte godtycklig
  • G33: Kapsla in gränsfall
  • G34: Funktioner går enbart en abstraktionsnivå ner
  • G35: Håll konfigurerbart data på hög abstraktionsnivå
  • G36: Undvik beroenden på beroende
Namn
  • N1: Använd beskrivande namn
  • N2: Välj rätt namn på rätt abstraktionsnivå
  • N3: Använd standardiserad vokabulär
  • N4: Otvetydiga namn
  • N5: Använd långa namn på stora "scope"
  • N6: Koda inte koden
  • N7: Namn ska beskriva sidoeffekter
Tester
  • T1: Otillräkliga tester
  • T2: Använd test-täcknings verktyg
  • T3: Strunta inte i triviala tester
  • T4: Ett ignorerat test är en fråga om tveksamheter
  • T5: Testa gränsfall
  • T6: Testa mer runt buggar
  • T7: Se mönster för varför tester falerar
  • T8: Testtäckning påvisar mönster
  • T9: Tester ska vara snabba

Inga kommentarer:

Skicka en kommentar