Avatar billede tommyf Nybegynder
06. februar 2008 - 09:14 Der er 20 kommentarer og
1 løsning

Brugen af funktioner og objectorienteret programmering?

Jeg har downloadet hele hjemmesiden CoverYourASP:
http://coveryourasp.com/DownloadCYA.asp

Han inkludere startup.asp på 65 linjer som så igen inkludere 10 forskellige filer med funktioner. Nogle af disse er på over 500 linjer stykket. Udover det så ligger der 166 .SRC filer med op til 30 linjer, for den største jeg har set i. Jeg går ud fra, at de inkluderes på forskellige tidspunkter.

Det virker voldsomt gennemført, men omvendt bliver hver fil jo på minimum flere tusinde linjer, når alt på den måde inkluderes.

Jeg kunne godt tænke mig at høre nogle kommentarer, fra de lidt mere erfarne programmører.
Avatar billede erikjacobsen Ekspert
06. februar 2008 - 09:57 #1
Der er også folk, der renoverer gamle damplokomotiver for sjov.

Gammeldags ASP er en død sild - undtagen selvfølgelig hvis man har et gammelt system, der absolut skal vedligeholdes (aka damplokomotiv...)

Nye projekter startes i noget andet, og et oplagt valg er ASP.NET.
Avatar billede Slettet bruger
06. februar 2008 - 11:39 #2
hej erikjacobsen...

Du ved dengang man søsatte Titanic sagde man også at det ikke kunne synke og at det var totalt fejlfrit.
- og vi ved jo alle hvad der alligevel skete... ;-)

Jeg synes det er en underlig kommentar at komme med - i forhold til asp, om at det er forældet eller et gammelt damplokomotiv. Jeg mener at man altid skal vælge programmeringssprog efter de behov man har - der er jo heller ingen grund til at skyde gråspurve med kanoner, vel?

- og, om ikke andet så mener jeg faktisk at asp er et genialt programmeringssprog at lære. Det er meget nemt at lære, og man kan også lære det meget hurtigt, set i forhold til mange andre sprog.

\Dan
Avatar billede cpufan Juniormester
06. februar 2008 - 12:11 #3
erikjacobsen har fået lært sig .NET, så han beyttet enhver lejlighed til at proklamere det.

asp er et gammelt sprog, nøjagtig ligesom php, C, C+ osv.
Men dem skyder du pudsigt nok ikke ned på grund af deres alder.

asp er fantastisk enkelt til at opbygge db-løsninger til en webside.
der behøves ikke flere dikkedarer end højest nødvendigt.

tilbage til spørgsmålet:

inkludering af filer, og samling af funktioner osv i filer for sig (til inkludering)
giver jo dejlig overskuelig kode, og konsekvent programmering.

De meget lange sider med x antal linier, gør ikke nødvendigvis afviklingen langsom,
hvis en kodestump ikke bruges, fylder den kun på papiret, og ikke i processoreren.
Avatar billede arne_v Ekspert
06. februar 2008 - 12:38 #4
Der findes masser af teknologier som er ældre end ASP. Men ASP er altså ikke forældet
p.g.a. alderen. ASP er forældet fordi leverandøren (MS) ikke laver nye version og ikke
har gjort det i mange år men til gengæld har leveret et nyt produkt som skal erstatte
ASP.

Det er rigtigt at det er meget sværere at komme igang med ASP.NET end med ASP. Men MS
har nok ligesom valgt at prioritere brug til virksomheder fremfor hobby udviklere
uden en solid IT uddannelse.

Hvis man kan lide ASP stilen, så kan man jo kigge på PHP - eller hvis man er til
det lidt mere eksotiske : en af de Python baserede løsninger.
Avatar billede erikjacobsen Ekspert
06. februar 2008 - 12:51 #5
Jo, men jeg har jo ikke skudt gammeldags ASP ned på grund af alderen, men på grund af at det er en død sild af mange årsager.

Eksemplet, som spørgeren kommer med her, viser en årsag: alle de funktioner, som ligger i de mange linier og filer i den nævnte download er i vidt omfang allerede en del af et velunderstøttet værktøj: ASP.NET. Hvorfor spilde sin tid med den slags, med mindre man holder af gamle damplokomotiver.

