Hur hittar man stavfel när man programmerar?

Tråden skapades och har fått 19 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Luleå
  • 2010-07-27 23:53

Jag håller lite på skoj på lära mig javascript. Jag har absolut ingen tidigare erfarenhet och är således en total nybörjare. Jag undrar hur man gör för att upptäcka stavfel i koden man skrivit? Jag har gjort en del tutorials där jag stavat fel. Således funkar det inte riktigt. Det funkar inte alls.
Hittills har jag kunnat hitta och rätta till felen med hjälp av facit. Japp, tutorialen ligger även som fil på internet, så det är bara att gå in på den sidan, kolla källkoden och sedan mödosamt och systematiskt kopiera och klistra först stycke för stycke, sedan rad för rad, kolla efter varje ändring och....ZZZZzzzzz. Ja, detta tar oerhört lång tid och funkar ju inte sedan när jag ska försöka mig på att göra egna sidor. Så jag undrar helt enkelt om det finns nån stavfelsupptäckare?
Jag har försökt hitta felen med Firebug i Firefox, men jag vet inte om det är jag som gör fel, inte vet hur man ska göra eller om det inte är meningen att man inte ska kunna hitta stavfel med Firebug. Eller?

Finns det någon där ute som kan hjälpa mig? Ni som jobbar som programmerare måste väl ha stött på dessa problem? Hur gör ni?

Mycket tacksam för svar

Det finns editors som man ställer in på vilket språk man skriver och som sedan markerar alla "ord" i språket med en viss färg, variabler i en annan osv ...

  • Medlem
  • Luleå
  • 2010-07-28 09:03

Jag använder aptana och det markerar olika ord med blått, svart, rött osv, men hur hittar jag stavfelen? De ord jag hittills har stavat fel på har inte markerats på nåt speciellt sätt. Är det fortfarande en inställningsfråga det handlar om?

Om du ger ett par exempel på dina stavfel, så finns det säkert någon som kan förklara varför just dessa ord inte markerades.

Det är ju en viss skillnad på om stavfelet ligger i ett kommando eller i någon parameter till kommandot, t.ex. Om stavfelet t.ex. ligger i en parameter till ett kommando så har editorn inte en chans att veta att det är ett stavfel.

  • Medlem
  • Luleå
  • 2010-07-28 11:16

Ja just det Jesper. Vad gör man när man råkat ut för det?

Nu har jag rättat till felen och minns inte riktigt var de var någonstans. Men jag kommer ihåg att jag skrivit cecked istället för checked i en tutorial som handlade om radiobuttons. I en annan hade jag skrivit Mushroooms istället för Mushrooms där det handlade om checkboxes.

Senast redigerat 2010-07-28 11:28
Ursprungligen av KOL:

Ja just det Jesper och vad gör man då?

Lutar sig tillbaka på sina Programmerar-skills

Ursprungligen av Goflorp:

Lutar sig tillbaka på sina Programmerar-skills

Exakt. Bra svar.

Om man vill lära sig programmering genom att kopiera övningsexempel, så får man helt enkelt se till att skriva rätt.

Viss hjälp har du av att editorn färgmarkerar orden. Men den klarar som sagt inte att färgmarkera allt. Om du skickar in X som parameter till ett kommando, när det i övningsexemplet står Y, så kan editorn omöjligt veta att detta är fel, eftersom X med största säkerhet också är en giltig parameter till kommandot.

Så, skriv rätt först enligt övningsexemplet, och försök sedan förstå varför resultatet blir som det blir. När programmet fungerar som det ska, enligt övningsexemplet, så kan du ju prova att ändra olika saker för att se vad som händer, så kan du kanske lära dig en del av det.

Om en editor skulle kunna känna igen allt... Om det bara fanns ett rätt sätt att skriva programkod... och alla andra sätt att skriva är "stavfel"... så skulle inte programmering vara ett yrke.

Och då skulle jag vara arbetslös, säger jag som jobbat som programmerare i 22 år.

Då arbetar man lugnt och metodiskt. Stressa inte. Var noga.

När man arbetar med interpreterade språk går det oftast inte att hitta felen förrän man kör programmet. Många föredrar att skriva unit tests, relativt små programbitar som kan testa enskilda bitar av ditt program upprepade gånger.

Med kompilerade språk kan kompilatorn i bästa fall berätta vad som är fel, ibland bara varna att det kanske är det, i värsta fall missa det helt.

I vissa miljöer finns det möjlighet att använda statisk analys. Ditt program analyseras för att hitta typiska och möjliga fel.

  • Medlem
  • Luleå
  • 2010-07-28 11:38

Programerar-skills? Utveckla Goflorp.

Unit tests, små programbitar? Hur delar man upp det om man till exempel jobbar med radiobuttons och ett stavfel smugit sig in?

Ursprungligen av KOL:

Programerar-skills? Utveckla Goflorp.

Att man vet vad som är rätt eller fel, att man själv hittar de så kallade "stavfelen", baserat på erfarenhet.

Ursprungligen av KOL:

...om man till exempel jobbar med radiobuttons och ett stavfel smugit sig in?

Det är för vag information.

Visa gärna med exempel i stället, annars är det omöjligt att veta vad du menar med "stavfel".

Har man en bra IDE t.ex. XCode eller liknande eller en bättre textredigerare t.ex. BBEdit eller motsvarande, har de ofta något kommando som i bakgrunden (på användarens begäran, t.ex. via meny) som aktiverar en kompilator eller interpretator. När en av dessa två går igenom din kod hittar kompilatorn/interpretatorn ofta stavfelen genom att ange att programmet inte förstår koden och hänvisar till en viss rad. Felet finns ofta på den raden som anges eller alldeles i närheten.

