Category:Skriptimiskeeled: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Kkarmo (talk | contribs)
Kkarmo (talk | contribs)
No edit summary
 
(10 intermediate revisions by the same user not shown)
Line 20: Line 20:


Arvestuse saamiseks tuleb kummaski plokis edukalt esitada järgnevad tööd:
Arvestuse saamiseks tuleb kummaski plokis edukalt esitada järgnevad tööd:
# Kodutöö (töötav skript koos sinna juurde kuuluva dokumentatsiooniga)
# Kodutöö (töötav skript koos sinna juurde kuuluva dokumentatsiooniga) keskmise hindega vähemalt 6 (vt punkt 2)
# Hinnangud vähemalt kolmele (3) kaastudengi esitatud skriptile
# Hinnangud vähemalt kolmele (3) kaastudengi esitatud skriptile
# Kontrolltöö (kontakttunnis kohapeal, sisaldab mõne kaastudengi töö täiendamist vastavalt õppejõu antud ülesandele)
# Kontrolltöö (kontakttunnis kohapeal, sisaldab mõne kaastudengi töö täiendamist vastavalt õppejõu antud ülesandele)


'''Hea skript (vastavalt 1. loengus kokkulepitule):'''
'''Hea skripti tunnused (1. loengus arutatu põhjal):'''
# On nii lühike ja lihtne kui võimalik
# '''KOHUSTUSLIK''' Skript töötab, täidab eesmärki -- ja ei tee midagi üleliigset
# Teeb seda, mida peab (mitte rohkem ega vähem); käivitub (kui ei käivitu, on hinne automaatselt null)
# '''KOHUSTUSLIK''' Skript sisaldab infot autori ja versiooni kohta (kas on lõplik või ei), viitamine on korrektne
# On mõistlikult kommenteeritud
# Skript on selgelt loetav, vastab headele tavadele (muutujate nimetamine, treppimine, jne)
# Sisaldab arusaadavalt nimetatud muutujaid
# Skript on mõistlikult kommenteeritud ja dokumenteeritud
# Kasutab süsteemi ressursse mõistlikult (nt ei jää tsüklisse)
# Skript reageerib vigadele, ei kuva kasutajale (skripti jaoks) ootamatuid veateateid, katkestab vajadusel töö
# On universaalne (ei sõltu konkreetsest distributsioonist)
# Skripti struktuur on loogiline ja otstarbekas (jagatud funktsioonideks)
# Teeb veakontrolli (nt ei jätka "uisapäisa" tööd pärast ebaõnnestunud toiminguid)
# Skript kasutab süsteemi ressursse (CPU, mälu, ketas, võrk) mõistlikult
# Sisaldab kasutusjuhendit
# Skript tagastab tulemuse (teavitab kasutajat, kuidas läks)
# Peab logi / annab kasutajale toimuva kohta tagasisidet
# Skript on skriptitav -- tagastab veakoodi, ei vaja käivitamisel kasutaja sekkumist
# On parametriseeritav
# Skript on peatatav ja lõpetab töö mõistliku ajaga (või teavitab kasutajat, kui mõni toiming võib kauem aega võtta)
# Skript logib oma tegevusi mõistlikult (või seadistatavalt)
# Skript juhendab kasutajat


Lisaks võiks hea skript olla ka skriptitav, st tagastada väljumiskoodi (exit code) ja mitte vajada tingimata kasutajapoolset interaktiivset sekkumist (võrdle nt parameetrite saamist käsurealt kasutajalt küsimisega pärast käivitamist).
'''Töö edukaks läbimiseks peab teie skript ilma mingi kahtluseta vastama vähemalt kuuele eeltoodud tingimusele.'''


'''Skriptide hindamine'''
'''Skriptide hindamine'''
Line 45: Line 47:
===Tähtajad===
===Tähtajad===


* Bash kodutöö: 14.10.2017
* Bash kodutöö: 13.10.2018
* Bash kodutööde hindamine: 27.10.2017 (13 päeva pärast tööde esitamise tähtaega)
* Bash kodutööde hindamine: 25.10.2018
* Bash kontrolltöö: 28.10.2017
* Bash kontrolltöö: 27.10.2018


* Python kodutöö: 25.11.2017
* Python kodutöö: 11.11.2018
* Python kodutööde hindamine: 08.12.2017
* Python kodutööde hindamine: 22.11.2018
* Python kontrolltöö: 9/10.12.2017
* Python kontrolltöö: 24.11.2018


Viimane võimalus emba-kumba kontrolltööd teha (osavamad jõuavad teha ka mõlemaid) on arvestuse ajal. Soovitan siiski mitte venitada ja teha varem. Kui on soov kontrolltöid teha ülalmainitud kuupäevadest varem, võta õppejõuga kindlasti ühendust vähemalt paar päeva enne vastavat kontakttundi.
Viimane võimalus emba-kumba kontrolltööd teha (osavamad jõuavad teha ka mõlemaid) on arvestuse ajal (lepime kokku hiljem). Soovitan siiski mitte venitada ja teha varem. Kui on soov kontrolltöid teha ülalmainitud kuupäevadest varem, võta õppejõuga kindlasti ühendust vähemalt paar päeva enne vastavat kontakttundi.


==Üldist==
==Üldist==
Line 61: Line 63:
[https://echo360.e-ope.ee/ess/portal/section/2c03d65b-1b99-46be-a0b5-f6226df8d252 Loengusalvestised sügis 2016 (kaugõpe)]
[https://echo360.e-ope.ee/ess/portal/section/2c03d65b-1b99-46be-a0b5-f6226df8d252 Loengusalvestised sügis 2016 (kaugõpe)]


[https://echo360.org.uk/section/689122bc-13cd-47f0-b18f-f0c05ab1c7c9/public Loengusalvestised sügis 2017 (kaugõpe)]
[https://echo360.org.uk/section/689122bc-13cd-47f0-b18f-f0c05ab1c7c9/public Loengusalvestised sügis 2017 (kaugõpe)] -- kuna see ei tööta, vaadake eelmise aasta omi. Sisuliselt ei ole palju muutunud.


[https://i-tee.itcollege.ee/ Virtualiseerimiskeskkond I-Tee]
[https://labnet.itcollege.ee/ Virtualiseerimiskeskkond I-Tee]
 
===Millest alustada?===
#Veendu, et sul on ligipääs I-Tee keskkonnale ja Skriptimiskeelte laborile
#Veendu, et sul on ligipääs Bitbucketi repositooriumile
#Seadista virtuaalmasinas Git (vt punkti "Tööde esitamine")
#Klooni virtuaalmasinasse vastav repositoorium
#Loe kaustast ''bash-1'' faili ''ylesanne.txt''
#Hakka skriptima!
 
Küsimuste või probleemide korral kirjuta kindlasti õppejõule.


===Anna teada, mida aines paremaks võiks teha (keelatud pole ka lihtsalt soovitused/kiitused/laitused===
===Anna teada, mida aines paremaks võiks teha (keelatud pole ka lihtsalt soovitused/kiitused/laitused===
Line 73: Line 85:
Kõik tööd tuleb esitada [https://www.atlassian.com/git/tutorials/ GIT] repositooriumi kaudu.
Kõik tööd tuleb esitada [https://www.atlassian.com/git/tutorials/ GIT] repositooriumi kaudu.


Repositoorium asub siin: [https://bitbucket.org/kkarmo/skriptimiskeeled-2017s]
Repositoorium asub siin: [https://bitbucket.org/kkarmo/skriptimiskeeled-2018s]


Ligipääsu saamiseks saada oma Bitbucketi kasutajanimi/e-posti aadress õppejõule: '''kristjan.karmo [at] itcollege.ee'''
Ligipääsu saamiseks saada oma Bitbucketi kasutajanimi/e-posti aadress õppejõule: '''kristjan.karmo [at] itcollege.ee'''
Line 93: Line 105:
Subject: Skriptimiskeeled: ''[töö nimetus, nt bash 1. kodutöö, Python kontrolltöö vms]''
Subject: Skriptimiskeeled: ''[töö nimetus, nt bash 1. kodutöö, Python kontrolltöö vms]''


Sisusse kirjuta kogu vajalik taustainfo, nt milliste andmetega skripti on testitud, mis töötab, mida võiks edasi arendada jne. Ära unusta repositooriumi linki (võimalikult täpselt õige faili õige versioon).
Sisusse kirjuta kogu vajalik taustainfo, nt milliste andmetega skripti on testitud, kuidas töötab, mida võiks edasi arendada jne. Ära unusta repositooriumi linki (võimalikult täpselt õige faili õige versioon).


Näide:
Näide:
Line 155: Line 167:
</pre>
</pre>


*Skript paigaldab apache2 serveri, kui see puudub
 
*Loob nimelahenduse (lihtsalt /etc/hosts failis)
Skript:
*Kopeerib vaikimisi veebisaidi ja modifitseerib index.html faili sisu vastavalt loodavale lehele
*paigaldab apache2 serveri, kui see puudub
*Abimaterjal [[Virtualhost apache2 näitel]] [[Veebiserveri labor v.2]]
*loob nimelahenduse (lihtsalt /etc/hosts failis)
*kopeerib vaikimisi veebisaidi ja modifitseerib index.html faili sisu vastavalt loodavale lehele (lehe sisus peab leiduma kasutaja sisestatud domeeninimi)
 
Lõpptulemusena peab antud masina pordil 80 vastama värskelt seadistatud veebileht.
 
Abimaterjal [[Virtualhost apache2 näitel]] [[Veebiserveri labor v.2]]





Latest revision as of 16:49, 28 October 2018

Skriptimiskeeled ainekaart

Eesmärk

Õppeaine eesmärk on tutvustada õppijatele skriptimiskeelte vajalikkust korduvate haldustegevuste automatiseerimisel ning arendada õppijate oskuseid serverite ja tööjaamade haldamiseks.

Lühitutvustus

Õppeaines käsitletakse skriptimiskeeli kui ühte töövahendit, mille abil on võimalik süsteemide haldamiseks vajalikke tegevusi efektiivselt ning otstarbekalt sooritada ja automatiseerida. Pikemalt tutvustatakse Bash kooriku programmeerimisvõimalusi ning skriptimiskeelt Python. Põgusalt viidatakse ka teistele skriptimiskeeltele, nt Ruby ja PowerShell. Õppija omandab aine läbimise käigus enamlevinud srkiptimisvahendite esmase kasutusoskuse ja ülevaate tänapäeval kasutatavatest skriptimisvahenditest.

Õpiväljundid

  • Õppija mõistab skriptimise kui töövõtte vajadust ning kasutusvaldkondi.
  • Õppija teab ja tunneb enimkasutatavaid skriptimiskeeli ja nende kasutamisvõimalusi.
  • Õppija oskab kasutada skriptimiskeeli lihtsamate haldustegevuste automatiseerimiseks.
  • Õppija oskab koostada keerulisemaid skripte kasutades selleks erialast kirjandust ja sotsiaalseid keskkondi.

Hinde kujunemine

Iseseisev töö koosneb kahest hinnatavast plokist:

  • Bash
  • Python

Arvestuse saamiseks tuleb kummaski plokis edukalt esitada järgnevad tööd:

  1. Kodutöö (töötav skript koos sinna juurde kuuluva dokumentatsiooniga) keskmise hindega vähemalt 6 (vt punkt 2)
  2. Hinnangud vähemalt kolmele (3) kaastudengi esitatud skriptile
  3. Kontrolltöö (kontakttunnis kohapeal, sisaldab mõne kaastudengi töö täiendamist vastavalt õppejõu antud ülesandele)

Hea skripti tunnused (1. loengus arutatu põhjal):

  1. KOHUSTUSLIK Skript töötab, täidab eesmärki -- ja ei tee midagi üleliigset
  2. KOHUSTUSLIK Skript sisaldab infot autori ja versiooni kohta (kas on lõplik või ei), viitamine on korrektne
  3. Skript on selgelt loetav, vastab headele tavadele (muutujate nimetamine, treppimine, jne)
  4. Skript on mõistlikult kommenteeritud ja dokumenteeritud
  5. Skript reageerib vigadele, ei kuva kasutajale (skripti jaoks) ootamatuid veateateid, katkestab vajadusel töö
  6. Skripti struktuur on loogiline ja otstarbekas (jagatud funktsioonideks)
  7. Skript kasutab süsteemi ressursse (CPU, mälu, ketas, võrk) mõistlikult
  8. Skript tagastab tulemuse (teavitab kasutajat, kuidas läks)
  9. Skript on skriptitav -- tagastab veakoodi, ei vaja käivitamisel kasutaja sekkumist
  10. Skript on peatatav ja lõpetab töö mõistliku ajaga (või teavitab kasutajat, kui mõni toiming võib kauem aega võtta)
  11. Skript logib oma tegevusi mõistlikult (või seadistatavalt)
  12. Skript juhendab kasutajat

Töö edukaks läbimiseks peab teie skript ilma mingi kahtluseta vastama vähemalt kuuele eeltoodud tingimusele.

Skriptide hindamine

  1. Vali välja hinnatav skript (päises peaks olema ära märgitud, et tegu on lõpliku versiooniga). Ära hinda skripti, millel on serveris juba 3 hinnangut (proovi näiteks ls -l | grep kasutaja.txt -- kui on 3 või rohkem tulemust, vali uus)
  2. Hinda skripti vastavalt eeltoodud "hea skripti" tunnustele
  3. Kirjuta hinne (numbrina, mitu punkti on täidetud) ja põhjendus tekstifaili nimega [sinukasutaja]-[skriptiautor].txt (nt kui Kristjan Karmo hindaks Margus Ernitsa skripti, peaks faili nimi olema kkarmo-mernits.txt). Võid kasutada eeskujuna ka juba olemasolevaid hinnanguid.

Tähtajad

  • Bash kodutöö: 13.10.2018
  • Bash kodutööde hindamine: 25.10.2018
  • Bash kontrolltöö: 27.10.2018
  • Python kodutöö: 11.11.2018
  • Python kodutööde hindamine: 22.11.2018
  • Python kontrolltöö: 24.11.2018

Viimane võimalus emba-kumba kontrolltööd teha (osavamad jõuavad teha ka mõlemaid) on arvestuse ajal (lepime kokku hiljem). Soovitan siiski mitte venitada ja teha varem. Kui on soov kontrolltöid teha ülalmainitud kuupäevadest varem, võta õppejõuga kindlasti ühendust vähemalt paar päeva enne vastavat kontakttundi.

Üldist

Loengumaterjalid 2017 kevad

Loengusalvestised sügis 2016 (kaugõpe)

Loengusalvestised sügis 2017 (kaugõpe) -- kuna see ei tööta, vaadake eelmise aasta omi. Sisuliselt ei ole palju muutunud.

Virtualiseerimiskeskkond I-Tee

Millest alustada?

  1. Veendu, et sul on ligipääs I-Tee keskkonnale ja Skriptimiskeelte laborile
  2. Veendu, et sul on ligipääs Bitbucketi repositooriumile
  3. Seadista virtuaalmasinas Git (vt punkti "Tööde esitamine")
  4. Klooni virtuaalmasinasse vastav repositoorium
  5. Loe kaustast bash-1 faili ylesanne.txt
  6. Hakka skriptima!

Küsimuste või probleemide korral kirjuta kindlasti õppejõule.

Anna teada, mida aines paremaks võiks teha (keelatud pole ka lihtsalt soovitused/kiitused/laitused

Skriptimiskeeled aine muudatuste ideed

Tööde esitamine

Kõik tööd tuleb esitada GIT repositooriumi kaudu.

Repositoorium asub siin: [1]

Ligipääsu saamiseks saada oma Bitbucketi kasutajanimi/e-posti aadress õppejõule: kristjan.karmo [at] itcollege.ee

Soovitan I-Tee virtuaalmasinas seadistada repositoorium järgmiste juhendite järgi:

  1. Set up SSH for Git (uut repot seadistades punktid 1-4)
  2. Set your username for Bitbucket Cloud actions (piisab, kui seadistad kasutajanime/meiliaadressi virtuaalmasinas globaalselt)

Valmis töö esitamiseks:

  1. Lisa fail eelkirjeldatud reposse:
    1. cd [kaust, kus esitatav skript asub, nt bash-1]
    2. git add [kasutajanimi.sh]
    3. git commit -m "Bash kodutöö"
    4. git pull Selle sammu käigus tehakse ka merge, sh võib käivituda vim. Väljumiseks :q!
    5. git push
  2. saada õppejõule e-kiri:

To: kristjan.karmo [at] itcollege.ee
Subject: Skriptimiskeeled: [töö nimetus, nt bash 1. kodutöö, Python kontrolltöö vms]

Sisusse kirjuta kogu vajalik taustainfo, nt milliste andmetega skripti on testitud, kuidas töötab, mida võiks edasi arendada jne. Ära unusta repositooriumi linki (võimalikult täpselt õige faili õige versioon).

Näide:

To: kristjan.karmo [at] itcollege.ee
Subject: Skriptimiskeeled: bash 1. kodutöö

Tere

Saadan bashi kodutöö (1. ülesanne). Skript töötab korrektselt, kui kasutaja käsurealt ühtegi parameetrit ei sisesta.
Link koodile: https://wiki.itcollege.ee/index.php/Bash_n%C3%A4ide

Parimat
Toomas Tester
AK99

Bash

Bash loengumaterjal

Loengute videod 2015 kevad Enesetest aine Bash osa eelduse kontrolliks

Materjal, mille läbitöötamine asendab Bash loengutes kaasatöötamist

Kodutööd (vali üks)

Bash Kodutöö 1 - failiteenus

Looge skript, mis jagaks etteantud grupile uue kausta

[sudo] ./jaga.sh KAUST GRUPP <JAGATUD KAUST>

Skript teeb järgnevat:

  • paigaldab samba (kui vaja)
  • loob kausta KAUST (kui vaja)
  • loob grupi GRUPP (kui vaja)
  • lisab grupile sobivad read smb.conf faili ja teeb failiserveri teenusele reload'i

Failiserveri loeng

Veebiserveri loeng

Mõistlik on konfiguratsioonist eelnevalt koopia teha ja muudatused koopiasse sisse viia. Koopiat testitakse testparm korraldusega ja kopeeritakse alles seejäral fail üle.

Tunnis antud näide

Bash kodutöö 2 - veebihosting/veebiteenus

Looge skript, mis looks uue veebkodu

Kasutaja sisestab:

[sudo] ./loo-kodu.sh www.minuveebisait.ee


Skript:

  • paigaldab apache2 serveri, kui see puudub
  • loob nimelahenduse (lihtsalt /etc/hosts failis)
  • kopeerib vaikimisi veebisaidi ja modifitseerib index.html faili sisu vastavalt loodavale lehele (lehe sisus peab leiduma kasutaja sisestatud domeeninimi)

Lõpptulemusena peab antud masina pordil 80 vastama värskelt seadistatud veebileht.

Abimaterjal Virtualhost apache2 näitel Veebiserveri labor v.2


The only way to really learn scripting is to write scripts

Praktika

  • Esimeses praktikumis saavad kõik endale ELab-keskkonna kasutajatunnused ja õigused vastavasse laborisse.


Python

Loengumaterjal ODP vormingus

Lisamaterjal (algajad saavad siit abi isegi siis, kui programmeerimise algõpe jäi puudulikuks)


Python kodutöö

Pythoni kodutöö ülesande leiad õppejõu poolt välja jagatud Bitbucketi repositooriumist.

Skriptimiskeelte varasem materjal

Category:Skriptimiskeeled (arhiiv)

Pages in category "Skriptimiskeeled"

The following 39 pages are in this category, out of 39 total.