Dos and don ‘ ts: dansk tekst.
det ser ud til, at disse regler er rettet mod forbedring af ydeevnen.
jeg har nogle bemærkninger til et par af disse regler:
- uden krav(brug i flere controllere) Opret ikke kontekst i Komponentcontrollerniveau, Opret om nødvendigt lokale sammenhænge, for eksempel i visninger
komponentcontrolleren er din centrale hub for din kontekst. Hvis du på noget tidspunkt har en kontekstknude, der deles på tværs af flere visninger, skal du oprette noden i komponentcontrolleren og knytte den til andre visninger.
noder, der er specifikke for en bestemt visning, kan oprettes direkte på visningskonteksten, men for læsbarhed og ensartethed vælger jeg ofte at centralisere alle mine kontekstnoder og forsyningsmetoder i komponentcontrolleren.
- brug singleton noder, hvis nestings (master detail) er nødvendige
Singleton noder er gode til ydeevne, fordi du kun holder en forekomst af din node i hukommelsen i stedet for at have flere forekomster for hvert (inaktivt) overordnet objekt. Du ved dog bedre, hvad du laver, fordi hvis du kommer i den situation, hvor du har brug for flere aktive overordnede elementer (række repeater, indlejrede tabeller, træer, multiselection tabeller…) singleton node vil dumpe din ansøgning.
hvis du ikke kender princippet om singleton noder godt, eller når ydeevne ikke er et problem, skal du ikke bruge singleton noder.
- brug ikke dynamiske attributter (IF_CONTEKST_NODE_INFO->ADD_ATTRIBUTE)
hvis du kan bruge statisk definerede kontekstattributter, skal du bruge statiske attributter. Der vil dog være situationer, hvor du skal dynamisk oprette din kontekst. I disse tilfælde har du intet andet valg end at tilføje dynamiske attributter. Jeg er dog enig i, at du skal undgå dynamisk kontekstprogrammering (og dynamisk visningsprogrammering) så meget som muligt.
- Brug data med kontekststruktur til BIND_TABLE
ikke et hårdt krav, internt bruger bind-operationerne en Flyt-tilsvarende og holder den oprindelige tabel i en skyggevariabel. Selvom flytningen-tilsvarende er angiveligt dårligt for ydeevne. (Jeg siger efter sigende, fordi jeg har lavet test af mig selv og ikke kunne finde nogen væsentlig forskel)
- Opdater kun konteksten, hvis dataene faktisk skal opdateres
afhænger af hvad mener du med opdatering?
- Opret ikke lange kontekstkortkæder.
?
- brug funktionerne Kontekstændringslog til at registrere brugerinput. Dette har særlige ydelsesfordele, mens en bruger af applikationen kun ændrer en lille mængde data i en visning, mens der vises en stor mængde blandede data.
sandt. Kontekstændringsloggen kan være meget kraftig, når den bruges på en dynamisk måde.
men det er også meget avanceret. Jeg har et uddrag til at gennemgå alle ændringer i en sammenhæng, tildele dataene til den relevante variabel i hjælpeklassen (felt i struktur eller felt i træk i en intern tabel) og dynamisk kalde en handlermetode (hvis en findes). Jeg delte dette uddrag med en masse højt kvalificerede udviklere. Indtil videre forstod kun 2 faktisk, hvad det gjorde, og var i stand til at anvende det på deres egne komponenter.
de regler, du nævner, er interessante nok, men som Steve nævnte, vil du måske uddybe formålet og den underliggende ide.
skål!
Leave a Reply