Og så er der selvfølgelig mange andre velunderstøttede værktøjer.

At programmeringsomgivelser er "nemme" og "enkle" kan argument nok, hvis man laver bittesmå systemer, eller har tid nok. I vore dage skal de være effektive.
Avatar billede fennec Nybegynder
06. februar 2008 - 13:15 #6
arne >>
Jeg ville netop sige at ASP.NET er nemmere at komme igang med end ASP, da man kan komme rigtig langt uden at kode en eneste linje. Kravet er dog at man aldrig har programmeret før eller skal lave lidt advanceret ting.

Kender man til programmering, og er vand til at skrive sin kode selv, er det svært at komme igang med. Jeg har selv meget svært ved at bruge wizard og lign når jeg skriver kode, også er Visual Studio meget tungt at arbejde med. Jeg har ventet 5-10 sek bare på at den ville indsætte koden til en knap (og computeren burde være kraftig nok). Det ville sikkert tage den samme tid at skrive koden til knappen selv, men det er ventetiden der dræber.

Derfor er jeg ikke hoppet helt på .NET vognen endnu.

Skulle jeg som nybegynder vælge idag, er jeg sikker på at det ville være .NET.
Avatar billede arne_v Ekspert
06. februar 2008 - 15:04 #7
Jo, men.

Efter min bedste overbevisning kraever fornuftig brug af ASP.NET en solid forstaaelse
for OOP og lag opdeling af applikationer.

En forstaaelse som i de fleste tilfaelde opnaaes via en IT uddannelse.

Det er rigtigt at man kan faa VS til at generere en masse for en.

Men efter min bedste overbevisning saa holder det ikke i laengden. Formaalet med
wizards etc. er at undgaa trivielt taste arbejde - ikke at slippe for at forstaa
hvad der sker.
Avatar billede tommyf Nybegynder
13. februar 2008 - 19:32 #8
Jeg fik da lov til at overvære en spændende med nogle meningsudvekslinger :)

Personlig kan jeg finde ud af at køre et damplokomotiv, hvor i mod jeg ingen anelse har om hvordan de nye IC4 tog fungere. Som så meget andet er der jo også en faens masse forsinkelser, ekstraudgifter og problemer forbundet med den slags nye tog.

Da jeg ikke er lokomotivfører til daglig, synes jeg ikke det kan betale sig for mig, at sætte mig ind i hvordan IC4 togene kører.

Jeg fik dog svar på, at den type oplagring af kode ikke tog noget fra processoren. Så tager den vel fra rammene?

Når jeg alligvel har så mange kloge hoveder herinde, kan det være at én af jer har et forslag til optimering af nedenstående? Det skal formegentlig køres op til 50.000 gange om dagen.

