Tirco / PokeMath

Pokémon Math Game
7 stars 3 forks source link

Refactor to SvelteKit for maintainability #2

Open sseppola opened 1 year ago

sseppola commented 1 year ago

Takk for arbeidet du legger inn i dette prosjektet 👏

Jeg kom over det da nevÞene mine spiller det kjempemasse for tiden, og da jeg sÄ det var open-source ble jeg nysgjerrig pÄ Ä lese kildekoden.

FÞrst og framst er jeg veldig imponert over at du har oppnÄtt sÄ mange features pÄ egen hÄnd, og jeg mÄ si at det som fÞlger er kun ment for Ä gjÞre ting enklere for deg over tid.

I nÄvÊrende form minner prosjektet meg veldig om min egen start pÄ Ä bygge nettsider, og jeg kan ane meg at det begynner Ä bli litt uoversiktlig og vanskelig Ä gjÞre endringer nÄ som det har fÄtt litt stÞrrelse. Det er typisk nÄr man kun bruker vanlig html/css/js for Ä bygge en dynamisk nettside/web-app da du manuelt mÄ ta deg av alt av endringer i DOM-en til nettleseren. Etterhvert som kompleksiteten Þker blir dette naturlig vanskeligere og vanskeligere.

For Ă„ begrense kompleksiteten er det mange teknikker man kan ta i bruk, i dette tilfellet er templating, moduler, og reaktivitet verdifulle tillegg:

Basert pÄ det jeg ser tror jeg rammeverket som blir nÊrmest det du allerede kan er "SvelteKit". Det er et rammeverk som ligner veldig pÄ Ä skrive html. En av de nyttigste tingene det introduserer er "reaktiv templating", som betyr at DOMen oppdaterer seg selv om du oppdaterer en javascript verdi (for eksempel money i topp navigasjonen). Dette er ikke magisk, men skjer fordi svelte kode kompileres til noe annet fÞr den leveres til nettleseren sÄ det tar seg av ting som element.innerText = money for deg. Test Svelte her Les mer om SvelteKit her

For Ä vise og la deg teste det ut forskjellen har jeg gjort et raskt forsÞk pÄ Ä skrive om deler av appen i SvelteKit, du kan lese og sjekke ut koden her: https://github.com/sseppola/PokeMath/tree/feature/sveltekit det er instruksjoner i readme.md for Ä komme i gang.

Hovedsaklig er det calendar.html jeg har skrevet om, men den drar med seg mye andre ting som cookies, navigasjon, local storage, shop, player, toast, analytics, og layout. SÄ dette er ganske representativt for hvordan resten av appen kan se ut, se spesielt pÄ:

Om dette er interessant kan jeg hjelpe deg ta dette videre, spesielt i form av veiledning og kode-reviews for Ä sÞrge for at du beveger deg i riktig rettning og unngÄr typiske feil. Jeg mottar notifikasjoner om du svarer meg her, sÄ bare @ meg :)

Om det er uinteressant er det bare Ă„ lukke issuen sĂ„ dropper jeg det, uansett er jeg en supporter av det du gjĂžr her 👍

Tirco commented 1 year ago

Supert @sseppola!

Takker for innspillene, og jeg kommer nok til Ă„ se nĂŠrmere pĂ„ SvelteKit til nyĂ„ret, nĂ„r jeg fĂ„r litt mer tid! Jeg regner med at det syns at det er fĂžrste gangen jeg driver med html... Jeg er tross alt bare en lĂŠrer med koding som hobby 😄 Litt klipp og lim, og litt rare variabler her og der, men det gĂ„r!

Det Ä bare kunne legge topbaren ett sted, istedet for Ä oppdatere alle sidene manuelt er noe jeg har lett etter fÞr, uten hell. SÄ om jeg fÄr til det nÄ, sÄ har du reddet noen av hÄrstrÄene pÄ hodet mitt :)

sseppola commented 1 year ago

Haha, den er grei 👍 ikke nĂžl med Ă„ ta kontakt, jeg hjelper gjerne til!