Vinnaren i pepparkakshustävlingen!
  • 1
  • 2
2017-09-12, 11:29
  #13
Avstängd
Citat:
Ursprungligen postat av delernen
Ju mindre kommentarer du behöver desto bättre. Behöver du kommentera så är det troligvis du som har misslyckats med programmerandet. Din kod är så jävla dålig att du måste förklara med ord vad den gör.

Det behövs inga manualer till t.ex. bilar heller då? Varför beskriva för någon hur vindrutetorkarna opereras, när han/hon kan plocka isär hela bilen och kartlägga kretskorten och sladdarna?

Nä, lägg ner det där. En klass/funktion/metod har uppgiften att utföra något åt andra programmerare utan att de ska behöva veta hur den är implementerad.

Om du har problem med att förklara med ord vad koden gör, börja döp dina variabler till a, b, c osv.

Citat:
Ursprungligen postat av mickes418
Om du döper klasser, variabler och metoder korrekt behöver du inte kommentera alls

Ska jag döpa min förbättrade implementation av fgetc() till readTheNextCharacterFromStreamAndReturnItAsAnUnsig nedCharCastToAnIntOrEOFOnEndOfFileOrError()?
__________________
Senast redigerad av SuperSizeMe 2017-09-12 kl. 12:21.
Citera
2017-09-12, 13:24
  #14
Medlem
Citat:
Ursprungligen postat av SuperSizeMe
Det behövs inga manualer till t.ex. bilar heller då? Varför beskriva för någon hur vindrutetorkarna opereras, när han/hon kan plocka isär hela bilen och kartlägga kretskorten och sladdarna?
Jämförelsen haltar. En vindrutetorkaren startas genom att man använder reglaget med rätt symbol. Bilförare känner till den symbolen och behöver inte läsa manualen. Om man behöver läsa manualen så har man som designer av kontrollerna i bilen gjort ett dåligt jobb. Alla kontrollera ska vara intuitiva och man ska inte behöva läsa en manual för att hantera bilen.
En programmerare läser metodnamnet och förstår utifrån den vad koden gör. Om man behöver läsa kommentarer så har den som skrivit metoden gjort ett dåligt jobb.

Det är få som säger att man inte behöver kommentarer alls. Ibland tvingas man göra lösningar som är väldigt komplexa och som vanliga programmerare inte kan förväntas förstå eller så har man tagit en genväg och då SKA man kommentera det så att det hacket rättas till när mer tid eller kunskap finns.

Citat:
Ursprungligen postat av SuperSizeMe
Ska jag döpa min förbättrade implementation av fgetc() till readTheNextCharacterFromStreamAndReturnItAsAnUnsig nedCharCastToAnIntOrEOFOnEndOfFileOrError()?
Man får hitta en medelväg. I Java så beskriver metodsignaturen mer än i C så bara där får man hjälp vad som händer.

Vad gör din förbättrade fgetc()? Jag tycker den beskriver just vad fgetc() gör.
Citera
2017-09-12, 14:16
  #15
Avstängd
Citat:
Ursprungligen postat av e7andy
Jämförelsen haltar. En vindrutetorkaren startas genom att man använder reglaget med rätt symbol. Bilförare känner till den symbolen och behöver inte läsa manualen.

Tycker att du kan halta. Alla programmerare är inte bilförare. Du kan behöva förklara att när metoden switchGear(int gear) anropas, måste clutchDown() ha anropats innan, hastigheten på bilen ska vara högst 50% lägre eller högre än rekommenderad fart för växeln, och kanske t.o.m. hur många växlar det finns.

Citat:
Ursprungligen postat av e7andy
Om man behöver läsa manualen så har man som designer av kontrollerna i bilen gjort ett dåligt jobb. Alla kontrollera ska vara intuitiva och man ska inte behöva läsa en manual för att hantera bilen.

Det gäller kanske för användare, till en viss gräns, men från programmerare ska man väl kunna kräva mer? Annars kommer det inte gå att optimera någonting.

Citat:
Ursprungligen postat av e7andy
Vad gör din förbättrade fgetc()? Jag tycker den beskriver just vad fgetc() gör.

Japp, det är bara implementationen som är förbättrad
Citera
2017-09-13, 14:33
  #16
Medlem
.Hellraiser.s avatar
Help.

Någon som vet hur man kan börja komma igång med att strukturera?
Citera
2017-09-13, 15:33
  #17
Medlem
Citat:
Ursprungligen postat av .Hellraiser.
Någon som vet hur man kan börja komma igång med att strukturera?
Vad menar du egentligen med att strukturera?

Det är bara att börja. De flesta IDE:er har bra refactoringverktyg som gör det lätt att flytta omkring kod utan att förstöra det som fungerar.

Först behöver du hitta något som inte är bra. Vad är det som är dåligt? På vilket sätt går det att göra bättre? Är det värt ändringen? Om ja, så gör det.

Använd ett versionshanteringssystem. Då kan man ge sig på stora ändringar utan att behöva fundera så mycket på om man verkligen kommer att lyckas. Fungerar inte ändringarna så är det bara att göra revert. Ändringar som tar lång tid att genomföra gör du lämpligtvis i en egen branch för att inte störa produktionskoden.

Vi kör SonarQube/Sonar för statisk kodanalys. Till Eclipse finns pluginen SonarLint som gör samma sak utan att ha SonarQube körande. Sonar hittar många problem med koden och ger hjälp till hur man ska lösa dem.
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