Järjestelmäohjelmointia Rustilla, oikein tehtynä
Rust on järjestelmäkieli, joka takaa muistiturvallisuuden ilman roskienkerääjää. Se on Linux-ytimen osien, suorituskykyisten verkkopalvelinten, WebAssembly-ajoympäristöjen ja sulautetun laiteohjelmiston taustalla oleva kieli – kaikkialla, missä sekä oikeellisuus että nopeus ovat tärkeitä. Tässä kokonaisuudessa opitaan Rust alkeista edistyneeseen rinnakkaisuuteen, asynkroniseen I/O:hon ja matalan tason järjestelmätyöhön asti, ja kaikki perustuu täysin kielen todelliseen omistajuusmalliin.
Mitä opitte
Aloitatte Rustin tyyppijärjestelmästä – muuttujista, tietotyypeistä, merkkijonoista, viipaleista, vektoreista ja HashMapseista – ja siirrytte sitten Rustin erityispiirteisiin: omistajuuteen, lainaamiseen ja elinaikoihin. Sen jälkeen perehdytte funktioihin ja sulkeumiin, iteraattoreihin, geneerisiin tyyppeihin ja trait-rajoitteisiin sekä edistyneeseen hahmonsovitukseen. Käytännön moduuleissa käsitellään asynkronista ohjelmointia Tokion avulla, CLI-työkalujen rakentamista clap-kirjastolla, verkkopalveluita Axumilla, tietokantayhteyksiä sqlx-kirjastolla, serialisointia Serdellä, gRPC-palveluita tonic-kirjastolla ja REST-rajapintojen suunnittelua. Edistyneemmillä tasoilla kirjoitatte makroja, käytätte unsafe Rustia harkitusti, kutsutte vierasta koodia FFI:n kautta, käännätte koodia WebAssemblyksi ja työskentelette sulautettujen järjestelmien parissa.
Oppimispolku
Kolmekymmentäyhdeksän kurssia kattavat tasot A1–C2. A1- ja A2-kursseilla opitte syntaksin, keskeiset tietorakenteet ja ohjausvuon. B1-tasolla mukaan tulevat moduulit, Cargo, säikeet ja jaettu tila. B2-taso on laajin kokonaisuus: neljätoista kurssia, jotka käsittelevät asynkronista ekosysteemiä, käytännön kehyksiä ja projektien organisointimalleja. C1-tasolla perehdytte perusteellisesti elinaikoihin, älykkäisiin osoittimiin, makroihin, unsafe-koodiin, WebAssemblyyn, edistyneisiin verkkopalveluihin, egui-kirjastolla rakennettavaan graafiseen sovellukseen ja pelikehitykseen Bevyllä. Kokonaisuus päättyy C2-tasolla edistyneeseen tyyppijärjestelmään – geneerisiin tyyppeihin, traitteihin ja liitännäistyyppeihin – sekä sulautetun Rustin ja järjestelmäohjelmoinnin perusteisiin.
Näin opiskelu toimii
Jokainen kurssi on jaettu lyhyisiin ja keskittyneisiin oppitunteihin, jotka suoritatte sisäänrakennetussa koodieditorissa reaaliaikaisen palautteen avulla. Tekoälytuutori on käytettävissänne aina, kun jäätte jumiin, joten voitte selvittää omistajuusvirheitä ja elinaikamääritteitä omaan tahtiinne poistumatta sovelluksesta.