Dos og Don ‘ ts: Webdynpro Kontekst.

det ser ut til at disse reglene er rettet mot ytelsesforbedring.

jeg har noen kommentarer på et par av disse reglene:

  • hvis nødvendig, opprett lokale sammenhenger, For eksempel i visninger

komponentkontrolleren er ditt sentrale knutepunkt for konteksten din. Hvis du på noe tidspunkt har en kontekstnode som deles på tvers av flere visninger, bør du opprette noden i komponentkontrolleren og tilordne den til andre visninger.

Noder som er spesifikke for en bestemt visning, kan opprettes direkte på visningskonteksten, men for lesbarhet og uniformalitet velger jeg ofte å sentralisere alle kontekstnodene og forsyningsmetodene i komponentkontrolleren.

  • Bruk singleton noder hvis nestings (hoveddetaljer) er nødvendige

Singleton noder er gode for ytelse, fordi du bare beholder en forekomst av noden din i minnet, i stedet for å ha flere forekomster for hvert (inaktivt) overordnet objekt. Men du vet bedre hva du gjør fordi hvis du kommer i situasjonen der du trenger flere aktive overordnede elementer (rad repeater, nestede tabeller, trær, multiselection tabeller…) den singleton node vil dumpe søknaden din.

hvis du ikke kjenner prinsippet om singleton noder godt, eller når ytelsen ikke er et problem, ikke bruk singleton noder.

  • ikke bruk dynamiske attributter (IF_WD_CONTEXT_NODE_INFO – > ADD_ATTRIBUTE)

hvis du kan bruke statisk definerte kontekstattributter, bruker du statiske attributter. Det vil imidlertid være situasjoner der du må dynamisk opprette konteksten din. I slike tilfeller har du ikke noe annet valg enn å legge til dynamiske attributter. Jeg er imidlertid enig i at du må unngå dynamisk kontekstprogrammering (og dynamisk visningsprogrammering) så mye som mulig.

  • Bruk data med kontekststruktur for BIND_TABLE

Ikke et hardt krav. Selv om flyttetilsvarende er angivelig dårlig for ytelse. (Jeg sier angivelig, fordi jeg har gjort tester av meg selv og ikke kunne finne noen signifikant forskjell)

  • Oppdater konteksten bare hvis dataene faktisk må oppdateres

Avhenger av hva mener du med oppdatering?

  • ikke opprett lange kontekstkartleggingskjeder.

?

  • Bruk Funksjonene For Kontekstendringslogg til å oppdage brukerinndata. Dette har spesielle ytelsesfordeler mens en bruker av programmet endrer bare en liten mengde data i en visning mens du viser en stor mengde blandede data.

Sant. Konteksten changelog kan være svært kraftig når den brukes i en dynamisk måte.

Men det er også veldig avansert. Jeg har en utdrag for å gå gjennom alle endringer i en kontekst, tilordne dataene til riktig variabel i assistanseklassen (felt i struktur eller felt på rad i et internt bord) og dynamisk ringe en behandlingsmetode (hvis en eksisterer). Jeg delte denne biten med mange dyktige utviklere. Oppdatert, bare 2 forstod faktisk hva det gjorde, og var i stand til å bruke det på egne komponenter.

reglene du nevner er interessante nok, men Som Steve nevnte, vil Du kanskje utdype formålet og den underliggende ideen.

Skål!

Leave a Reply