Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer
Artiklar > ASP

Koda i ASP

Hej på er alla på ASPkoll.se.

Detta kommer nog vara den ända tråd jag kommer skapa här i ASP forumet (Man ska nog inte säga aldrig :) ). Jag tänkte skapa en artikel om detta men jag vill hellre ha en diskussion med medlemmarna här på aspkoll.

Jag upptäcker att att många glömmer standard saker inom ASP när dom ber om hjälp och även skripts som finns på denna sida(även på andra sidor). Vad som är viktigt inom programmering är för mig:


1. Indentera koder

Jag kan menar något annat men idag ser jag personer som skriver en funktion exempelvis:

Function example(str)

if str = "voigtan" then

example = "<b>" & str & "</b>"

else

example = "<i>" & str & "</i>"

end if

End Function
I mina ögon så är detta jätte svårt att läsa av (speciellt när funktionerna börja bli mer än 10 rader kod). Exemplet ovan tycker jag man skall skriva (notera även stora och små bokstäver):
Function Example(str)

    If str = "voigtan" Then

        Example = "<b>" & str & "</b>"

    Else

        Example = "<i>" & str & "</i>"

    End If

End Function
Detta tycker jag personligen(och även de som har kodat i python) är betydligt enklare att läsa av. Speciellt om man skall återkomma till koden efter 1-2 månader, enklare att följa flödet i min mening.

2. Namnge Variabel och Funktioner

dostuff(), fixabugg() osv. Vad säger man om detta? Vad förväntas att göras?  Kan ta ett exempel på ett standard funktion för SQL injections jag ser alldeles för många använder (namnet):

Function fixbug(strText)

    strText = Replace(strText,"'","''")

    strText = Replace(strText,"\","\\")

    fixbug = strText

End function
Fixabugg? Kan jag använda "fixabugg" på alla mina applikationer och dess funktioner? Knappast, vad gör denna kod egentligen: Jo den generera ut vänliga strängar för SQL databaser. Den fixar inte några andra _buggar_ Ge den ett vettigare namn.

booleanskt funktioner: Ett booleanskt är ja eller ett nej. De flesta jag har sett under mina år på nätet skriver alltid sina booleanska funktioner som "Is": IsUserLoggedIn - Nå? Är användaren inloggad eller inte?

3. option explicit

Absolut bästa verktyget du kan ha när du utvecklar: Vad denna funktion (kommando whatever) gör är att den kontrollera din kod lite: Är alla dina variablar "dimade"? Detta var tänkt på punkt 4 men jag tar det i punkt 3:

Skapar alltid dina variabler innan du använder dom. Du kommer förmodligen byta språk från ASP någon gång eller prova dig på andra språk. ASP är fruktansvärt "snäll" för utvecklaren. Du behöver inte skapa upp variabler innan du sätter värdet på den. Dock kommer Servern generera upp en "dim" av den vilket i längden gör att sidan blir långsammare(tar mer resurser). Det är självmord för mig att inte skapa variabler. Och du kommer att bli galen om du byter språk och inte har lärt dig att skapar upp variabler.

4. Namnge variabler rätt 

Detta är en smaksak från person till person. Men snälla namnge variabler till vad det är för något:

dim hallon

hallon = "voigtan"
Vad är egentligen variabel hallon? Om vi har 1000 rader kod och  du  kommer mitten av koden och ser: "Response.Write hallon" - Då bör man säga något liknande: "Ehh... va?" Namnge vad det är (I förra exemplet username eller något liknande).

5. Ungersk notation - http://en.wikipedia.org/wiki/Hungarian_notation

Några älskar detta, andra hatar detta. I .NET och många andra språk(vi kan exempelvis bara kolla VB kod) så har vi "intellisense" Vilket gör att vi kan alt+space för att få upp varaibler, objekt, klasser mm och även få reda vad det är för typ (string,integer,bool) i ASP så kan vi inte sätta "As string" på variabler. Det är därför jag tycker detta är en rätt viktig faktion när man utvecklar. strUsername/sUsername säger mig att denna variabel är en sträng och inte ett tal (även om Username brukar 9,9 fall av 10 vara en sträng).

Och kan även ta upp PascalCasing och camelCasing. Ni som utvecklar java/javascript är vana att koda i camelCasing de flesta funktioner/objekt har denna typ av kodstandard.
PascalCasing är att varje ord i en funktion / sub funktion har en storbokstav och camelCasing har en liten bokstav på den första ordet i funktionen medan de andra har stora.(googla mer om detta).

Dessa två saker i punkt 5 tycker jag är fruktansvärt hjälpsamt om man skall återvända till en kod 2-3 månader efter att man har skrivit dom, kan hoppa in där felet genereas(om det är nu att du skall felsöka) att se: "Aha strUserName" är en sträng men försöker kollas mot false som är ett booleanskt värde.

 

Är jag ute och cyckla eller låter det något vettigt? Duskutera och kom gärna med andra förslag så kan vi se om vi kan få upp en diskssion här ;) 



Fortsatt diskussion: Här

Skapades: 2008-03-16 20:20:50
Skribent: voigtan
Lästs 1999 gånger
Betyg: 0 (totalt 5 röster)

Kommentarer

Pettersoft sa den 17 mars 2008 kl 16:26:
finns redan sådana här artiklar.
max102 sa den 5 augusti 2009 kl 17:27:
koda ett så kostar det
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy