Tässä harjoituksessa sovelletaan moduulin aikana oppimiasi tekniikoita: dokumentaatio, speksit, toteutus ja katselmointi.
Tehtävänanto
Valitse jokin seuraavista vaihtoehdoista:
Vaihtoehto A: Oma projekti
Jos sinulla on olemassa oleva projekti (työ- tai harrasteprojekti), tee siihen jokin seuraavista muutoksista:
- Lisää uusi feature — Pieni, rajattu ominaisuus (esim. uusi API-endpoint, UI-komponentti)
- Refaktoroi olemassa olevaa koodia — Paranna rakennetta ilman toiminnallisuusmuutoksia
- Korjaa tekninen velka — Päivitä kirjasto, poista deprecated-koodi, paranna testausta
Vaihtoehto B: Harjoitusprojekti — Suroi
Käytä Suroi-koodikantaa, johon tutustuit jo Sessio 2:n harjoituksessa. Koodikanta on tuttu, joten pääset suoraan tekemään muutoksen — ilman että täytyy oppia uutta projektia.
git clone https://github.com/HasangerGames/suroi.git
Valitse pieni, rajattu muutos — esim. avoin issue, balanssimuutos, tai kompakti uusi feature alijärjestelmälle. Suroi on noin 114 000 riviä koodia, joten älä yritä lukea kaikkea — sovella sen sijaan dokumentointi → speksi → toteutus → audit -prosessia (alla). Käytä content-plan.md:tä ja repo-rakennetta orientoitumiseen.
Prosessi: Document → Spec → Develop → Audit
1. Dokumentoi nykytila (15 min)
Ennen kuin muutat mitään, dokumentoi:
# Nykytilan dokumentaatio
## Mitä koodi tekee nyt?
[Kuvaa lyhyesti nykyinen toiminnallisuus]
## Mikä on muutoksen tarkoitus?
[Miksi tämä muutos tehdään?]
## Mihin tiedostoihin muutos vaikuttaa?
[Listaa tiedostot ja moduulit]
## Mahdolliset riskit
[Mitä voi mennä pieleen?]
2. Kirjoita speksi (20 min)
Käytä speksipohjaa:
# Muutoksen speksi: [Otsikko]
## Tavoite
[Yksi lause, joka kuvaa, mitä halutaan saavuttaa]
## Hyväksymiskriteerit
- [ ] Kriteeri 1: [Testattava vaatimus]
- [ ] Kriteeri 2: [Testattava vaatimus]
- [ ] Kriteeri 3: [Testattava vaatimus]
## Toteutussuunnitelma
1. [Ensimmäinen askel]
2. [Toinen askel]
3. [Kolmas askel]
## Testisuunnitelma
- Yksikkötesti: [Mitä testataan]
- Integraatiotesti: [Mitä testataan]
- Manuaalinen testi: [Mitä tarkistetaan]
## Rajoitukset
- Ei muuteta: [Mihin EI kosketa]
- Ei toteuteta: [Mitä EI tehdä tässä vaiheessa]
3. Toteuta AI-avusteisesti (40 min)
Noudata TDD-sykliä:
- Red: Kirjoita testi, joka epäonnistuu
- Green: Toteuta minimaalinen ratkaisu testin läpäisemiseksi
- Refactor: Paranna koodin rakennetta testien suojassa
Käytä AI-assistenttia speksin pohjalta:
@spec.md Toteuta tämä muutos. Aloita kirjoittamalla testit
hyväksymiskriteerien perusteella.
4. Katselmoi ja auditoi (15 min)
Käy läpi 6-kohtainen katselmointi:
- Speksin yhteensopivuus — Vastaako toteutus speksiä?
- Testikattavuus — Onko kaikki hyväksymiskriteerit testattu?
- Turvallisuus — Onko injektioita, vuotoja, kovakoodattuja salaisuuksia?
- Arkkitehtuuri — Noudattaako koodi projektin rakenteita?
- Suorituskyky — Onko ilmeisiä pullonkauloja?
- Tuomio — PASS, MINOR_ISSUES vai REJECT?
Palautus
Kun olet valmis, lisää projektiin HARJOITUS.md-tiedosto:
# Brownfield-harjoitus: [Projektisi nimi]
## Muutoksen kuvaus
[Mitä teit]
## Dokumentaatio
[Linkki/polku dokumentaatioon]
## Speksi
[Linkki/polku speksiin]
## Diff/PR
[Linkki/polku muutoksiin]
## Katselmoinnin tulos
[PASS/MINOR_ISSUES/REJECT + perustelut]
## Oppimiset
[Mitä opit? Mikä oli vaikeaa? Mikä onnistui hyvin?]
Lisää projekti portfolioosi ja kirjoita lyhyt kuvaus prosessista.
Vinkkejä
- Aloita pienestä — Parempi tehdä pieni muutos hyvin kuin suuri huonosti
- Dokumentoi matkalla — Älä jätä dokumentointia viimeiseksi
- Kysy Aavalta — Mentori auttaa missä tahansa vaiheessa
- Vertaispalaute — Jaa työtäsi kilta-chatissa ja kysy palautetta
Arviointikriteerit
| Osa-alue | Painoarvo |
|---|---|
| Dokumentaation laatu | 20 % |
| Speksin selkeys ja testattavuus | 25 % |
| Toteutuksen laatu | 30 % |
| Katselmoinnin perusteellisuus | 15 % |
| Oppimisten reflektointi | 10 % |
Onnea harjoitukseen! Muista, että tavoite on oppia prosessi — ei tehdä täydellistä koodia. 💪
Sessio 2: lisää projekti portfolioon
Oma brownfield-haara
Sessio 2 päätteeksi sinulla on uusi haara tai ominaisuus olemassa olevaan koodikantaan — joko Suroi (suositeltu, harjoitellaan live-sessiossa) tai oma valitsemasi brownfield-projekti. Document → Spec → Develop → Audit -prosessin jälki näkyy commit-historiassa.
Mitä tallennat
PR- tai haara-linkki, grounded spec (lyhyt katkelma riittää) ja audit-raportti tai katselmoijan palaute. Tagit lisätään automaattisesti.