Avatar billede odsgaard Praktikant
06. marts 2012 - 15:02 Der er 3 kommentarer og
1 løsning

God programmeringspraksis?

Hej Eksperter

Jeg er ved at skrive et program, der kommunikerer med en SQL database.

Jeg har et objekt A, der indeholder en liste af objekt B

Når jeg henter A fra databasen, skal jeg så samtidig hente alle B-objekterne og oprette dem - eller er det bedre, at vente med at hente B-objekterne og oprette dem, før de de skal bruges.

Det gør en forskel i forhold til min programmering. I dette simple eksempel kan jeg jo sagtens oprette dem med det samme, men jeg forestiller mig, at det kan blive temmelig komplekst, hvis der f.eks. er et

Objekt A,
der indeholder en liste af Objekt B,
der indeholder en liste af Objekt C,
der indeholder en liste af Objekt D
etc ....

Hvad er 'smart' at gøre i den situation?

hilsen
Brian
Avatar billede arne_v Ekspert
06. marts 2012 - 15:09 #1
Hvorvidt det er smart at loade med det samme eller loade senere (lazy load er termen) afhaenger af sandsynligheden for at du skal bruge "under data".

Skal du altid bruge "under data" saa kan du lige saa godt loade dem med det samme. Saa kan SQL evt. optimeres via en JOIN fremfor multiple queries.

Men er der kun en lille sandsynlighed for at du skal bruge de "under data", saa boer du vente til du har brug for dem, fordi sandsynligvis behoever du aldrig hente dem.
Avatar billede arne_v Ekspert
06. marts 2012 - 15:10 #2
Hvis du bruger en highend ORM, saa er lazy load noget du enabler/disabler via er flag i konfigurationen uden at skulle rette kode!
Avatar billede odsgaard Praktikant
06. marts 2012 - 22:12 #3
Hej Arne

Tak for dit input.

I første omgang er det et lille projekt jeg arbejder på og derfor er det nemt at loade det hele med det samme. Bliver projektet større, vil jeg overveje at loade objekterne, når de skal bruges.

Smider du et svar :)

/Brian
Avatar billede arne_v Ekspert
06. marts 2012 - 23:05 #4
svar
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