14 KiB
AGENTS.md
Projektin yleiskuvaus
Tämä on opetuskäyttöön tarkoitettu opetussuunnitelman arkisto, joka opettaa verkkokehityksen perusteita aloittelijoille. Opetussuunnitelma on kattava 12 viikon kurssi, jonka ovat kehittäneet Microsoft Cloud Advocates. Se sisältää 24 käytännön läpikäytävää oppituntia, joissa käsitellään JavaScriptiä, CSS:ää ja HTML:ää.
Keskeiset osat
- Opetussisältö: 24 jäsenneltyä oppituntia projekti-pohjaisina moduuleina
- Käytännön projektit: Terrarium, Typing Game, selainlaajennus, Space Game, pankkisovellus, koodieditori ja AI-chattiapuri
- Interaktiiviset visailut: 48 visailua, joissa jokaisessa 3 kysymystä (ennen ja jälkeen oppitunnin arvioinnit)
- Monikielinen tuki: Automaattiset käännökset yli 50 kielelle GitHub Actions -työkalun avulla
- Teknologiat: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (AI-projekteissa)
Arkkitehtuuri
- Opetussisältö arkistona oppituntipohjaisella rakenteella
- Jokaisen oppitunnin kansiossa README, koodiesimerkit ja ratkaisut
- Riippumattomat projektit omissa kansioissaan (quiz-app, eri oppituntiprojektit)
- Käännösjärjestelmä GitHub Actions (co-op-translator) avulla
- Dokumentaatio tarjotaan Docsifylla ja myös PDF-muodossa
Asennuskomennot
Tätä arkistoa käytetään pääasiassa opetussisällön kuluttamiseen. Jos haluat työskennellä tiettyjen projektien parissa:
Pääarkiston asennus
git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
cd Web-Dev-For-Beginners
Quiz Appin asennus (Vue 3 + Vite)
cd quiz-app
npm install
npm run dev # Käynnistä kehityspalvelin
npm run build # Rakenna tuotantoon
npm run lint # Suorita ESLint
Pankkiprojektin API (Node.js + Express)
cd 7-bank-project/api
npm install
npm start # Käynnistä API-palvelin
npm run lint # Suorita ESLint
npm run format # Muotoile Prettierillä
Selainlaajennusprojektit
cd 5-browser-extension/solution
npm install
# Noudata selaimen tiettyjä laajennuksen latausohjeita
Space Game -projektit
cd 6-space-game/solution
npm install
# Avaa index.html selaimessa tai käytä Live Serveriä
Chat-projekti (Python Backend)
cd 9-chat-project/solution/backend/python
pip install openai
# Aseta GITHUB_TOKEN -ympäristömuuttuja
python api.py
Kehitysprosessi
Sisällöntuottajille
- Forkkaa arkisto GitHub-tilillesi
- Kloonaa oma forkkaus paikallisesti
- Luo uusi haara muutoksillesi
- Tee muutoksia oppituntisisältöön tai koodiesimerkkeihin
- Testaa koodimuutokset asiaankuuluvissa projektikansioissa
- Tee pull request -pyyntöjä noudattaen ohjeistusta
Oppijoille
- Forkkaa tai kloonaa arkisto
- Siirry oppituntikansioihin järjestyksessä
- Lue kaikkien oppituntien README-tiedostot
- Tee ennen oppituntia olevat visailut osoitteessa https://ff-quizzes.netlify.app/web/
- Käy läpi koodiesimerkit oppituntikansioissa
- Tee tehtävät ja haasteet
- Tee oppitunnin jälkeiset visailut
Live-kehitys
- Dokumentaatio: Suorita
docsify servejuurikansiossa (portti 3000) - Quiz App: Suorita
npm run devquiz-app-kansiossa - Projektit: Käytä VS Coden Live Server -laajennusta HTML-projekteihin
- API-projektit: Suorita
npm startasianmukaisissa API-kansioissa
Testausohjeet
Quiz Appin testaus
cd quiz-app
npm run lint # Tarkista koodityyliongelmat
npm run build # Varmista, että käännös onnistuu
Pankki-API:n testaus
cd 7-bank-project/api
npm run lint # Tarkista koodityylin ongelmat
node server.js # Varmista, että palvelin käynnistyy ilman virheitä
Yleinen testauslähestymistapa
- Tämä on oppimiseen tarkoitettu arkisto, jossa ei ole kattavia automatisoituja testejä
- Manuaalinen testaus keskittyy:
- Koodiesimerkkien sujuva toimivuus ilman virheitä
- Dokumentaation linkkien oikea toiminta
- Projektien kääntymisen onnistuminen
- Esimerkkien noudattavan hyviä käytäntöjä
Tarkistukset ennen lähettämistä
- Suorita
npm run lintniissä kansioissa, joissa on package.json - Varmista, että markdown-linkit ovat voimassa
- Testaa koodiesimerkit selaimessa tai Node.js:ssä
- Tarkista, että käännökset säilyttävät rakenteensa
Koodityyliohjeet
JavaScript
- Käytä modernia ES6+ syntaksia
- Noudata projektien mukana tulevia ESLint-konfiguraatioita
- Käytä merkityksellisiä muuttuja- ja funktioiden nimiä opetuksen selkeyden takia
- Lisää kommentteja käsitteiden selittämiseen oppijoille
- Muotoile Prettierilla, jos käyttö on konfiguroitu
HTML/CSS
- Semanttiset HTML5-elementit
- Responsiivisen suunnittelun periaatteet
- Selkeät luokkien nimeämiskäytännöt
- Kommentit CSS-tekniikoiden selittämiseen oppijoille
Python
- PEP 8 -tyyliohjeiden noudattaminen
- Selkeät, opetukselliset koodiesimerkit
- Typet-vihjeet oppimista helpottamaan
Markdown-dokumentaatio
- Selkeä otsikkohierarkia
- Koodilohkot kielimäärityksillä
- Linkit lisäresursseihin
- Kuvakaappaukset ja kuvat
images/kansioissa - Kuville saavutettavuustekstit (alt)
Tiedostojen järjestäminen
- Oppitunnit numeroitu peräkkäin (1-getting-started-lessons, 2-js-basics, jne.)
- Jokaisessa projektissa on yleensä
solution/ja useinstart/taiyour-work/kansiot - Kuvat tallennetaan oppituntikohtaisiin
images/kansioihin - Käännökset
translations/{language-code}/-rakenteessa
Kääntäminen ja käyttöönotto
Quiz Appin käyttöönotto (Azure Static Web Apps)
Quiz-app on konfiguroitu Azure Static Web Apps -käyttöönottoa varten:
cd quiz-app
npm run build # Luo dist/-kansion
# Ottaa käyttöön GitHub Actions -työnkulun kautta, kun pushataan main-haaraan
Azure Static Web Apps -konfiguraatio:
- App location:
/quiz-app - Output location:
dist - Workflow:
.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml
Dokumentaation PDF-generointi
npm install # Asenna docsify-to-pdf
npm run convert # Luo PDF docsista
Docsify dokumentaatio
npm install -g docsify-cli # Asenna Docsify globaalisti
docsify serve # Palvele osoitteessa localhost:3000
Projektikohtaiset käännösprosessit
Jokaisella projektikansiolla voi olla oma rakennusprosessi:
- Vue-projekteissa
npm run buildluo tuotantopaketteja - Staattisissa projekteissa ei ole rakennusvaihetta, tiedostot tarjotaan suoraan
Pull request -ohjeistus
Otsikemuoto
Käytä selkeitä, kuvaavia otsikoita, jotka ilmaisevat muutoksen kohteen:
[Quiz-app] Lisää uusi visailu oppitunnille X[Lesson-3] Korjaa kirjoitusvirhe terrarium-projektissa[Translation] Lisää espanjankielinen käännös oppitunnille 5[Docs] Päivitä asennusohjeet
Pakolliset tarkistukset
Ennen PR:n lähettämistä:
-
Koodin laatu:
- Suorita
npm run lintmuokatuissa projektikansioissa - Korjaa kaikki lint-virheet ja varoitukset
- Suorita
-
Käännöksen varmistus:
- Suorita
npm run buildtarvittaessa - Varmista, ettei rakennusvirheitä ole
- Suorita
-
Linkkien tarkistus:
- Testaa kaikki markdown-linkit
- Varmista kuvaviitteiden toimivuus
-
Sisällön tarkastus:
- Tarkista oikeinkirjoitus ja kielioppi
- Varmista, että koodiesimerkit ovat oikein ja opetuksellisia
- Tarkista käännösten tarkkuus ja merkityksen säilyminen
Osallistumisvaatimukset
- Hyväksy Microsoftin CLA-sopimus (automaattinen tarkistus ensimmäisellä PR:llä)
- Noudata Microsoftin avoimen lähdekoodin käytännesääntöjä
- Katso CONTRIBUTING.md yksityiskohtaiset ohjeet
- Viittaa mahdollisiin issue-numeroihin PR-kuvauksessa
Tarkastusprosessi
- PR:t tarkistaa ylläpitäjät ja yhteisö
- Painopisteenä opetuksellinen selkeys
- Koodiesimerkkien tulee noudattaa tämänhetkisiä parhaita käytäntöjä
- Käännökset tarkastetaan tarkkuuden ja kulttuurisen sopivuuden osalta
Käännösjärjestelmä
Automaattinen käännös
- Käyttää GitHub Actionsia co-op-translator työnkululla
- Kääntää automaattisesti yli 50 kielelle
- Lähdetiedostot pääkansioissa
- Käännetyt tiedostot
translations/{language-code}/kansioissa
Manuaalisten käännösparannusten lisääminen
- Etsi tiedosto
translations/{language-code}/-kansiosta - Tee parannukset rakenteen säilyttäen
- Varmista, että koodiesimerkit toimivat edelleen
- Testaa mahdollinen lokalisoitu visailusisältö
Käännösmetadata
Käännetyt tiedostot sisältävät metadataotsikon:
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "...",
"translation_date": "...",
"source_file": "...",
"language_code": "..."
}
-->
Virheenkorjaus ja vianetsintä
Yleiset ongelmat
Quiz app ei käynnisty:
- Tarkista Node.js versio (v14+ suositeltu)
- Poista
node_modulesjapackage-lock.json, suoritanpm installuudelleen - Tarkista porttikonfliktit (oletus: Vite käyttää porttia 5173)
API-palvelin ei käynnisty:
- Varmista, että Node.js versio on vähintään 10
- Tarkista, onko portti varattu
- Varmista että riippuvuudet on asennettu
npm installkomennolla
Selainlaajennus ei lataudu:
- Varmista, että manifest.json on oikein muotoiltu
- Tarkista selaimen konsolista virheilmoitukset
- Noudata selaimelle spesifisiä laajennuksen asennusohjeita
Python chat -projekti ei toimi oikein:
- Varmista, että OpenAI-paketti on asennettu:
pip install openai - Tarkista, että GITHUB_TOKEN -ympäristömuuttuja on asetettu
- Tarkista GitHub Models -käyttöoikeudet
Docsify ei tarjoa dokumentaatiota:
- Asenna docsify-cli globaalisti:
npm install -g docsify-cli - Suorita repositoryn juurikansiosta
- Varmista, että
docs/_sidebar.mdtiedosto on olemassa
Kehitysympäristön vinkkejä
- Käytä VS Codea Live Server -laajennuksella HTML-projekteissa
- Asenna ESLint ja Prettier laajennukset yhtenäiseen muotoiluun
- Käytä selaimen DevToolsia JavaScriptin debuggaamiseen
- Vue-projekteissa asenna Vue DevTools selaimen laajennus
Suorituskyvyn huomioita
- Suuri määrä käännettyjä tiedostoja (50+ kieltä) tekee koko kloonista suuren
- Käytä kevyttä kloonausta, jos työskentelet vain sisällön parissa:
git clone --depth 1 - Poissulje käännökset hauista työskennellessäsi englanninkielisen sisällön parissa
- Rakennusprosessit voivat olla hitaita ensimmäisellä ajokerralla (npm install, Vite build)
Turvallisuusohjeet
Ympäristömuuttujat
- API-avaimia ei koskaan saa sitoa arkistoon
- Käytä
.envtiedostoja (jo valmiiksi.gitignore-listattuina) - Dokumentoi tarvittavat ympäristömuuttujat projektin READMEissä
Python-projektit
- Käytä virtuaaliympäristöjä:
python -m venv venv - Pidä riippuvuudet ajan tasalla
- GitHub tokenien käyttöoikeudet tulee olla mahdollisimman rajatut
GitHub Models -käyttö
- Henkilökohtaiset Access Tokenit (PAT) vaaditaan GitHub Modelsin käyttöön
- Tokenit säilytetään ympäristömuuttujina
- Älä koskaan sitoa tokeneita tai tunnistetietoja arkistoon
Lisätiedot
Kohdeyleisö
- Täysin aloittelijat verkkokehityksessä
- Opiskelijat ja itseopiskelijat
- Opettajat, jotka käyttävät opetussuunnitelmaa luokkahuoneessa
- Sisältö on suunniteltu saavutettavaksi ja taitotasoa asteittain kehittäväksi
Opetushenkiset periaatteet
- Projekti-pohjainen oppiminen
- Säännölliset tietotarkistukset (visailut)
- Käytännön ohjelmointiharjoitukset
- Todellisten esimerkkien hyödyntäminen
- Painotus perusteissa ennen frameworkeja
Arkiston ylläpito
- Aktiivinen oppijoiden ja osallistujien yhteisö
- Riippuvuuksien ja sisällön säännölliset päivitykset
- Kysymysten ja keskustelujen seuranta ylläpitäjien toimesta
- Käännösten päivitykset automatisoitu GitHub Actionsin kautta
Liittyvät resurssit
- Microsoft Learn -moduulit
- Student Hub -resurssit
- GitHub Copilot suositellaan oppijoille
- Lisäkursseja: Generative AI, Data Science, ML, IoT opetussuunnitelmat saatavilla
Työskentely erityisten projektien kanssa
Yksityiskohtaiset ohjeet löytyvät seuraavilta README-tiedostoilta:
quiz-app/README.md- Vue 3 visailusovellus7-bank-project/README.md- Pankkisovellus autentikoinnilla5-browser-extension/README.md- Selainlaajennuksen kehitys6-space-game/README.md- Canvas-pohjainen peli9-chat-project/README.md- AI-chattiapurin projekti
Monorepon rakenne
Vaikka kyseessä ei ole perinteinen monorepo, tämä arkisto sisältää useita erillisiä projekteja:
- Jokainen oppitunti on itsenäinen kokonaisuus
- Projektit eivät jaa riippuvuuksia keskenään
- Työskentele yksittäisten projektien parissa vaikuttamatta muihin
- Kloonaa koko arkisto saadaksesi täyden opetussuunnitelman kokemuksen
Vastuuvapauslauseke:
Tämä asiakirja on käännetty käyttämällä tekoälykäännöspalvelua Co-op Translator. Vaikka pyrimme tarkkuuteen, otathan huomioon, että automaattiset käännökset saattavat sisältää virheitä tai epätarkkuuksia. Alkuperäistä asiakirjaa sen alkuperäiskielellä tulee pitää virallisena lähteenä. Kriittisissä tiedoissa suosittelemme ammattimaista ihmiskäännöstä. Emme ole vastuussa tämän käännöksen käytöstä aiheutuvista väärinymmärryksistä tai väärintulkinnasta.