Som andra skriver så upptäcker man felet ganska snabbt om man har rätt program som färgar orden. Kommandon t.ex. får en viss färg, t.ex. blå. Om man vet att man skriver ett kommandoord och det inte får den färg man förväntar sig så är det mycket troligt att det är ett stavfel (detta förutsätter att man valt rätt språk i färgkodaren).

MEN, ingen IDE eller avancerad textredigerare rättar skrivfelen, det får man göra själv. Kompilatorn/interpretatorn gör, som Richard Rönnbeck nedan skriver, kollar syntaxfel och odefinierade funktioner. Men hittar inte logiska fel, dvs som är syntax korrekt men fel i den mening att man kanske adderar istället för subtrahera eller matar in värde i fel deklarerad variabel. Det är programmerarnas dröm att ha en motor som även hittar logiska fel. En sådan supersmart avlusare kommer nog aldrig att bli av, förutsatt att någon kommer på något genialiskt sätt att tala om för kompliatorn/interpretatorn, vad du vill uppnå med din kod.

Det blir precis som Goflorp säger, det är en fråga om skicklighet och inlärning.

Senast redigerat 2010-07-28 14:56
  • Medlem
  • Luleå
  • 2010-07-28 11:42

Tack Jesper för ditt svar. Nu börjar jag haja;)

Det du (och alla vi andra också ) skulle vilja ha är ett program som påvisar alla fel. Tyvärr finns det inget sådant, så därför får man nöja sig med något som underlättar både att skriva rätt och att rätta till det som ändå blir fel, dvs. en IDE (integrated development environment)

Där kan man t.ex. få hjälp med syntaxkontroll (dvs. att t.ex. ett inledande parentes-tecken balanseras av ett avslutande parentestecken, att man inte anropar odefinierade funktioner, etc. etc.

Jag har inte använt Aptana själv, men det ser ju ganska bra ut för just JavaScript. Bland annat finns det väl funktioner för att jämföra två textdokument, så du behöver alltså inte gissa dig fram till vari skillnaden mellan din kod och exempelkoden består.

Men, till syvende och sidst så är det precis som Goflorp säger en fråga om skicklighet, dvs. färdigheten kommer med övning.

  • Medlem
  • Luleå
  • 2010-07-28 13:35

:)Tack alla ni som svarat! Nu vet jag ju mycket mer!

  • Medlem
  • Luleå
  • 2010-08-01 00:33

Ok, nu vet jag inte om jag gör rätt som fortsätter på denna tråd, men moderatorerna får väl rätta till det i så fall.

Jag har precis gjort en tutorial, i boken "Dummies for Javascript & Ajax". Det handlar om animation och att få en boll att röra sig via knapptryckning. Jag har förmodligen som vanligt stavat fel lite här o var, men det är inte det som är skumt.
När jag går in på bokens hemsida för att kopiera källkoden och lägger den i Aptana och i DreamWeaver så fungerar det inte. Märk väl att den fungerar utmärkt på hemsidan, men när jag kopierat över den till ovanstående program.(alla andra tutorials som jag gjort detta med har funkat) Det är rutan bollen ska röra sig i som aldrig ens dyker upp. Vad i all sin dar är det för fel den här gången?

Mycket tacksam för svar

/Nybörjaren

Ursprungligen av KOL:

...Märk väl att den fungerar utmärkt på hemsidan...

På vilken hemsida? Din hemsida, eller övningens/bokens hemsida?

Ursprungligen av KOL:

...men när jag kopierat över den till ovanstående program.(alla andra tutorials som jag gjort detta med har funkat)

Om det handlar om Ajax, så kan du inte köra det direkt i Dreamweaver. Ajax bygger ju på att en del av koden körs på webbservern.

  • Medlem
  • Luleå
  • 2010-08-01 01:04

Övningbokens hemsida. Här är adressen till sajten, som ni ser så funkar det. Bollen flyttas när man klickar på knapparna.

movement.html

Vad jag förstått, så är jag ännu inte inne på AJAX-delen av boken.

Och du har naturligtvis även kopierat de andra filerna som hör till den här övningen (själva javascript-filen "movement.js", och CSS-filen "movement.css"), och placerat dem på rätt ställe i din lokala sajt?

  • Medlem
  • Luleå
  • 2010-08-01 10:33

Alltså så här är det: Jag läser avsnittet i boken, där även koden finns och förklaras mer eller mindre i detalj. Sen skriver jag av koden(jag har fått för mig att jag lär mig åtminstånne något genom detta. Om inget annat så lär jag mig att hitta olika tecken på tangentbordet).
Sen är det ju färdigt. Bara att kolla sajten i en webbläsare. Det är i detta stadiet, då sajten inte funkar pga av att jag misslyckats koda rätt, som jag kollar facit på bokens egen hemsida. Kollar källkoden och ibland kopierar in den för att hitta var jag gjort fel. Jag skriver alltså all kod först själv, sen om det inte funkar, jämför jag med inkopierad kod.

I det här fallet kopierade jag in hela sajten, all källkod, för att kolla om det skulle funka. Det gjorde det som bekant inte. Men det funkar på dess egen sajt. Var ligger felet?

Det där är inget svar på min fråga.

Så jag frågar igen:

Har du i din lokala sajt i Dreamweaver, en fil som heter "movement.js", och en fil som heter "movement.css"?

(För det räcker inte med att du har skrivit in (eller kopierat) "movement.html".)

1
Bevaka tråden