parent
30cd276879
commit
ad8561157f
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,25 +1,103 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "de0ec12c337394806425c7fd2f003b62",
|
||||
"translation_date": "2025-10-11T11:43:03+00:00",
|
||||
"original_hash": "6fd645e97c48cd5eb5a3d290815ec8b5",
|
||||
"translation_date": "2026-01-08T08:56:31+00:00",
|
||||
"source_file": "2-js-basics/1-data-types/assignment.md",
|
||||
"language_code": "et"
|
||||
}
|
||||
-->
|
||||
# Andmetüüpide harjutus
|
||||
# Andmetüüpide harjutus: e-kaubanduse ostukorv
|
||||
|
||||
## Juhised
|
||||
|
||||
Kujutle, et sa lood ostukorvi. Kirjuta dokumentatsioon andmetüüpide kohta, mida sa vajad, et ostukogemus lõpule viia. Iga andmetüübi puhul selgita, kuidas ja miks sa seda kasutaksid, ning too näide. Kuus JavaScripti andmetüüpi on: String, Number, Boolean, Null, Undefined ja Object.
|
||||
Kujutage ette, et loote kaasaegset e-kaubanduse ostukorvi süsteemi. See ülesanne aitab teil mõista, kuidas erinevad JavaScripti andmetüübid töötavad koos, et luua pärismaailma rakendusi.
|
||||
|
||||
## Hindamiskriteeriumid
|
||||
### Teie ülesanne
|
||||
|
||||
Kriteeriumid | Suurepärane | Piisav | Vajab parandamist
|
||||
--- | --- | --- | --- |
|
||||
Andmetüübid | Kõik kuus andmetüüpi on loetletud, põhjalikult uuritud ja näidetega dokumenteeritud | Neli andmetüüpi on uuritud ja osaliselt selgitatud | Kaks andmetüüpi on uuritud ja minimaalselt selgitatud |
|
||||
Looge põhjalik analüüs selle kohta, kuidas kasutaksite JavaScripti andmetüüpe ostukorvi rakenduses. Iga seitsme primaarse andmetüübi ja objektide puhul peate:
|
||||
|
||||
1. **Määratlema** andmetüübi ja selle otstarbe
|
||||
2. **Selgitama**, miks see andmetüüp on parim valik konkreetsete ostukorvi funktsioonide jaoks
|
||||
3. **Andma** realistlikke koodinäiteid, mis näitavad andmetüübi kasutust
|
||||
4. **Kirjeldama**, kuidas see andmetüüp suhtleb ostukorvi teiste osadega
|
||||
|
||||
### Kaetud andmetüübid
|
||||
|
||||
**Primaarandmed tüübid:**
|
||||
- **String**: tootenimed, kirjed, kasutaja andmed
|
||||
- **Number**: hinnad, kogused, maksuarvutused
|
||||
- **Boolean**: toote saadavus, kasutaja eelistused, korvi staatus
|
||||
- **Null**: teadlikult tühjad väärtused (näiteks puuduvad sooduskoodid)
|
||||
- **Undefined**: initsialiseerimata väärtused või puuduvad andmed
|
||||
- **Symbol**: unikaalsed identifikaatorid (edasijõudnutele)
|
||||
- **BigInt**: suured finantsarvutused (edasijõudnutele)
|
||||
|
||||
**Viitandmed tüübid:**
|
||||
- **Object**: toote detailid, kasutajaprofiilid, korvi sisu
|
||||
- **Array**: toodete nimekiri, tellimuste ajalugu, kategooriad
|
||||
|
||||
### Iga andmetüübi näidisformaat
|
||||
|
||||
Iga andmetüübi jaoks vormistage oma vastus järgmiselt:
|
||||
|
||||
```markdown
|
||||
## [Data Type Name]
|
||||
|
||||
**Purpose in Shopping Cart:** [Explain what this data type does]
|
||||
|
||||
**Why This Type:** [Explain why this is the best choice]
|
||||
|
||||
**Code Example:**
|
||||
```javascript
|
||||
// Your realistic code example here
|
||||
```
|
||||
|
||||
**Reaalne kasutus:** [Kirjeldage, kuidas see praktikas toimiks]
|
||||
|
||||
**Suhtlemine:** [Selgitage, kuidas see andmetüüp töötab koos teistega]
|
||||
```
|
||||
|
||||
### Bonus Challenges
|
||||
|
||||
1. **Type Coercion**: Show an example where JavaScript automatically converts between data types in your shopping cart (e.g., string "5" + number 10)
|
||||
|
||||
2. **Data Validation**: Demonstrate how you would check if user input is the correct data type before processing
|
||||
|
||||
3. **Performance Considerations**: Explain when you might choose one data type over another for performance reasons
|
||||
|
||||
### Submission Guidelines
|
||||
|
||||
- Create a markdown document with clear headings for each data type
|
||||
- Include working JavaScript code examples
|
||||
- Use realistic e-commerce scenarios in your examples
|
||||
- Explain your reasoning clearly for beginners to understand
|
||||
- Test your code examples to ensure they work correctly
|
||||
|
||||
## Rubric
|
||||
|
||||
| Criteria | Exemplary (90-100%) | Proficient (80-89%) | Developing (70-79%) | Needs Improvement (Below 70%) |
|
||||
|----------|---------------------|---------------------|---------------------|------------------------------|
|
||||
| **Data Type Coverage** | All 7 primitive types and objects/arrays covered with detailed explanations | 6-7 data types covered with good explanations | 4-5 data types covered with basic explanations | Fewer than 4 data types or minimal explanations |
|
||||
| **Code Examples** | All examples are realistic, working, and well-commented | Most examples work and are relevant to e-commerce | Some examples work but may be generic | Code examples are incomplete or non-functional |
|
||||
| **Real-world Application** | Clearly connects each data type to practical shopping cart features | Good connection to e-commerce scenarios | Some connection to shopping cart context | Limited real-world application demonstrated |
|
||||
| **Technical Accuracy** | All technical information is correct and demonstrates deep understanding | Most technical information is accurate | Generally accurate with minor errors | Contains significant technical errors |
|
||||
| **Communication** | Explanations are clear, beginner-friendly, and well-organized | Good explanations that are mostly clear | Explanations are understandable but may lack clarity | Explanations are unclear or poorly organized |
|
||||
| **Bonus Elements** | Includes multiple bonus challenges with excellent execution | Includes one or more bonus challenges well done | Attempts bonus challenges with mixed success | No bonus challenges attempted |
|
||||
|
||||
### Learning Objectives
|
||||
|
||||
By completing this assignment, you will:
|
||||
- ✅ **Understand** the seven JavaScript primitive data types and their uses
|
||||
- ✅ **Apply** data types to real-world programming scenarios
|
||||
- ✅ **Analyze** when to choose specific data types for different purposes
|
||||
- ✅ **Create** working code examples that demonstrate data type usage
|
||||
- ✅ **Explain** technical concepts in beginner-friendly language
|
||||
- ✅ **Connect** fundamental programming concepts to practical applications
|
||||
|
||||
---
|
||||
|
||||
**Lahtiütlus**:
|
||||
See dokument on tõlgitud AI tõlketeenuse [Co-op Translator](https://github.com/Azure/co-op-translator) abil. Kuigi püüame tagada täpsust, palume arvestada, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Algne dokument selle algses keeles tuleks pidada autoriteetseks allikaks. Olulise teabe puhul soovitame kasutada professionaalset inimtõlget. Me ei vastuta selle tõlke kasutamisest tulenevate arusaamatuste või valesti tõlgenduste eest.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**Vastutusest loobumine**:
|
||||
See dokument on tõlgitud kasutades AI-tõlketeenust [Co-op Translator](https://github.com/Azure/co-op-translator). Kuigi me püüame tagada täpsust, palun mõistke, et automatiseeritud tõlked võivad sisaldada vigu või ebatäpsusi. Originaaldokument selle emakeeles tuleks pidada autoriteetseks allikaks. Kriitilise teabe puhul soovitatakse kasutada professionaalset inimtõlget. Me ei vastuta selle tõlkega kaasnevate arusaamatuste ega valesti tõlgendamise eest.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -1,27 +1,82 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "8973f96157680a13e9446e4bb540ee57",
|
||||
"translation_date": "2025-10-11T11:44:07+00:00",
|
||||
"original_hash": "8328f58f4593b4671656ff8f4b2edbd9",
|
||||
"translation_date": "2026-01-08T08:53:49+00:00",
|
||||
"source_file": "2-js-basics/2-functions-methods/assignment.md",
|
||||
"language_code": "et"
|
||||
}
|
||||
-->
|
||||
# Lõbu funktsioonidega
|
||||
# Fun with Functions
|
||||
|
||||
## Juhised
|
||||
|
||||
Loo erinevaid funktsioone, nii neid, mis tagastavad midagi, kui ka neid, mis ei tagasta midagi.
|
||||
Selles ülesandes harjutad erinevate funktsioonitüüpide loomist, et tugevdada oma teadmisi JavaScripti funktsioonidest, parameetritest, vaikimisi väärtustest ja tagastamisavaldistest.
|
||||
|
||||
Proovi luua funktsioon, millel on segamini tavalised parameetrid ja parameetrid vaikimisi väärtustega.
|
||||
Loo JavaScripti fail nimega `functions-practice.js` ja implementeeri järgmised funktsioonid:
|
||||
|
||||
### Osa 1: Põhilised funktsioonid
|
||||
1. **Loo funktsioon nimega `sayHello`**, mis ei võta mingeid parameetreid ja logib lihtsalt konsooli "Hello!".
|
||||
|
||||
2. **Loo funktsioon nimega `introduceYourself`**, mis võtab `name` parameetri ja logib konsooli sõnumi nagu "Hi, my name is [name]".
|
||||
|
||||
### Osa 2: Vaikimisi parameetritega funktsioonid
|
||||
3. **Loo funktsioon nimega `greetPerson`**, mis võtab kaks parameetrit: `name` (nõutud) ja `greeting` (valikuline, vaikimisi väärtuseks "Hello"). Funktsioon peaks logima konsooli sõnumi nagu "[greeting], [name]!".
|
||||
|
||||
### Osa 3: Funktsioonid, mis tagastavad väärtusi
|
||||
4. **Loo funktsioon nimega `addNumbers`**, mis võtab kaks parameetrit (`num1` ja `num2`) ja tagastab nende summa.
|
||||
|
||||
5. **Loo funktsioon nimega `createFullName`**, mis võtab parameetrid `firstName` ja `lastName` ning tagastab täisnime ühtse stringina.
|
||||
|
||||
### Osa 4: Pane kõik kokku
|
||||
6. **Loo funktsioon nimega `calculateTip`**, mis võtab kaks parameetrit: `billAmount` (nõutud) ja `tipPercentage` (valikuline, vaikimisi 15). Funktsioon peaks arvutama ja tagastama jootraha summa.
|
||||
|
||||
### Osa 5: Testi oma funktsioone
|
||||
Lisa funktsioonikõned enda funktsioonide testimiseks ja kuva tulemused `console.log()` abil.
|
||||
|
||||
**Näidiskõned testimiseks:**
|
||||
```javascript
|
||||
// Testi oma funktsioone siin
|
||||
sayHello();
|
||||
introduceYourself("Sarah");
|
||||
greetPerson("Alex");
|
||||
greetPerson("Maria", "Hi");
|
||||
|
||||
const sum = addNumbers(5, 3);
|
||||
console.log(`The sum is: ${sum}`);
|
||||
|
||||
const fullName = createFullName("John", "Doe");
|
||||
console.log(`Full name: ${fullName}`);
|
||||
|
||||
const tip = calculateTip(50);
|
||||
console.log(`Tip for $50 bill: $${tip}`);
|
||||
```
|
||||
|
||||
## Hindamiskriteeriumid
|
||||
|
||||
| Kriteerium | Silmapaistev | Piisav | Vajab parandamist |
|
||||
| ---------- | ------------------------------------------------------------------------------------- | --------------------------------------------------------------- | ----------------- |
|
||||
| | Lahendus sisaldab kahte või enamat hästi toimivat funktsiooni mitmekesiste parameetritega | Töötav lahendus sisaldab ühte funktsiooni ja mõnda parameetrit | Lahenduses on vead |
|
||||
| Kriteerium | Suurepärane | Piisav | Vajab parandamist |
|
||||
| -------- | --------- | -------- | ----------------- |
|
||||
| **Funktsioonide loomine** | Kõik 6 funktsiooni on õigesti implementeeritud ning kasutatud korrektset süntaksit ja nimetust | 4-5 funktsiooni on õigesti implementeeritud väikeste süntaksi probleemidega | 3 või vähem funktsiooni on implementeeritud või on suured süntaksivead |
|
||||
| **Parameetrid ja vaikimisi väärtused** | Kasutatakse õigesti nõutud ja valikulisi parameetreid ning vaikimisi väärtusi vastavalt ülesandele | Parameetreid kasutatakse õigesti, kuid võib esineda probleeme vaikimisi väärtustega | Parameetrite kasutamine on vale või puudulik |
|
||||
| **Tagastatavad väärtused** | Funktsioonid, mis peaksid väärtusi tagastama, teevad seda korrektselt, ning funktsioonid, mis väärtusi tagastama ei pea, täidavad ainult tegevusi | Enamik tagastatavaid väärtusi on õiged väikeste probleemidega | Suured probleemid tagastamisega |
|
||||
| **Koodi kvaliteet** | Puhtalt kirjutatud, hästi organiseeritud kood tähenduslike muutujanimede ja õige taandega | Kood töötab, kuid võiks olla puhtam ja paremini organiseeritud | Koodi on raske lugeda või see on halvasti struktureeritud |
|
||||
| **Testimine** | Kõik funktsioonid on piisavalt testitud ja tulemused kuvatakse selgelt | Enamik funktsioone on piisavalt testitud | Funktsioonide testimine on piiratud või vale |
|
||||
|
||||
## Boonuskatsed (Valikuline)
|
||||
|
||||
Kui soovid end veelgi proovile panna:
|
||||
|
||||
1. **Loo noolefunktsiooni versioon** ühest oma funktsioonist
|
||||
2. **Loo funktsioon, mis võtab parameetrina teise funktsiooni** (näiteks setTimeouti näited õppetükist)
|
||||
3. **Lisa sisendi valideerimine**, et vältida vigaste sisendite põhjustatud probleeme
|
||||
|
||||
---
|
||||
|
||||
> 💡 **Nõuanne**: Ära unusta avada oma brauseri arendajakonsooli (F12), et näha `console.log()` väljundeid!
|
||||
|
||||
---
|
||||
|
||||
**Lahtiütlus**:
|
||||
See dokument on tõlgitud AI-tõlketeenuse [Co-op Translator](https://github.com/Azure/co-op-translator) abil. Kuigi püüame tagada täpsuse, palume arvestada, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Algne dokument selle algses keeles tuleks lugeda autoriteetseks allikaks. Olulise teabe puhul soovitame kasutada professionaalset inimtõlget. Me ei vastuta selle tõlke kasutamisest tulenevate arusaamatuste või valede tõlgenduste eest.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**Vastutusest loobumine**:
|
||||
See dokument on tõlgitud kasutades tehisintellekti tõlketeenust [Co-op Translator](https://github.com/Azure/co-op-translator). Kuigi me püüdleme täpsuse poole, palun pange tähele, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Originaaldokument tema emakeeles tuleks pidada autoriteetseks allikaks. Tähtsa teabe puhul soovitatakse kasutada professionaali inimtõlget. Me ei vastuta selle tõlke kasutamisest tingitud arusaamatuste või valesti mõistmiste eest.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -1,45 +1,30 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "7965cd2bc5dc92ad888dc4c6ab2ab70a",
|
||||
"translation_date": "2025-10-11T11:55:30+00:00",
|
||||
"original_hash": "bc5c5550f79d10add90ce419ee34abb3",
|
||||
"translation_date": "2026-01-08T08:45:42+00:00",
|
||||
"source_file": "3-terrarium/README.md",
|
||||
"language_code": "et"
|
||||
}
|
||||
-->
|
||||
# Minu Terrarium: Projekt HTML-i, CSS-i ja DOM-i manipuleerimise õppimiseks JavaScripti abil 🌵🌱
|
||||
## Laadige oma Terrarium üles
|
||||
|
||||
Väike lohistamise ja kodeerimise harjutus. Natukese HTML-i, JS-i ja CSS-i abil saad luua veebiliidese, kujundada seda ja lisada mitmesuguseid interaktsioone vastavalt oma soovile.
|
||||
Saate oma Terrariumi veebis avaldada, kasutades **Azure Static Web Apps** teenust.
|
||||
|
||||

|
||||
1. Haruge see hoidla
|
||||
|
||||
# Õppetunnid
|
||||
2. Vajutage seda nuppu 👇
|
||||
|
||||
1. [Sissejuhatus HTML-i](./1-intro-to-html/README.md)
|
||||
2. [Sissejuhatus CSS-i](./2-intro-to-css/README.md)
|
||||
3. [Sissejuhatus DOM-i ja JS-i sulgudesse](./3-intro-to-DOM-and-closures/README.md)
|
||||
[](https://portal.azure.com/#create/Microsoft.StaticApp)
|
||||
|
||||
## Autorid
|
||||
|
||||
Kirjutatud ♥️-ga [Jen Looper](https://www.twitter.com/jenlooper) poolt.
|
||||
|
||||
CSS-i abil loodud terrarium on inspireeritud Jakub Mandra klaaspurgi [Codepenist](https://codepen.io/Rotarepmi/pen/rjpNZY).
|
||||
|
||||
Kunstiteosed on käsitsi joonistatud [Jen Looper](http://jenlooper.com) poolt Procreate'i abiga.
|
||||
|
||||
## Terrariumi avaldamine
|
||||
|
||||
Sa saad oma terrariumi veebis avaldada, kasutades Azure Static Web Apps'i.
|
||||
|
||||
1. Forki see repo
|
||||
|
||||
2. Vajuta sellele nupule
|
||||
|
||||
[](https://portal.azure.com/?feature.customportal=false&WT.mc_id=academic-77807-sagibbon#create/Microsoft.StaticApp)
|
||||
|
||||
3. Järgi juhiseid oma rakenduse loomiseks. Veendu, et määrad rakenduse juureks kas `/solution` või oma koodibaasi juure. Selles rakenduses API-d ei ole, seega selle pärast ei pea muretsema. Forkitud repositooriumisse luuakse GitHubi kaust, mis aitab Azure Static Web Apps'i ehitusteenustel sinu rakenduse ehitada ja avaldada uuel URL-il.
|
||||
3. Järgige häälestusviisardi juhiseid oma rakenduse loomiseks.
|
||||
- Määrake **App root** kas `/solution` või oma koodibaasi juur.
|
||||
- Selles rakenduses pole API-d, seega võite API konfiguratsiooni vahele jätta.
|
||||
- `.github` kaust luuakse automaatselt, et aidata Azure Static Web Apps-l teie rakendust ehitada ja avaldada.
|
||||
|
||||
---
|
||||
|
||||
**Lahtiütlus**:
|
||||
See dokument on tõlgitud, kasutades AI tõlketeenust [Co-op Translator](https://github.com/Azure/co-op-translator). Kuigi püüame tagada täpsust, palun arvestage, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Algne dokument selle algkeeles tuleks lugeda autoriteetseks allikaks. Olulise teabe puhul on soovitatav kasutada professionaalset inimtõlget. Me ei vastuta selle tõlke kasutamisest tulenevate arusaamatuste või valede tõlgenduste eest.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**Vastutusest loobumine**:
|
||||
See dokument on tõlgitud kasutades tehisintellekti tõlke teenust [Co-op Translator](https://github.com/Azure/co-op-translator). Kuigi püüame tagada täpsust, palun arvestage, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Originaaldokument oma emakeeles tuleks pidada autoriteetseks allikaks. Olulise teabe puhul soovitatakse kasutada professionaalset inimtõlget. Me ei vastuta selle tõlke kasutamisest tekkida võivate arusaamatuste või valesti mõistmiste eest.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -1,25 +1,146 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "e3c6f2a03c2336e60412612d870af547",
|
||||
"translation_date": "2025-10-11T12:22:47+00:00",
|
||||
"original_hash": "b6897c02603d0045dd6d8256e8714baa",
|
||||
"translation_date": "2026-01-08T09:29:19+00:00",
|
||||
"source_file": "5-browser-extension/1-about-browsers/assignment.md",
|
||||
"language_code": "et"
|
||||
}
|
||||
-->
|
||||
# Kohanda oma laiendust
|
||||
# Ülesanne: Muuda oma brauserilaiend stiililisemaks
|
||||
|
||||
## Ülevaade
|
||||
|
||||
Nüüd, kui oled loonud oma süsinikujalajälje brauserilaiendi HTML-struktuuri, on aeg muuta see visuaalselt atraktiivseks ja kasutajasõbralikuks. Hea disain parandab kasutajakogemust ning muudab su laiendi professionaalsemaks ja kaasahaaravamaks.
|
||||
|
||||
Sinu laiendil on põhiline CSS-stiil, kuid see ülesanne kutsub sind looma unikaalse visuaalse identiteedi, mis peegeldab sinu isiklikku stiili ja samas säilitab suurepärase kasutusmugavuse.
|
||||
|
||||
## Juhised
|
||||
|
||||
Selle laienduse koodibaas sisaldab valmis stiile, kuid sa ei pea neid kasutama; muuda oma laiendus unikaalseks, kohandades selle CSS-faili.
|
||||
### 1. osa: Analüüsi olemasolevat disaini
|
||||
|
||||
Enne muutmist vaata üle olemasolev CSS-struktuur:
|
||||
|
||||
1. **Leia** CSS-failid oma laiendusprojekti kaustast
|
||||
2. **Uuri** praegust stiililahendust ja värviskeemi
|
||||
3. **Tuvasta** parandamist vajavad kohad paigutuses, tüpograafias ja visuaalses hierarhias
|
||||
4. **Mõtle** sellele, kuidas disain toetab kasutajate eesmärke (lihtne vormi täitmine ja andmete selge kuvamine)
|
||||
|
||||
### 2. osa: Loo oma kohandatud stiil
|
||||
|
||||
Koosta ühtne visuaalne kujundus, mis hõlmab:
|
||||
|
||||
**Värviskeem:**
|
||||
- Vali peamine värvipalett, mis peegeldab keskkonna temaatikat
|
||||
- Tagada piisav kontrastsus juurdepääsetavuse jaoks (kasuta tööriistu nagu WebAIM kontrastitesti)
|
||||
- Mõtle, kuidas värvid toimivad erinevates brauseriteemades
|
||||
|
||||
**Tüpograafia:**
|
||||
- Vali loetavad fondid, mis toimivad hästi väikestes laiendi mõõtmetes
|
||||
- Loo selge hierarhia sobivate fondisuuruste ja -kaaludega
|
||||
- Tagada teksti loetavus nii heledates kui ka tumedates brauseriteemades
|
||||
|
||||
**Paigutus ja ruumid:**
|
||||
- Paranda vormielementide ja andmete kuvamise visuaalset korraldust
|
||||
- Lisa sobivaid täite- ja vahede suuruseid, et muuta lugemine lihtsamaks
|
||||
- Võta arvesse reageeriva disaini põhimõtteid erinevate ekraanisuuruste jaoks
|
||||
|
||||
### 3. osa: Rakenda oma disain
|
||||
|
||||
Muuda CSS-faile, et rakendada oma disaini:
|
||||
|
||||
```css
|
||||
/* Example starting points for customization */
|
||||
|
||||
.form-data {
|
||||
/* Style the configuration form */
|
||||
background: /* your choice */;
|
||||
padding: /* your spacing */;
|
||||
border-radius: /* your preference */;
|
||||
}
|
||||
|
||||
.result-container {
|
||||
/* Style the data display area */
|
||||
background: /* complementary color */;
|
||||
border: /* your border style */;
|
||||
margin: /* your spacing */;
|
||||
}
|
||||
|
||||
/* Add your custom styles here */
|
||||
```
|
||||
|
||||
**Peamised stiilialad:**
|
||||
- **Vormielemendid**: sisestusväljad, sildid ja esitamise nupp
|
||||
- **Tulemuste kuvamine**: andmekonteiner, tekstistiilid ja laadimise olekud
|
||||
- **Interaktiivsed elemendid**: hiirega üle liikumise efektid, nupu olekud ja üleminekud
|
||||
- **Üldine paigutus**: konteineri vahed, taustavärvid ja visuaalne hierarhia
|
||||
|
||||
### 4. osa: Testi ja täienda
|
||||
|
||||
1. **Koosta** oma laiend käsklusega `npm run build`
|
||||
2. **Laadi** uuendatud laiend oma brauserisse
|
||||
3. **Testi** kõiki visuaalseid olekuid (vormi täitmine, laadimine, tulemuste kuvamine, vead)
|
||||
4. **Kontrolli** juurdepääsetavust brauseri arendustööriistadega
|
||||
5. **Paranda** stiile vastavalt tegelikule kasutuskogemusele
|
||||
|
||||
## Loovad väljakutsed
|
||||
|
||||
### Algajatele
|
||||
- Uuenda värve ja fonte, et luua ühtne teema
|
||||
- Paranda vahed ja joondus kogu liidese ulatuses
|
||||
- Lisa nõrgad hiirega üle liikumise efektid interaktiivsetele elementidele
|
||||
|
||||
### Kesktase
|
||||
- Kujunda kohandatud ikoone või graafikat oma laiendi jaoks
|
||||
- Rakenda sujuvad üleminekud erinevate olekute vahel
|
||||
- Loo unikaalne laadimisanimatsioon API-kõnede jaoks
|
||||
|
||||
### Edasijõudnutele
|
||||
- Kujunda mitu temavalikut (hele/tume/kõrge kontrastsus)
|
||||
- Rakenda reageeriv disain erinevate brauseriakende suuruste jaoks
|
||||
- Lisa mikrointeraktsioonid, mis parandavad kasutajakogemust
|
||||
|
||||
## Töötulemuste esitamistsoon
|
||||
|
||||
Sinu lõpetatud ülesanne peaks sisaldama:
|
||||
|
||||
- **Muudetud CSS-faile** oma kohandatud stiiliga
|
||||
- **Ekraanipilte**, mis näitavad su laiendit erinevates olekutes (vorm, laadimine, tulemused)
|
||||
- **Lühikirjeldust** (2-3 lauset), mis selgitab su disainivalikuid ja kuidas need parandavad kasutajakogemust
|
||||
|
||||
## Hindamiskriteeriumid
|
||||
|
||||
| Kriteerium | Näidislik | Piisav | Vajab parandamist |
|
||||
| ---------- | -------------------------------------------- | -------------------- | ----------------- |
|
||||
| | Kood on esitatud toimivate uute stiilidega | Stiilid on puudulikud | Stiilid on vigased |
|
||||
| Kriteerium | Silmapaistev (4) | Pädev (3) | Edenev (2) | Algaja (1) |
|
||||
|------------|------------------|-----------|------------|------------|
|
||||
| **Visuaalne disain** | Loominguline, ühtne kujundus, mis parandab kasutusmugavust ja peegeldab tugevaid disainipõhimõtteid | Head kujundusvalikud, järjepidev stiil ja selge visuaalne hierarhia | Põhilised disainiparandused mõningate järjepidevuse probleemidega | Vähemtähtsad stiilimuudatused või ebajärjekindel disain |
|
||||
| **Funktsionaalsus** | Kõik stiilid töötavad laitmatult erinevates olekutes ja brauserites | Stiilid töötavad hästi väikeste probleemidega äärejuhtudel | Enamik stiile funktsioneerib, esineb mõned kuvamisprobleemid | Märkimisväärsed stiiliprobleemid, mis segavad kasutamist |
|
||||
| **Koodi kvaliteet** | Puhtad, hästi organiseeritud CSS-id tähenduslike klassinimede ja tõhusate selektoritega | Hea CSS-struktuur, sobiv selektorite ja omaduste kasutus | Vastuvõetav CSS mõningate korraldusprobleemidega | Nõrk CSS-struktuur või liiga keerukas stiil |
|
||||
| **Juurdepääsetavus** | Suurepärane värvikontrastsus, loetavad fondid ja puudega kasutajate arvestamine | Head juurdepääsetavuse tavad väikeste täiustamisvõimalustega | Põhilised juurdepääsetavuse kaalutlused mõningate probleemidega | Piiratud tähelepanu juurdepääsetavusele |
|
||||
|
||||
## Edu soovitused
|
||||
|
||||
> 💡 **Disaininipp**: Alusta väikestest muudatustest ja laienda järk-järgult efektsemate stiilideni. Väikesed parendused tüpograafias ja ruumides avaldavad sageli suurt mõju tajutavale kvaliteedile.
|
||||
|
||||
**Parimad praktikad:**
|
||||
- **Testi** oma laiendit nii heledates kui tumedates brauseriteemades
|
||||
- **Kasuta** suhtelisi ühikuid (em, rem) parema skaleeritavuse tagamiseks
|
||||
- **Hoidke** järjepidevad vahed CSS-i kohandatud omadustega
|
||||
- **Mõtle** sellele, kuidas su disain paistab kasutajatele, kellel on erinevad nägemisvajadused
|
||||
- **Valideeri** oma CSS-i, veendumaks, et see järgib korrektset süntaksit
|
||||
|
||||
> ⚠️ **Levinud viga**: Ära ohverda kasutusmugavust visuaalse välimuse nimel. Sinu laiend peab olema nii ilus kui ka funktsionaalne.
|
||||
|
||||
**Pea meeles:**
|
||||
- **Hoia** oluline info kergesti loetavana
|
||||
- **Tagada**, et nupud ja interaktiivsed elemendid oleksid hõlpsasti klikitavad
|
||||
- **Säilita** selge visuaalne tagasiside kasutaja tegevustele
|
||||
- **Testi** oma disaini reaalsete andmetega, mitte ainult kohatäitetekstidega
|
||||
|
||||
Õnne loomingulise ja silmapaistva funktsionaalse brauserilaiendi loomisel!
|
||||
|
||||
---
|
||||
|
||||
**Lahtiütlus**:
|
||||
See dokument on tõlgitud, kasutades AI tõlketeenust [Co-op Translator](https://github.com/Azure/co-op-translator). Kuigi püüame tagada täpsust, palun arvestage, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Algne dokument selle algses keeles tuleks lugeda autoriteetseks allikaks. Olulise teabe puhul on soovitatav kasutada professionaalset inimtõlget. Me ei vastuta selle tõlke kasutamisest tulenevate arusaamatuste või valede tõlgenduste eest.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**Vastutusest loobumine**:
|
||||
See dokument on tõlgitud kasutades tehisintellekti tõlke teenust [Co-op Translator](https://github.com/Azure/co-op-translator). Kuigi me püüdleme täpsuse poole, palun arvestage, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Originaaldokument selle algkeeles tuleks pidada usaldusväärseks allikaks. Olulise info puhul soovitatakse professionaalset inimtõlget. Me ei vastuta ühegi tõlgenduse või eksimuse eest, mis võivad tekkida selle tõlke kasutamisest.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -1,25 +1,83 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "ca1cf78a4c60df77ab32a154ec024d7f",
|
||||
"translation_date": "2025-10-11T12:11:55+00:00",
|
||||
"original_hash": "87cd43afe5b69dbbffb5c4b209ea6791",
|
||||
"translation_date": "2026-01-08T09:10:57+00:00",
|
||||
"source_file": "6-space-game/2-drawing-to-canvas/assignment.md",
|
||||
"language_code": "et"
|
||||
}
|
||||
-->
|
||||
# Mäng Canvas API-ga
|
||||
# Ülesanne: Uuri Canvas API-d
|
||||
|
||||
## Õpieesmärgid
|
||||
|
||||
Selle ülesande täitmisega näitad oma arusaamist Canvas API põhitõdedest ning rakendad loomingulist probleemide lahendamist, et luua visuaalseid elemente kasutades JavaScripti ja HTML5 canvas elementi.
|
||||
|
||||
## Juhised
|
||||
|
||||
Vali üks element Canvas API-st ja loo selle ümber midagi huvitavat. Kas suudad luua väikese galaktika korduvatest tähtedest? Kas suudad luua huvitava tekstuuri värvilistest joontest? Inspiratsiooni saamiseks võid vaadata CodePeni (aga ära kopeeri).
|
||||
Vali üks Canvas API aspekt, mis sind huvitab, ja loo selle ümber kaasahaarav visuaalne projekt. See ülesanne julgustab sind katsetama oma joonistamisvõimalusi ning ehitama midagi unikaalselt enda oma.
|
||||
|
||||
### Projektide ideed inspiratsiooniks
|
||||
|
||||
**Geomeetrilised mustrid:**
|
||||
- **Loo** galaktika animeeritud vilkuvate tähtedega juhuslike asukohtadega
|
||||
- **Kujunda** huvitav tekstuur korduvate geomeetriliste kujunditega
|
||||
- **Ehita** kaleidoskoobi efekt pöörlevate ja värvikirevate mustritega
|
||||
|
||||
**Interaktiivsed elemendid:**
|
||||
- **Arenda** joonistusriist, mis reageerib hiire liikumisele
|
||||
- **Rakenda** kujundid, mis muudavad värvi klikimisel
|
||||
- **Kujunda** lihtne animatsiooni tsükkel liikuvate elementidega
|
||||
|
||||
**Mängudega seotud graafika:**
|
||||
- **Loo** keriv taust ruumimängule
|
||||
- **Valmista** osakeste efektid nagu plahvatused või maagilised võlud
|
||||
- **Loo** animeeritud sprite'id mitme kaadriga
|
||||
|
||||
### Arendusjuhised
|
||||
|
||||
**Uurimine ja inspiratsioon:**
|
||||
- **Sirvi** CodePeni loomingulisi canvas näiteid (inspiratsiooniks, mitte kopeerimiseks)
|
||||
- **Uuri** [Canvas API dokumentatsiooni](https://developer.mozilla.org/docs/Web/API/Canvas_API) täiendavate meetodite kohta
|
||||
- **Katseta** erinevaid joonistusmeetodeid, värve ja animatsioone
|
||||
|
||||
**Tehnilised nõuded:**
|
||||
- **Kasuta** õiget canvas seadistust koos `getContext('2d')`
|
||||
- **Lisa** olulised kommentaarid oma lähenemise selgitamiseks
|
||||
- **Testi** oma koodi põhjalikult, et see töötaks veatult
|
||||
- **Rakenda** kaasaegset JavaScripti süntaksit (const/let, nooled-funktsioonid)
|
||||
|
||||
**Loominguline väljendus:**
|
||||
- **Keskendu** ühele Canvas API funktsioonile, kuid uuri seda põhjalikult
|
||||
- **Lisa** oma loominguline nüanss, et teha projekt isiklikuks
|
||||
- **Mõtle** kuidas võiks su loomingust saada osa suuremast rakendusest
|
||||
|
||||
### Esitamise juhised
|
||||
|
||||
Esita oma valmis projekt ühes HTML-failis koos manustatud CSS-i ja JavaScriptiga või eraldi failidena kaustas. Lisa lühike kommentaar oma loominguliste valikute ja Canvas API funktsioonide kohta, mida uurisid.
|
||||
|
||||
## Hindamiskriteeriumid
|
||||
|
||||
| Kriteerium | Silmapaistev | Piisav | Vajab parandamist |
|
||||
| ---------- | --------------------------------------------------------- | ---------------------------------- | --------------------- |
|
||||
| | Esitatud kood näitab huvitavat tekstuuri või kuju | Kood on esitatud, kuid ei tööta | Koodi ei ole esitatud |
|
||||
| Kriteerium | Silmapaistev | Piisav | Vajab parendamist |
|
||||
|------------|---------------|--------|-------------------|
|
||||
| **Tehniline teostus** | Canvas API kasutamine loominguliselt mitme funktsiooniga, kood töötab laitmatult, rakendatud kaasaegne JavaScripti süntaks | Canvas API korrektne kasutus, kood töötab väikeste probleemidega, põhiline teostus | Canvas API kasutamise katse, kuid koodis on vead või see ei käivitu |
|
||||
| **Loomingulisus ja disain** | Väga originaalne kontseptsioon lihvitud visuaalse atraktiivsusega, näitab sügavat Canvas-funktsiooni uurimist | Canvas funktsioonide hea kasutus mõne loomingulise elemendiga, solidne visuaalne tulemus | Põhiline teostus minimaalse loomingulisuse või visuaalse atraktiivsusega |
|
||||
| **Koodi kvaliteet** | Hästi organiseeritud, kommenteeritud kood, mis järgib parimaid tavasid, tõhusad algoritmid | Puhas kood mõne kommentaariga, järgib põhilisi kodeerimisstandardeid | Kood on ebaorganiseeritud, minimaalsed kommentaarid, ebatõhus teostus |
|
||||
|
||||
## Refleksiooniküsimused
|
||||
|
||||
Pärast oma projekti lõpetamist mõtle järgmistele küsimustele:
|
||||
|
||||
1. **Millise Canvas API funktsiooni valisid ja miks?**
|
||||
2. **Milliste väljakutsetega projekti loomisel kokku puutusid?**
|
||||
3. **Kuidas võiksid seda projekti laiendada suuremaks rakenduseks või mänguks?**
|
||||
4. **Milliseid teisi Canvas API funktsioone sooviksid järgmiseks uurida?**
|
||||
|
||||
> 💡 **Kasulik näpunäide**: Alusta lihtsast ning lisa keerukust järk-järgult. Hästi teostatud lihtne projekt on parem kui üleambitsioonikas projekt, mis ei tööta korralikult!
|
||||
|
||||
---
|
||||
|
||||
**Lahtiütlus**:
|
||||
See dokument on tõlgitud AI tõlketeenuse [Co-op Translator](https://github.com/Azure/co-op-translator) abil. Kuigi püüame tagada täpsust, palume arvestada, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Algne dokument selle algses keeles tuleks pidada autoriteetseks allikaks. Olulise teabe puhul soovitame kasutada professionaalset inimtõlget. Me ei vastuta selle tõlke kasutamisest tulenevate arusaamatuste või valesti tõlgenduste eest.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**Vastutusest loobumine**:
|
||||
See dokument on tõlgitud kasutades tehisintellekti tõlketeenust [Co-op Translator](https://github.com/Azure/co-op-translator). Kuigi püüame täpsust, palun arvestage, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Originaaldokument selle emakeeles tuleks pidada autoriteetseks allikaks. Olulise teabe puhul soovitatakse kasutada professionaalset inimtõlget. Me ei vastuta selle tõlke kasutamisest tulenevate arusaamatuste või valesti mõistmiste eest.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,33 +1,173 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "24201cf428c7edba1ccec2a78a0dd8f8",
|
||||
"translation_date": "2025-10-11T12:12:38+00:00",
|
||||
"original_hash": "232d592791465c1678cab3a2bb6cd3e8",
|
||||
"translation_date": "2026-01-08T09:13:39+00:00",
|
||||
"source_file": "6-space-game/6-end-condition/assignment.md",
|
||||
"language_code": "et"
|
||||
}
|
||||
-->
|
||||
# Ehita näidis mäng
|
||||
# Ehita Näidismäng
|
||||
|
||||
## Juhised
|
||||
## Ülesande Ülevaade
|
||||
|
||||
Proovi luua väike mäng, kus harjutad erinevaid lõppetingimusi. Muuda tingimusi, näiteks punktide kogumine, kangelase elude kaotus või kõigi koletiste alistamine. Ehita midagi lihtsat, näiteks konsoolipõhine seiklusmäng. Kasuta allolevat mängu voogu inspiratsiooniks:
|
||||
Nüüd, kui oled oma kosmosemängus valdanud mängu lõpptingimused ja taaskäivitamise funktsionaalsuse, on aeg rakendada neid kontseptsioone täiesti uues mängukogemuses. Sa kavandad ja ehitad oma mängu, mis demonstreerib erinevaid lõpptingimuste mudeleid ja taaskäivitamise mehhanisme.
|
||||
|
||||
See ülesanne paneb sind loovalt mõtlema mängudisaini üle, samas harjutades õpitud tehnilisi oskusi. Sa uurid erinevaid võidu ja kaotuse stsenaariume, rakendad mängija edenemist ja lood kaasahaaravaid taaskäivitamise kogemusi.
|
||||
|
||||
## Projekti Nõuded
|
||||
|
||||
### Põhimängu Omadused
|
||||
|
||||
Sinu mäng peab sisaldama järgmisi olulisi elemente:
|
||||
|
||||
**Lõpptingimuste Mitmekesisus**: Rakenda vähemalt kahte erinevat mängu lõppemist viisi:
|
||||
- **Punktipõhine võit**: Mängija saavutab sihtpunktisumma või kogub kindlaid esemeid
|
||||
- **Eludepõhine kaotus**: Mängija kaotab kõik saadaolevad elud või elupunktid
|
||||
- **Eesmärgi täitmine**: Kõik vaenlased alistatud, kindlad esemed kogutud või eesmärgid saavutatud
|
||||
- **Ajapõhine**: Mäng lõpeb pärast määratud kestust või taimer jõuab nulli
|
||||
|
||||
**Taaskäivitamise Funktsionaalsus**:
|
||||
- **Mänguoleku puhastamine**: Eemalda kõik varasemad mänguobjektid ja lähtesta muutujad
|
||||
- **Süsteemide uuesti initsialiseerimine**: Alusta uuesti uute mängija näitajate, vaenlaste ja eesmärkidega
|
||||
- **Kasutajasõbralikud juhised**: Paku selged juhised mängu taaskäivitamiseks
|
||||
|
||||
**Mängija Tagasiside**:
|
||||
- **Võiduteated**: Tähista mängija saavutusi positiivse tagasisidega
|
||||
- **Kaotusteated**: Paku julgustavaid sõnumeid, mis motiveerivad uuesti mängima
|
||||
- **Edenemise näitajad**: Näita jooksvaid skoori, elusid või eesmärgi olekut
|
||||
|
||||
### Mänguideed ja Inspiratsioon
|
||||
|
||||
Vali üks järgmistest mängukontseptidest või loo oma:
|
||||
|
||||
#### 1. Konsooli seiklusmäng
|
||||
Loo tekstipõhine seiklus koos võitlusmehhaanikaga:
|
||||
|
||||
```
|
||||
Hero> Strikes with broadsword - orc takes 3p damage
|
||||
Orc> Hits with club - hero takes 2p damage
|
||||
Orc> Hits with club - hero takes 2p damage
|
||||
Hero> Kicks - orc takes 1p damage
|
||||
Game> Orc is defeated - Hero collects 2 coins
|
||||
Game> ****No more monsters, you have conquered the evil fortress****
|
||||
```
|
||||
|
||||
## Hindamiskriteeriumid
|
||||
**Olulised funktsioonid rakendamiseks:**
|
||||
- **Pöördepõhine võitlus** erinevate ründevõimalustega
|
||||
- **Elupunktid** nii mängijale kui vaenlastele
|
||||
- **Varustussüsteem** müntide või esemete kogumiseks
|
||||
- **Mitmed vaenlase tüübid** erineva raskusastmega
|
||||
- **Võidu tingimus** kui kõik vaenlased on alistatud
|
||||
|
||||
#### 2. Kogumismäng
|
||||
- **Eesmärk**: Kogu kindlaid esemeid, vältides takistusi
|
||||
- **Lõpptingimused**: Saavuta sihtkogus või kaota kõik elud
|
||||
- **Edenemine**: Esmed muutuvad raskemini kättesaadavaks mängu edenedes
|
||||
|
||||
#### 3. Puslemäng
|
||||
- **Eesmärk**: Lahenda järjest keerukamaid mõistatusi
|
||||
- **Lõpptingimused**: Lõpeta kõik tasemed või kasuta ära kõik käigud/taimer
|
||||
- **Taaskäivitamine**: Lähtesta edusammud ja alusta esimesest tasemest uuesti
|
||||
|
||||
#### 4. Kaitsemäng
|
||||
- **Eesmärk**: Kaitse oma baasi vaenlaste lainete eest
|
||||
- **Lõpptingimused**: Elu kõik lained üle (võit) või baas hävib (kaotus)
|
||||
- **Edenemine**: Vaenlaste lained muutuvad raskemaks ja arvukamaks
|
||||
|
||||
## Rakendamisjuhised
|
||||
|
||||
### Algus
|
||||
|
||||
1. **Plaani oma mängudisaini**:
|
||||
- Joonista põhiline mängutsükkel
|
||||
- Määra oma lõpptingimused selgelt
|
||||
- Tuvasta, millised andmed tuleb taaskäivitamisel lähtestada
|
||||
|
||||
2. **Sea üles projekti struktuur**:
|
||||
```
|
||||
my-game/
|
||||
├── index.html
|
||||
├── style.css
|
||||
├── game.js
|
||||
└── README.md
|
||||
```
|
||||
|
||||
3. **Loo oma põhimängutsükkel**:
|
||||
- Initsialiseeri mänguolek
|
||||
- Tööta kasutajasisendiga
|
||||
- Uuenda mänguloogikat
|
||||
- Kontrolli lõpptingimusi
|
||||
- Kuvada jooksvat olekut
|
||||
|
||||
### Tehnilised Nõuded
|
||||
|
||||
**Kasuta kaasaegset JavaScripti**:
|
||||
- Rakenda muutujate deklareerimisel `const` ja `let`
|
||||
- Kasuta noolefunktsioone, kus sobib
|
||||
- Rakenda ES6+ omadusi nagu templaatstringid ja destruktureerimine
|
||||
|
||||
**Sündmuspõhine Arhitektuur**:
|
||||
- Loo sündmuste töötlejad kasutajaliidese interaktsioonide jaoks
|
||||
- Rakenda mänguoleku muutusi sündmuste kaudu
|
||||
- Kasuta sündmuse kuulajaid taaskäivitamise funktsionaalsuseks
|
||||
|
||||
**Puhtakoodi Praktikad**:
|
||||
- Kirjuta funktsioonid ühe ülesandega
|
||||
- Kasuta kirjeldavaid muutujate ja funktsioonide nimesid
|
||||
- Lisa kommentaare, mis selgitavad mänguloogikat ja reegleid
|
||||
- Järjesta kood loogilistesse sektsioonidesse
|
||||
|
||||
## Esitamise Nõuded
|
||||
|
||||
### Esitatud Failid
|
||||
|
||||
1. **Täielikud mängufailid**: Kõik HTML, CSS ja JavaScripti failid, mida mänguks vaja
|
||||
2. **README.md**: Dokumentatsioon, mis selgitab:
|
||||
- Kuidas mängu mängida
|
||||
- Millised lõpptingimused on rakendatud
|
||||
- Juhised taaskäivitamiseks
|
||||
- Spetsiaalsed omadused või mehhaanikad
|
||||
3. **Koodi kommentaarid**: Selged selgitused mänguloogika ja algoritmide kohta
|
||||
|
||||
### Testimise Kontrollnimekiri
|
||||
|
||||
Enne esitmist veendu, et su mäng:
|
||||
|
||||
- [ ] **Jookseb ilma vigadeta** brauseri konsoolis
|
||||
- [ ] **Rakendab mitu lõpptingimust** nagu nõutud
|
||||
- [ ] **Taaskäivitub korralikult** ja puhastab oleku
|
||||
- [ ] **Annavad mängijale selget tagasisidet** mängu oleku kohta
|
||||
- [ ] **Kasutab kaasaegset JavaScripti** süntaksit ja parimaid tavasid
|
||||
- [ ] **Sisaldab põhjalikku dokumentatsiooni** README.md-s
|
||||
|
||||
## Hindamisjuhend
|
||||
|
||||
| Kriteerium | Suurepärane (4) | Hea (3) | Arenguaste (2) | Algus (1) |
|
||||
|------------|-----------------|---------|----------------|-----------|
|
||||
| **Mängu funktsionaalsus** | Täielik mäng mitme lõpptingimusega, sujuva taaskäivitusprotsessiga ja hästi lihvitud mängukogemusega | Täielik mäng, baastasemel lõpptingimused ja toimiv taaskäivitamine | Osaline mäng, mõned lõpptingimused rakendatud, taaskäivitamisel väikesed vead | Mittetäielik mäng piiratud funktsionaalsusega ja oluliste vigadega |
|
||||
| **Koodi kvaliteet** | Puhas, hästi organiseeritud kood kaasaegsete JavaScripti praktikatega, põhjalike kommentaaridega ja suurepärase struktuuriga | Hea koodi organiseerimine kaasaegse süntaksiga, piisavate kommentaaridega ja selge ülesehitusega | Põhiline koodi organiseerimine, mõned kaasaegsed praktikad, minimaalsed kommentaarid | Kehv koodi organiseerimine, ajale jalgu jäänud süntaks, kommentaarideta ja struktuur puudulik |
|
||||
| **Kasutajakogemus** | Intuitiivne mäng koos selgete juhiste, suurepärase tagasiside ja kaasahaarava lõpu/taaskäivitus kogemusega | Hea mäng koos piisavate juhiste ja tagasisidega, toimiv lõpp/taaskäivitus | Baastasemel mäng, minimaalsete juhistega, piiratud tagasiside mänguoleku kohta | Segane mäng, ebaselged juhised ja halb kasutajate tagasiside |
|
||||
| **Tehniline rakendus** | Näitab mänguarenduse kontseptsioonide, sündmuste käsitlemise ja oleku haldamise valdamist | Tugev arusaam mängukontseptsioonidest hea rakendusega | Põhiline arusaam ja vastuvõetav rakendus | Piiratud arusaam ja kehv rakendus |
|
||||
| **Dokumentatsioon** | Põhjalik README koos selgete juhiste, hästi dokumenteeritud koodi ja põhjalike testimisandmetega | Hea dokumentatsioon koos selgete juhiste ja piisavate kommentaaridega | Põhjalik dokumentatsioon minimaalse juhistete ja kommentaaridega | Kehv või puuduv dokumentatsioon |
|
||||
|
||||
### Hindamisskaala
|
||||
- **Suurepärane (16-20 punkti)**: Ületab ootusi loominguliste omaduste ja lihvitud rakendusega
|
||||
- **Hea (12-15 punkti)**: Vastab kõigile nõuetele korraliku täitmisega
|
||||
- **Arengujärgne (8-11 punkti)**: Vastab enamikele nõuetele väikeste puudustega
|
||||
- **Algus (4-7 punkti)**: Vastab mõnele nõudele, kuid vajab olulist parandamist
|
||||
|
||||
## Täiendavad Õppematerjalid
|
||||
|
||||
- [MDN mänguarenduse juhend](https://developer.mozilla.org/en-US/docs/Games)
|
||||
- [JavaScript-i mänguarenduse õpikud](https://developer.mozilla.org/en-US/docs/Games/Tutorials)
|
||||
- [Canvas API dokumentatsioon](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API)
|
||||
- [Mängudisaini põhimõtted](https://www.gamasutra.com/blogs/)
|
||||
|
||||
| Kriteerium | Näidislik | Piisav | Vajab parandamist |
|
||||
| ---------- | --------------------- | -------------------------- | -------------------------- |
|
||||
| | täismäng on esitatud | mäng on osaliselt esitatud | osaline mäng sisaldab vigu |
|
||||
> 💡 **Kasulik näpunäide**: Alusta lihtsaga ja lisa funktsioone järk-järgult. Hästi lihvitud lihtne mäng on parem kui keerukas vigadega mäng!
|
||||
|
||||
---
|
||||
|
||||
**Lahtiütlus**:
|
||||
See dokument on tõlgitud, kasutades AI tõlketeenust [Co-op Translator](https://github.com/Azure/co-op-translator). Kuigi püüame tagada täpsust, palun arvestage, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Algne dokument selle algses keeles tuleks lugeda autoriteetseks allikaks. Olulise teabe puhul on soovitatav kasutada professionaalset inimtõlget. Me ei vastuta selle tõlke kasutamisest tulenevate arusaamatuste või valede tõlgenduste eest.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**Vastutusest vabastamine**:
|
||||
See dokument on tõlgitud kasutades tehisintellekti tõlketeenust [Co-op Translator](https://github.com/Azure/co-op-translator). Kuigi me püüame täpsust, tuleb arvestada, et automatiseeritud tõlked võivad sisaldada vigu või ebatäpsusi. Algne dokument selle emakeeles tuleks pidada autoriteetseks allikaks. Olulise teabe puhul soovitatakse kasutada professionaalset inimtõlget. Me ei vastuta selle tõlke kasutamisest tulenevate arusaamatuste või valesti mõistmiste eest.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,27 +1,168 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "474f3ab1ee755ca980fc9104a0316e17",
|
||||
"translation_date": "2025-10-11T12:07:54+00:00",
|
||||
"original_hash": "efb01fcafd2ef40c593a6e662fc938a8",
|
||||
"translation_date": "2026-01-08T09:33:06+00:00",
|
||||
"source_file": "7-bank-project/2-forms/assignment.md",
|
||||
"language_code": "et"
|
||||
}
|
||||
-->
|
||||
# Kujunda oma pangarakendus
|
||||
# Stiilista oma panga rakendus kaasaegse CSS-iga
|
||||
|
||||
## Projekti ülevaade
|
||||
|
||||
Muuda oma funktsionaalne pangarakendus visuaalselt köitvaks, professionaalse väljanägemisega veebirakenduseks, kasutades kaasaegseid CSS-tehnikaid. Sa lood ühtse disainisüsteemi, mis parandab kasutajakogemust, säilitades samal ajal ligipääsetavuse ja reageeriva disaini põhimõtted.
|
||||
|
||||
See ülesanne seab sulle väljakutse rakendada kaasaegseid veebidisaini mustreid, realiseerida järjepidev visuaalne identiteet ning luua liides, mida kasutajad leiavad nii atraktiivseks kui ka intuitiivseks navigeerida.
|
||||
|
||||
## Juhised
|
||||
|
||||
Loo uus `styles.css` fail ja lisa sellele viide oma praegusesse `index.html` faili. Uues CSS-failis lisa kujundus, et *Sisselogimise* ja *Töölaud* lehed näeksid välja kenad ja korrastatud. Proovi luua värviteema, et anda oma rakendusele unikaalne bränding.
|
||||
### Samm 1: Seadista oma stiilileht
|
||||
|
||||
**Loo oma CSS aluspõhi:**
|
||||
|
||||
1. **Loo** uus fail nimega `styles.css` oma projekti juurkaustas
|
||||
2. **Seo** stiilileht oma `index.html` failiga:
|
||||
```html
|
||||
<link rel="stylesheet" href="styles.css">
|
||||
```
|
||||
|
||||
3. **Alusta** CSS lähtestuse ja kaasaegsete vaikimisi seadistustega:
|
||||
```css
|
||||
/* Modern CSS reset and base styles */
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
||||
line-height: 1.6;
|
||||
color: #333;
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### Samm 2: Disainisüsteemi nõuded
|
||||
|
||||
**Rakenda need olulised disainielemendid:**
|
||||
|
||||
#### Värvipalett
|
||||
- **Põhivärv**: Vali professionaalne värv nuppudele ja esiletõstmiseks
|
||||
- **Teisene värv**: Komplementeeriv toon aktsentide ja teiseste toimingute jaoks
|
||||
- **Neutraalvärvid**: Hallid teksti, piiride ja taustade jaoks
|
||||
- **Õnnestumise/Tõrke värvid**: Roheline õnnestumise olekute, punane tõrgete jaoks
|
||||
|
||||
#### Tüpograafia
|
||||
- **Pealkirjade hierarhia**: Selge erinevus H1, H2 ja H3 elementide vahel
|
||||
- **Põhitekst**: Loetav fondisuurus (vähemalt 16px) ja sobiv reavahe
|
||||
- **Vormide sildid**: Selge ja ligipääsetav tekstistiil
|
||||
|
||||
#### Paigutus ja vahed
|
||||
- **Järjepidev vahe**: Kasuta vaheteskaalat (8px, 16px, 24px, 32px)
|
||||
- **Võrgu süsteem**: Korraldatud paigutus vormide ja sisulõikude jaoks
|
||||
- **Reageeriv disain**: Mobiilist lähtuv lähenemine murdepunktidega
|
||||
|
||||
### Samm 3: Komponentide stiilimine
|
||||
|
||||
**Stiilista need konkreetsed komponendid:**
|
||||
|
||||
#### Vormid
|
||||
- **Sisendväljad**: Professionaalsed piirid, fookuse olekud ja valideerimise stiilid
|
||||
- **Nupud**: Hover-efektid, keelatud olekud ja laadimise indikaatorid
|
||||
- **Sildid**: Selge positsioneerimine ja kohustuslike väljade indikaatorid
|
||||
- **Tõrketeated**: Nähtav tõrke stiil ja abistavad sõnumid
|
||||
|
||||
#### Navigeerimine
|
||||
- **Päis**: Puhtalt kujundatud ja bränditud navigeerimisala
|
||||
- **Lingid**: Selged hover-olekud ja aktiivsed indikaatorid
|
||||
- **Logo/Pealkiri**: Eriline brändinguelement
|
||||
|
||||
#### Sisu alad
|
||||
- **Lõigud**: Selge visuaalne eristus erinevate alade vahel
|
||||
- **Kaardid**: Kaardipõhiste paigutuste korral lisa varje ja piire
|
||||
- **Taustad**: Sobiv valge ruumi ja õrnade taustade kasutus
|
||||
|
||||
> Näpunäide: vajadusel võid HTML-i muuta ja lisada uusi elemente ja klasse.
|
||||
### Samm 4: Täiendavad funktsioonid (valikuline)
|
||||
|
||||
**Kaalu nende arenenud funktsioonide rakendamist:**
|
||||
- **Tume režiim**: Lüliti hele ja tume teema vahel
|
||||
- **Animatsioonid**: Õrnad üleminekud ja mikrointeraktsioonid
|
||||
- **Laadimise olekud**: Visuaalne tagasiside vormi esitamisel
|
||||
- **Reageerivad pildid**: Optimeeritud pildid erinevate ekraanisuuruste jaoks
|
||||
|
||||
## Disaini inspiratsioon
|
||||
|
||||
**Kaasaegse pangarakenduse omadused:**
|
||||
- **Puhas, minimalistlik disain** rohke valge ruumiga
|
||||
- **Professionaalsed värviskeemid** (sinised, rohelised või peened neutraalsed toonid)
|
||||
- **Selge visuaalne hierarhia** silmapaistvate üleskutse nuppudega
|
||||
- **Ligipääsetavad kontrastsussuhted** WCAG juhistega kooskõlas
|
||||
- **Mobiilile reageerivad paigutused**, mis töötavad kõigil seadmetel
|
||||
|
||||
## Tehnilised nõuded
|
||||
|
||||
### CSS organiseerimine
|
||||
```css
|
||||
/* 1. CSS Custom Properties (Variables) */
|
||||
:root {
|
||||
--primary-color: #007bff;
|
||||
--secondary-color: #6c757d;
|
||||
/* Add more variables */
|
||||
}
|
||||
|
||||
/* 2. Base Styles */
|
||||
/* Reset, typography, general elements */
|
||||
|
||||
/* 3. Layout */
|
||||
/* Grid, flexbox, positioning */
|
||||
|
||||
/* 4. Components */
|
||||
/* Forms, buttons, cards */
|
||||
|
||||
/* 5. Utilities */
|
||||
/* Helper classes, responsive utilities */
|
||||
|
||||
/* 6. Media Queries */
|
||||
/* Responsive breakpoints */
|
||||
```
|
||||
|
||||
### Ligipääsetavuse nõuded
|
||||
- **Värvikontrast**: Tagada vähemalt 4.5:1 suhe tavalise teksti jaoks
|
||||
- **Fookuse indikaatorid**: Nähtavad fookuse olekud klaviatuuriga navigeerimisel
|
||||
- **Vormisildid**: Nõuetekohaselt seotud sisendväljaga
|
||||
- **Reageeriv disain**: Kasutatav ekraanidel laiusega 320px kuni 1920px
|
||||
|
||||
## Hindamiskriteeriumid
|
||||
|
||||
| Kriteerium | Silmapaistev | Piisav | Vajab parandamist |
|
||||
| ---------- | --------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
|
||||
| | Kõik lehed näevad välja puhtad ja loetavad, ühtse värviteemaga ning erinevad sektsioonid on selgelt esile toodud. | Lehed on kujundatud, kuid puudub teema või sektsioonid pole selgelt eraldatud. | Lehtedel puudub kujundus, sektsioonid on segamini ja teave on raskesti loetav. |
|
||||
| Kriteerium | Silmapaistev (A) | Hea (B) | Arenev (C) | Parandamist vajav (F) |
|
||||
|------------|------------------|---------|------------|-----------------------|
|
||||
| **Disainisüsteem** | Rakendab terviklikku disainisüsteemi järjepidevate värvide, tüpograafia ja vahedega kogu ulatuses | Kasutab järjepidevat stiili selgete disainimustrite ja hea visuaalse hierarhiaga | Põhiline stiilimine mõnede järjepidevuse probleemide või puuduvate disainielementidega | Vähene stiilimine ebaühtlaste või vastuoluliste disainivalikutega |
|
||||
| **Kasutajakogemus** | Loob intuitiivse, professionaalse liidese hea kasutusmugavuse ja visuaalse atraktiivsusega | Tagab hea kasutajakogemuse selge navigeerimise ja loetava sisuga | Põhiline kasutatavus, vajab mõningaid UX parandusi | Kehv kasutatavus, navigeerimine või lugemine keeruline |
|
||||
| **Tehniline teostus** | Kasutab kaasaegseid CSS-tehnikaid, organiseeritud koodi ja parimaid tavasid | Rakendab CSS-i efektiivselt hea organisatsiooni ja sobivate meetoditega | CSS töötab korrektsete funktsioonidega, kuid võib puududa korralik organiseeritus või kaasaegsed lähenemised | Kehv CSS-i teostus tehniliste probleemide või brauserite ühilduvusega |
|
||||
| **Reageeriv disain** | Täielikult reageeriv disain, mis toimib hästi kõigil seadmete suurustel | Hea reageeriv käitumine, mõne väikese probleemiga mõnedel ekraanisuurustel | Põhiline reageeriv teostus, mõnede paigutusprobleemidega | Puudub reageerivus või olulised probleemid mobiilseadmetel |
|
||||
| **Ligipääsetavus** | Vastab WCAG juhistele suurepärase klaviatuuriga navigeerimise ja ekraanilugerite toega | Head ligipääsetavuse praktikad korraliku kontrasti ja fookuse indikaatoritega | Põhilised ligipääsetavuse kaalutlused, mõned elemendid puuduvad | Kehv ligipääsetavus, raskused erivajadustega kasutajatele |
|
||||
|
||||
## Esitamise juhised
|
||||
|
||||
**Esituses peab olema:**
|
||||
- **styles.css**: Sinu täielik stiilileht
|
||||
- **Uuendatud HTML**: Kõik tehtud HTML muudatused
|
||||
- **Ekraanipildid**: Kujutised sinu disainist töölaual ja mobiilis
|
||||
- **README**: Lühike kirjeldus sinu disainivalikutest ja värvipaletist
|
||||
|
||||
**Boonuspunktid**:
|
||||
- **CSS kohandatud omadused** hooldatava teemade toetuseks
|
||||
- **Täpsemad CSS funktsioonid** nagu Grid, Flexbox või CSS animatsioonid
|
||||
- **Jõudlus kaalutlused** nagu optimeeritud CSS ja minimaalne failisuurus
|
||||
- **Mitme brauseri testimine** tagamaks ühilduvus erinevates brauserites
|
||||
|
||||
> 💡 **Pro nõuanne**: Alusta esmalt mobiilidisainist ja seejärel täiusta suuremate ekraanide jaoks. See mobiilist lähtuv lähenemine tagab, et sinu rakendus töötab hästi kõikidel seadmetel ja järgib kaasaegseid veebiarenduse parimaid tavasid.
|
||||
|
||||
---
|
||||
|
||||
**Lahtiütlus**:
|
||||
See dokument on tõlgitud AI tõlketeenuse [Co-op Translator](https://github.com/Azure/co-op-translator) abil. Kuigi püüame tagada täpsust, palume arvestada, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Algne dokument selle algses keeles tuleks pidada autoriteetseks allikaks. Olulise teabe puhul soovitame kasutada professionaalset inimtõlget. Me ei vastuta selle tõlke kasutamisest tulenevate arusaamatuste või valesti tõlgenduste eest.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**Vastutusest loobumine**:
|
||||
See dokument on tõlgitud, kasutades tehisintellekti tõlketeenust [Co-op Translator](https://github.com/Azure/co-op-translator). Kuigi püüame tagada täpsust, arvestage palun, et automatiseeritud tõlked võivad sisaldada vigu või ebatäpsusi. Originaaldokument sinu emakeeles tuleks pidada autoriteetseks tõendusmaterjaliks. Olulise teabe korral soovitatakse professionaalset inimtõlget. Me ei vastuta selle tõlke kasutamisest tulenevate arusaamatuste või valesti mõistmiste eest.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,29 +1,144 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "a4abf305ede1cfaadd56a8fab4b4c288",
|
||||
"translation_date": "2025-10-11T12:04:56+00:00",
|
||||
"original_hash": "d0a02cb117e91a5b5f24178080068a3d",
|
||||
"translation_date": "2026-01-08T09:40:03+00:00",
|
||||
"source_file": "7-bank-project/3-data/assignment.md",
|
||||
"language_code": "et"
|
||||
}
|
||||
-->
|
||||
# Refaktoreeri ja kommenteeri oma kood
|
||||
# Koodi ümberkorraldamise ja dokumenteerimise ülesanne
|
||||
|
||||
## Õpieesmärgid
|
||||
|
||||
Selle ülesande täitmisega harjutate olulisi tarkvaraarenduse oskusi, mida professionaalsed arendajad iga päev kasutavad. Õpite organiseerima koodi hooldatavuse tagamiseks, vähendama duplikaate abstraktsiooni abil ja dokumenteerima oma tööd tulevaste arendajate (kaasa arvatud teie enda) jaoks!
|
||||
|
||||
Puhtal, hästi dokumenteeritud koodil on reaalmaailma veebiarendusprojektides suur tähtsus, kus mitu arendajat teeb koostööd ja koodibaasid arenevad ajas.
|
||||
|
||||
## Ülesande ülevaade
|
||||
|
||||
Teie pangarakenduse `app.js` fail on oluliselt kasvanud sisselogimise, registreerimise ja juhtpaneeli funktsionaalsusega. On aeg see kood ümber korraldada professionaalse arendustava abil, et parandada loetavust, hooldatavust ja vähendada duplikatsiooni.
|
||||
|
||||
## Juhised
|
||||
|
||||
Kui sinu koodibaas kasvab, on oluline koodi regulaarselt refaktoreerida, et see jääks aja jooksul loetavaks ja hallatavaks. Lisa kommentaare ja refaktoreeri oma `app.js`, et parandada koodi kvaliteeti:
|
||||
Muuda oma praegust `app.js` koodi, rakendades neid kolme põhilist ümberkorraldamise tehnikat:
|
||||
|
||||
### 1. Väljavõtte konfiguratsiooni konstantid
|
||||
|
||||
**Ülesanne**: Loo faili alguses konfiguratsioonilõik taaskasutatavate konstanditega.
|
||||
|
||||
**Rakendamise juhised:**
|
||||
- Väljavõta serveri API baasu URL (hetkel mitmes kohas kõvakodeeritud)
|
||||
- Loo konstandid veateadete jaoks, mis esinevad mitmes funktsioonis
|
||||
- Kaalu marsruutide teede ja elementide ID-de väljavõtmist, mida kasutatakse korduvalt
|
||||
|
||||
**Näidisstruktuur:**
|
||||
```javascript
|
||||
// Konfiguratsioonikonstandid
|
||||
const API_BASE_URL = 'http://localhost:5000/api';
|
||||
const ROUTES = {
|
||||
LOGIN: '/login',
|
||||
DASHBOARD: '/dashboard'
|
||||
};
|
||||
```
|
||||
|
||||
### 2. Loo ühine päringufunktsioon
|
||||
|
||||
**Ülesanne**: Ehita taaskasutatav `sendRequest()` funktsioon, mis eemaldab dubleerunud koodi `createAccount()` ja `getAccount()` vahel.
|
||||
|
||||
**Nõuded:**
|
||||
- Toeta nii GET kui ka POST päringuid
|
||||
- Kaasa korralik veahaldus
|
||||
- Toeta erinevaid URL lõpp-punkte
|
||||
- Võta vastu valikuline päringu keha andmed
|
||||
|
||||
**Funktsiooni parameetrite juhised:**
|
||||
```javascript
|
||||
async function sendRequest(endpoint, method = 'GET', data = null) {
|
||||
// Teie rakendus siin
|
||||
}
|
||||
```
|
||||
|
||||
### 3. Lisa professionaalne koodi dokumentatsioon
|
||||
|
||||
**Ülesanne**: Dokumenteeri oma kood selgete, abistavate kommentaaridega, mis selgitavad loogika "miks"-i.
|
||||
|
||||
**Dokumentatsioonistandardid:**
|
||||
- Lisa funktsioonidele dokumentatsioon nende eesmärgi, parameetrite ja tagastuste kohta
|
||||
- Sisesta inline kommentaare keerulistele loogikatele või ärireeglitele
|
||||
- Lisa seotud funktsioonidele jaotiste päised
|
||||
- Selgita mitteselgeid koodimustreid või brauseripõhiseid lahendusi
|
||||
|
||||
**Näidis dokumenteerimisstiil:**
|
||||
```javascript
|
||||
/**
|
||||
* Authenticates user and redirects to dashboard
|
||||
* @param {Event} event - Form submission event
|
||||
* @returns {Promise<void>} - Resolves when login process completes
|
||||
*/
|
||||
async function login(event) {
|
||||
// Takista vormi vaikimisi saatmist, et käsitleda seda JavaScriptiga
|
||||
event.preventDefault();
|
||||
|
||||
// Sinu teostus...
|
||||
}
|
||||
```
|
||||
|
||||
## Edukuse kriteeriumid
|
||||
|
||||
Sinu ümberkorraldatud kood peaks demonstreerima järgmisi professionaalse arenduse tavasid:
|
||||
|
||||
### Väljapaistev rakendus
|
||||
- ✅ **Konstandid**: Kõik maagilised stringid ja URL-id on väljavõetud selgelt nimetatud konstantidesse
|
||||
- ✅ **DRY põhimõte**: Ühine päringulogiika on koondatud taaskasutatavasse `sendRequest()` funktsiooni
|
||||
- ✅ **Dokumentatsioon**: Funktsioonidel on selged JSDoc kommentaarid eesmärgi ja parameetritega
|
||||
- ✅ **Organisatsioon**: Kood on loogiliselt grupeeritud jaotiste päiste ja ühtlase vormindusega
|
||||
- ✅ **Veahaldus**: Täiustatud veahaldus uue päringufunktsiooni abil
|
||||
|
||||
### Piisav rakendus
|
||||
- ✅ **Konstandid**: Enamik korduvatest väärtustest on väljavõetud, mõned kõvakodeeritud väärtused jäävad alles
|
||||
- ✅ **Faktorisatsioon**: Loodud on põhinet `sendRequest()` funktsioon, kuid see ei pruugi katta kõiki erandjuhtumeid
|
||||
- ✅ **Kommentaarid**: Olulisemad funktsioonid on dokumenteeritud, kuigi mõned selgitused võiksid olla põhjalikumad
|
||||
- ✅ **Loetavus**: Kood on üldiselt hästi organiseeritud, kuid mõnes kohas on arenguruumi
|
||||
|
||||
### Vajab parandamist
|
||||
- ❌ **Konstandid**: Paljud maagilised stringid ja URL-id on failis kõvakodeeritud
|
||||
- ❌ **Duplikaat**: Sarnaste funktsioonide vahel on märkimisväärne koodi kordus
|
||||
- ❌ **Dokumentatsioon**: Puuduvad või ebapiisavad kommentaarid, mis ei selgita koodi eesmärki
|
||||
- ❌ **Organisatsioon**: Koodil puudub selge struktuur ja loogiline grupeerimine
|
||||
|
||||
## Testi oma ümberkorraldatud koodi
|
||||
|
||||
Pärast ümberkorraldamist veendu, et sinu pangarakendus töötab endiselt korrektselt:
|
||||
|
||||
1. **Testi kõiki kasutajate vooge**: Registreerimine, sisselogimine, juhtpaneeli kuvamine ja veahaldus
|
||||
2. **Kontrolli API päringuid**: Veendu, et `sendRequest()` funktsioon töötab nii konto loomisel kui ka pärimisel
|
||||
3. **Testi veastseisundeid**: Proovi vigaste kasutajatunnuste ja võrguvigadega
|
||||
4. **Vaata konsooli väljundit**: Veendu, et ümberkorraldamise käigus uusi vigu ei tekkinud
|
||||
|
||||
## Esitamisjuhised
|
||||
|
||||
Esita oma ümberkorraldatud `app.js` fail koos:
|
||||
- Selgete jaotiste päistega, mis organiseerivad erineva funktsionaalsuse
|
||||
- Ühtlase koodi vormingu ja taande kasutamisega
|
||||
- Täieliku JSDoci dokumentatsiooniga kõigi funktsioonide kohta
|
||||
- Lühikese kommentaariga faili alguses, mis selgitab sinu ümberkorralduslähenemist
|
||||
|
||||
**Boonusväljakutse**: Koosta lihtne koodi dokumenteerimisfail (`CODE_STRUCTURE.md`), mis selgitab sinu rakenduse arhitektuuri ja kuidas erinevad funktsioonid töötavad koos.
|
||||
|
||||
- Ekstraheerige konstandid, näiteks serveri API põhiaadress
|
||||
- Ühenda sarnane kood: näiteks loo funktsioon `sendRequest()`, et koondada kood, mida kasutatakse nii `createAccount()` kui ka `getAccount()` funktsioonides
|
||||
- Reorganiseeri kood, et see oleks lihtsamini loetav, ja lisa kommentaare
|
||||
## Reaalmaailma seos
|
||||
|
||||
## Hindamiskriteeriumid
|
||||
See ülesanne peegeldab seda tüüpi koodi hooldust, mida professionaalsed arendajad regulaarselt teevad. Tööstuslikes tingimustes:
|
||||
- **Koodikontrollid** hindavad loetavust ja hooldatavust nagu selles ülesandes
|
||||
- **Tehniline võlg** koguneb, kui koodi regulaarselt ümber ei korraldata ega dokumenteerita
|
||||
- **Meeskonnatöö** sõltub selgest, hästi dokumenteeritud koodist, mida uued meeskonnaliikmed mõistavad
|
||||
- **Tõrgete parandamine** on palju lihtsam hästi organiseeritud koodibaasides koos korralike abstraktsioonidega
|
||||
|
||||
| Kriteerium | Näidislik | Piisav | Vajab parandamist |
|
||||
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------- |
|
||||
| | Kood on kommenteeritud, hästi organiseeritud erinevatesse sektsioonidesse ja kergesti loetav. Konstandid on ekstraheeritud ja loodud on faktoriseeritud funktsioon `sendRequest()`. | Kood on puhas, kuid seda saab veel parandada rohkemate kommentaaride, konstantide ekstraheerimise või faktoriseerimisega. | Kood on segane, kommenteerimata, konstandid pole ekstraheeritud ja kood pole faktoriseeritud. |
|
||||
Oskused, mida siin harjutad — konstandite väljavõtmine, duplikatsiooni kõrvaldamine ja selge dokumentatsiooni kirjutamine — on professionaalse tarkvaraarenduse aluseks.
|
||||
|
||||
---
|
||||
|
||||
**Lahtiütlus**:
|
||||
See dokument on tõlgitud AI tõlketeenuse [Co-op Translator](https://github.com/Azure/co-op-translator) abil. Kuigi püüame tagada täpsust, palume arvestada, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Algne dokument selle algses keeles tuleks pidada autoriteetseks allikaks. Olulise teabe puhul soovitame kasutada professionaalset inimtõlget. Me ei vastuta selle tõlke kasutamisest tulenevate arusaamatuste või valesti tõlgenduste eest.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**Vastutusest loobumine**:
|
||||
See dokument on tõlgitud tehisintellekti tõlketeenuse [Co-op Translator](https://github.com/Azure/co-op-translator) abil. Kuigi püüame tagada tõlke täpsust, palun arvestage, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Originaaldokument oma emakeeles on autoriteetne allikas. Tähtsa teabe puhul soovitatakse kasutada professionaalset inimtõlget. Me ei vastuta selle tõlke kasutamisest tekkivate arusaamatuste või valesti mõistmiste eest.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
Loading…
Reference in new issue