----------------------------------------------------------------
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=x; DATABASE=x; UID=x; PASSWORD=x; OPTION=3"
SQL = "SELECT * FROM links WHERE partner = '1' ORDER BY hits ASC LIMIT 3"
SET objLink = Conn.Execute(SQL)

    Do While Not objLink.EOF
        strLink = objLink("Link")
        strTekst = objLink("Tekst")
        strTitle = objLink("Title")
        Response.Write("<a href=""" & strLink & """ title=""" &  strTitle & """>" & strTekst & "</a><br>")
    objLink.MoveNext
    Loop

Conn.Close
Set Conn = Nothing
----------------------------------------------------------------

Både dem med og uden svar på ovenstående, skal være meget velkommen til at smide et svar - så jeg kan få fordelt point.
Avatar billede tommyf Nybegynder
13. februar 2008 - 19:34 #9
spændende = spændende diskussion
Avatar billede arne_v Ekspert
13. februar 2008 - 19:49 #10
Der er vist ikke de store optimerings muligheder.

index paa partner kolonnen

er alt jeg kan komme i tanke om
Avatar billede erikjacobsen Ekspert
13. februar 2008 - 20:06 #11
Ikke en optimering, men koden er måske forkert, når dine værdier ikke kommer igennem htmlencode-funktionen. Den dag de indeholder et HTML-giftigt tegn, vil din side se sjov ud. (Noget der sker automatisk ved ASP.NET komponenter, men selvfølgelig stadig skal gøres i det omfang man selv skriver HTML-kode i ASP.NET)
Avatar billede tommyf Nybegynder
13. februar 2008 - 20:29 #12
Tak for begge kommentarer. Jeg er dog den eneste der gemmer noget i databasen, så jeg er ikke så bange for forkerte data.
Avatar billede cpufan Juniormester
13. februar 2008 - 20:42 #13
nu ved jeg ikke hvor mange ting der gemmer sig i tabellen men i stedet for at hente alt (*) kunne du nmøjes med at hente :

objLink("Link")
objLink("Tekst")
objLink("Title")

men med 3 records er det ikke meget du henter der :)
Avatar billede erikjacobsen Ekspert
13. februar 2008 - 20:46 #14
Og skal vi snakke optimering, så ser jeg et udtræk, der sjældent ændrer sig. Måske du kan lave det udtræk, een gang om dagen (timen) og cache, evt. i en applikations-variabel, og udskrive der fra.
Avatar billede tommyf Nybegynder
13. februar 2008 - 22:06 #15
Jeg skal faktisk bruge alle felterne i database, så er der vel ikke nogen grund til at angive dem?

Det er rigtig fanget Erik. Jeg kom til at give jer versionen uden opdateringer - ny version herunder. Den skal ændres ved hver sidevisning:

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=x; DATABASE=x; UID=x; PASSWORD=x; OPTION=3"
SQL = "SELECT * FROM links WHERE partner = '1' ORDER BY hits ASC LIMIT 3"
SET objLink = Conn.Execute(SQL)

    Do While Not objLink.EOF
        strID = objLink("id")
        strLink = objLink("Link")
        strTekst = objLink("Tekst")
        strTitle = objLink("Title")
        strHits = objLink("Hits")+1
        Response.Write("<a href=""" & strLink & """ title=""" &  strTitle & """>" & strTekst & "</a><br>")
        SQL2 = "UPDATE links SET hits = '" & strHits & "' WHERE id = " & strID
        Conn.Execute(SQL2)
    objLink.MoveNext
    Loop

Conn.Close
Set Conn = Nothing
Avatar billede erikjacobsen Ekspert
13. februar 2008 - 22:17 #16
Selv om den ændres hver gang (det havde jeg gættet...), så er det måske ikke vigtigt at vise de helt præcise top-3 hits hver gang. Gør det nogen forskel for dine besøgende, at data er en time eller en dag gamle?

Det er alt sammen under den forudsætning at vi snakker optimering, fordi du har, eller forudser, et performance-problem. Det er kun dig der kan afveje prisen for at databaseopslag mod lidt ekstra RAM-forbrug og lettere forældede data.
Avatar billede tommyf Nybegynder
13. februar 2008 - 23:40 #17
Okay. Tak for uddybningen. Det er vigtigt at de er up2date og med de priser vi har på hardware i dag, er det nok smartere at smide 1GB mere i maskinen end at bekymre sig om den slags.
Problemet er måske bare, at jeg ikke ved hvor meget den egentlig kan klarer som den kører nu, før der opstår problemer. I mit hoved virker er +50.000 ekstra databaseopslag bare af meget.

Kan det testes et sted?
Avatar billede erikjacobsen Ekspert
13. februar 2008 - 23:47 #18
Man kan lave en belastningstest. Men 50.000 om dagen opslag er ikke meget. Lad os sige du kun har trafik i 12 timer om dagen. Det er ca 1 i sekundet. Hvis det er din egen server, så er den ved at dø af kedsomhed. På et webhotel kan de være uenige i den vurdering ;)

Jeg arbejder med systemer hvor der er 3-400 request i sekundet, men der er så også en pæn stabel hardware bagved. Det skal li'som bare fungere ;)
Avatar billede tommyf Nybegynder
14. februar 2008 - 09:02 #19
Okay :)

Nu plejer Erik ikke at samle på point, men så mangler jeg stadig et svar fra dannielsen, arne_v og fennec hvis I vil have lidt point for jeres deltagelse :)
Avatar billede fennec Nybegynder
14. februar 2008 - 09:10 #20
nej tak
.o) <-- One Eyed Jack
Avatar billede arne_v Ekspert
14. februar 2008 - 13:31 #21
jeg springer over her
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester