Last additions
This commit is contained in:
parent
015c5db775
commit
09c2cf0074
12 changed files with 104 additions and 34 deletions
|
@ -19,7 +19,7 @@ Rustin yhtenä pääominaisuutena on mainostettu sen uudenlaista näkökulmaa mu
|
|||
|
||||
Koodiesimerkin \ref{code:rust:ownership} rivillä 9 tapahtuva ''name''-arvon tulostus ei toimi, koska arvon omistajuus on siirretty funktiolle ''say\char`_hello''. Funktion suorittamisen jälkeen se poistuu näkyvyysalueelta ja kaikki sen omistamat arvot vapautetaan muistista. Näin ollen arvoa ''name'' ei ole enää olemassa, kun sitä yritetään käyttää rivillä 9. Koodi saadaan toimimaan pienellä muutoksella.
|
||||
|
||||
\bigskip
|
||||
\clearpage
|
||||
|
||||
\begin{code}
|
||||
\inputminted{Rust}{code/borrow.rs}
|
||||
|
@ -116,6 +116,8 @@ Rustia kehitettäessä on aina ollut tavoitteena luotettavuus. Tämä tarkoittaa
|
|||
|
||||
Myös Rustin kääntäjään on panostettu paljon, ja virheiden sattuessa se on todella hyvä työkalu ohjelmoijalle. Se alleviivaa ongelmakohdat ja selittää lyhyesti, mistä ongelma johtuu. Jossain tapauksissa kääntäjä jopa antaa pieniä koodin pätkiä, mistä voi olla apua ongelman ratkaisemisessa [koodiesimerkki \ref{code:rust:help}].
|
||||
|
||||
\clearpage
|
||||
|
||||
\begin{code}
|
||||
\inputminted[linenos=false]{shell}{code/compiler-help}
|
||||
\captionof{listing}{Rustin kääntäjä auttaa unohtuneen importin lisäämisessä}
|
||||
|
@ -163,25 +165,29 @@ Metaohjelmointi avaa aivan uudenlaisia mahdollisuuksia sille, mitä ohjelmointik
|
|||
\subsection{Dokumentaatio ja yhteisö}
|
||||
Rust on tunnettu todella laajasta dokumentaatiostaan ja vahvasta yhteisöstään. Molemmista on paljon apua varsinkin aloittelijoille.
|
||||
|
||||
Aloitin itsekin opiskelemaan Rustia vain hieman ennen tämän insinöörityön alkua ja yhteisöstä oli monesti apua projektin aikana vastaan tulleissa ongelmissa.
|
||||
Aloitin itsekin opiskelemaan Rustia vain hieman ennen tämän insinöörityön alkua. Yhteisöstä oli monesti apua projektin aikana vastaan tulleissa ongelmissa.
|
||||
|
||||
\subsection{Paketinhallinta}
|
||||
\label{sect:paketinhallinta}
|
||||
Rustin paketinhallinta on toteutettu Cargo-nimisellä ohjelmalla. Sitä voi käyttää koko ohjelmiston elinkaaren ajan aina projektin luomisesta sen julkaisemiseen. Cargon käsittelemiä paketteja kutsutaan laatikoiksi (eng. crate), jotka julkaistaan crates.io \cite{rust:cratesio} pakettirekisterissä. Laatikot voivat myös olla riippuvaisia toisista laatikoista. Laatikon tiedot ja riippuvuudet määritetään Cargo.toml-tiedostossa [koodiesimerkki \ref{code:rust:cargo-toml}].
|
||||
|
||||
\clearpage
|
||||
|
||||
\begin{code}
|
||||
\inputminted{TOML}{code/Cargo.toml}
|
||||
\captionof{listing}{Projektin palvelinpuolen Cargo.toml}
|
||||
\label{code:rust:cargo-toml}
|
||||
\end{code}
|
||||
|
||||
Cargoon on saatavilla myös useita liitännäisiä, esimerkiksi cargo-watch, joka suorittaa halutun toiminnon aina, kun projektin sisällä tapahtuu muutoksia sekä tässäkin projektissa käytetty cargo-web, joka helpottaa WebAssembly-ohjelmien kehittämistä.
|
||||
Cargoon on saatavilla myös useita liitännäisiä, esimerkiksi cargo-watch, joka suorittaa halutun toiminnon aina, kun projektin sisällä tapahtuu muutoksia sekä tässäkin insinöörityössä käytetty cargo-web, joka helpottaa WebAssembly-ohjelmien kehittämistä.
|
||||
|
||||
\section{WebAssembly}
|
||||
WebAssembly \cite{webassembly:home} on kehitteillä oleva asiakaspuolen ohjelmointikieli. Sitä on suunniteltu JavaScriptin seuraajaksi ja sen suurimpana etuna JavaScriptiin verrattuna on huomattavasti matalamman tason esitysmuoto, minkä ansiosta se on suorituskykyisempi.
|
||||
|
||||
Kehittäjän ei ole tarkoitus kirjoittaa WebAssemblya itse, vaan käyttää työkaluja, joilla olemassa olevia ohjelmointikieliä voi kääntää WebAssemblyksi. Rust on tästä hyvä esimerkki, sillä WebAssembly on yksi sen kääntäjän natiiveista ''targeteista'', samalla tavalla kuin vaikka x86-prosessorit.
|
||||
|
||||
\clearpage
|
||||
|
||||
WebAssembly on siis ensisijaisesti binääriformaatti, mutta sen voi muuntaa myös tekstiformaatiksi, jonka nimi on WebAssembly text \cite{webassembly:text}. WebAssembly text käyttää syntaksissaan S-lausekkeita \cite{s-expression}. Se on notaatio puurakenteiselle datalle, joka on kehitetty Lisp-ohjelmointikieltä varten, joten WebAssembly text muistuttaa syntaksiltaan hyvin paljon Lispiä. WebAssembly textiä käytetään tilanteissa, joissa ihmisen täytyy ymmärtää, mitä koodissa tapahtuu. Tätä hyödynnetään esimerkiksi WebAssemblyn sisäisessä kehityksessä ja web-ohjelmistojen debuggereissa.
|
||||
|
||||
\bigskip
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue