methods of development
DESCRIPTION
#1 Refactoring. Methods of Development. Wat is refactoring?. Refactoring. Refactoring. Refactoren : waarom ?. Xtreme Programming. Wensen van designers veranderen vaak. Wensen van designers veranderen vaak. Wensen van designers veranderen vaak. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/1.jpg)
Methods of Development
#1 Refactoring
![Page 2: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/2.jpg)
Wat is refactoring?
![Page 3: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/3.jpg)
![Page 4: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/4.jpg)
Refactoring
![Page 5: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/5.jpg)
Refactoring
![Page 6: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/6.jpg)
Refactoren: waarom?
![Page 7: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/7.jpg)
XtremeProgramming
![Page 8: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/8.jpg)
Wensen van designers veranderen vaak
![Page 9: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/9.jpg)
Wensen van designers veranderen vaak
![Page 10: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/10.jpg)
Wensen van designers veranderen vaak
![Page 11: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/11.jpg)
Wensen van designers veranderen vaak
!!!
![Page 12: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/12.jpg)
Wensen van designers veranderen vaak
![Page 13: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/13.jpg)
Wensen van designers veranderen vaak
![Page 14: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/14.jpg)
Wensen van designers veranderen vaak
![Page 15: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/15.jpg)
Wensen van designers veranderen vaak
![Page 16: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/16.jpg)
Wensen van designers veranderen vaak
![Page 17: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/17.jpg)
![Page 18: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/18.jpg)
![Page 19: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/19.jpg)
refactor
![Page 20: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/20.jpg)
![Page 21: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/21.jpg)
Schone code vs later refactoren
![Page 22: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/22.jpg)
Schone code vs later refactorenX
![Page 23: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/23.jpg)
Refactoren: hoe moet dat?
![Page 24: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/24.jpg)
Minder code is betere code
Vermijdt dubbele code
Welke code lijkt veel op elkaar?
![Page 25: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/25.jpg)
D3DXHANDLE refractionTechnique, skyTechnique, glowTechnique;
g_refractionEffect->FindNextValidTechnique(0, &refractionTechnique);
g_refractionEffect->SetTechnique(refractionTechnique);
g_skyEffect->FindNextValidTechnique(0, &skyTechnique);
g_skyEffect->SetTechnique(skyTechnique);
g_glowEffect->FindNextValidTechnique(0, &glowTechnique);
g_glowEffect->SetTechnique(glowTechnique);
![Page 26: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/26.jpg)
D3DXHANDLE refractionTechnique, skyTechnique, glowTechnique;
g_refractionEffect->FindNextValidTechnique(0, &refractionTechnique);
g_refractionEffect->SetTechnique(refractionTechnique);
g_skyEffect->FindNextValidTechnique(0, &skyTechnique); g_skyEffect->SetTechnique(skyTechnique);
g_glowEffect->FindNextValidTechnique(0, &glowTechnique); g_glowEffect->SetTechnique(glowTechnique);
void InitalizeEffect(D3DXEFFECT *effect, D3DXHANDLE &technique){ effect->FindNextValidTechnique(0, &technique); effect->SetTechnique(technique);}
![Page 27: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/27.jpg)
Wat er niet hoort moet weg
![Page 28: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/28.jpg)
Code emigreren
Nieuwe functie / member maken
Verhuizen naar (super)object
Verhuizen naar ‘free function’
![Page 29: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/29.jpg)
Nieuwe functie / member void UpdateKaleidoscope(int kaleidoSides, float time) { … tc[0] = center + zoom * D3DXVECTOR2(cosf(angle - 2.0f * 3.141592654f
/ 3.0f), sinf(angle - 2.0f * 3.141592654f / 3.0f)); tc[1] = center + zoom * D3DXVECTOR2(cosf(angle), sin(angle)); tc[2] = center + zoom * D3DXVECTOR2(cosf(angle + 2.0f *
3.141592654f / 3.0f), sinf(angle + 2.0f * 3.141592654f / 3.0f)); … float triangleVertices[] = { p0.x, p0.y, 0.0f, tc[0].x, tc[0].y, p1.x, p1.y, 0.0f, tx1.x, tx1.y, p2.x, p2.y, 0.0f, tx2.x, tx2.y }; g_d3dDevice->DrawPrimitiveUP(D3DPT_TRIANGLELIST, 1,
triangleVertices, 5 * sizeof(float)); } }
![Page 30: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/30.jpg)
Nieuwe functie / member void UpdateKaleidoscope(int kaleidoSides, float time) { tc[0] = center + zoom * D3DXVECTOR2(cosf(angle - 2.0f * 3.141592654f /
3.0f), sinf(angle - 2.0f * 3.141592654f / 3.0f)); tc[1] = center + zoom * D3DXVECTOR2(cosf(angle), sin(angle)); tc[2] = center + zoom * D3DXVECTOR2(cosf(angle + 2.0f * 3.141592654f /
3.0f), sinf(angle + 2.0f * 3.141592654f / 3.0f)); }
void RenderKaleidoscope() { float triangleVertices[] = { p0.x, p0.y, 0.0f, tc[0].x, tc[0].y, p1.x, p1.y, 0.0f, tx1.x, tx1.y, p2.x, p2.y, 0.0f, tx2.x, tx2.y }; g_d3dDevice->DrawPrimitiveUP(D3DPT_TRIANGLELIST, 1, triangleVertices, 5
* sizeof(float)); }
![Page 31: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/31.jpg)
Verhuizen naar (super)object
OBJECT KaleidoscopeMETHODS Update RenderATTRIBUTES vector0, vector1, vector2 center zoom
![Page 32: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/32.jpg)
Verhuizen naar (super)object
OBJECT EffectMETHODS
UpdateRender
OBJECT Kaleidoscope EXTENDS EffectATTRIBUTES vector0, vector1, vector2 center zoom
OBJECT Bloom EXTENDS EffectATTRIBUTES …
![Page 33: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/33.jpg)
Verhuizen naar ‘free function’
string ToLower(string s) { transform(s.begin(), s.end(), s.begin(), ::tolower); return s; }
![Page 34: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/34.jpg)
Maak code leesbaar
Repeat
Input->update(); Physics()->update(); World->Update();
World->Render();
Until…
![Page 35: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/35.jpg)
Dit kun je nu al toepassen!
![Page 36: Methods of Development](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814eb5550346895dbc5d14/html5/thumbnails/36.jpg)
Eindopdracht
Inleveren in week 12