TAMK / Tietotekniikka / Ohjelmoinnin syventävät tekniikat 2026
Asenna Rust-työkalut omalle koneellesi: Rust : Getting Started
Tee Cargolla uusi projekti nimeltä events, käännä ja aja:
cargo new events
cd events
cargo run
Tämän kerran kehittelyt ohjelmaan löytyvät hakemistosta 02/events.
Käytiin läpi funktiot (fn), tietuetyypit (struct), luetelmatyypit (enum) ja
optionaaliset tyypit (Option<T>). Päivitettiin events-ohjelma
käyttämään näitä tyyppejä (liittyen kotitehtävään 3, jossa on
myös lisäosio liittyen tapahtumien hakemiseen).
Tämän kerran kehittelyt ohjelmaan löytyvät hakemistosta 03/events.
Jos kirjan PDF:stä kopioidun lähdekoodin sisennykset menevät
ihan sekaisin, voit muotoilla sen uudelleen komennolla cargo fmt
(lisätietoja komennolla cargo help fmt).
Vaihdettiin tapahtumia sisältävä taulukko vektoriin. Luettiin tapahtumien suodattamiseen käytettävä päivämäärä komentoriviparametrista.
Tutkittiin miten käsitellään virhetilanne Result-tyypin avulla.
Tutustuttiin tarkemmin piirteisiin (traits).
Opeteltiin käyttämään Rustin pakkauksia (crates), jotka Cargo lataa crates.io-palvelusta.
Tämän kerran kehittelyt ohjelmaan löytyvät hakemistosta 04/events.
Käsiteltiin Rustin ominaispiirteitä: arvon omistajuus, viitteet arvoihin sekä arvon "lainaaminen" viitteiden avulla.
Lisäksi opeteltiin tekemään yksikkötestejä käyttämällä cfg-asetusattribuuttia sekä test-merkittyjä funktioita.
Tämän kerran kehittelyt löytyvät hakemistosta 05/dates, jossa on malleja
yksikkötesteistä ohjelman tietotyypeille.
Tutkittiin miten ohjelmakoodi jaetaan moduuleihin.
Tehtiin piirre eli trait, jonka kaikki tapahtumantuottajat toteuttavat.
Today-ohjelman perusta löytyy hakemistosta 06/today.
Tutkittiin mihin ohjelman asetustiedosto pitäisi laittaa. Tehtiin TOML-muotoinen asetustiedosto ja lisättiin siihen tiedot ohjelman käyttämistä tapahtumatuottajista.
Viikon kehittelyt löytyvät hakemistosta 07. Ohjelma configdirs
kaivelee esille asetustiedostojen oikeat hakemistot
eri käyttöjärjestelmissä (Windows, Linux, macOS). Tästä
saadaan myös uusia osia Today-ohjelmaan.
Tehtiin tietokanta SQLite-ohjelmalla. Tehtiin uusi tapahtumatuottaja, joka lukee tapahtumat tästä tietokannasta. Tietokanta sijoitettiin asetustiedostojen hakemistoon, ja lisättiin sen tiedot asetustiedostoon, jotta Today-ohjelma poimisi sen mukaan muiden tapahtumalähteiden joukkoon.
Kehittelyt löytyvät hakemistosta 08. Kotitehtävässä 8 on tarkoitus
täydentää ratkaisu niin, että tietokantaan lisätyt tapahtumat tulevat
mukaan ohjelman listaukseen.
Rakennettin suodatin sekä Builder-suunnittelumallin mukainen rakentaja sen tekemiseen.
Kehittelyt löytyvät hakemistosta 09. Kotitehtävässä 9 toteutetaan
suodatin, mahdollisesti kuitenkin jollain muulla tavalla kuin tässä esitetyllä.
Lisättiin komentoriviparametrien käsittely käyttäen clap-pakkausta.
Kehittelyt löytyvät hakemistosta 10. Kotitehtävässä 10 lisätään
komentoriviparametrit.
Lisättiin vuosittain toistuvat tapahtumat sekä säännön perusteella mahdollisesti eri päiville osuvat tapahtumat.