Varmista, että Rust-projektisi on järjestetty hyvin, jotta niitä on helpompi ylläpitää ajan myötä.

Ruoste on erinomainen valinta monimutkaisten ja luotettavien sovellusten rakentamiseen. Yksi tärkeimmistä taidoista Rust-sovellusten kehittämisessä on projektien tehokas jäsentäminen, mukaan lukien kolmannen osapuolen pakettien sisällyttäminen.

Tehokas projektiorganisaatio on avainasemassa Rust-sovellusten kehittämisessä. Hyvin jäsennellyt Rust-sovellukset parantavat yhteistyötä ja helpottavat kolmannen osapuolen sovellusten integraatioita vähentäen merkittävästi sovellusten kehittämiseen tarvittavaa aikaa ja vaivaa. Rust tarjoaa sisäänrakennetun paketinhallinnan ja muita työkaluja tehokkaaseen koodin organisointiin ja hallintaan.

Ruosteprojektien perustaminen

Rust-projektien määrittäminen on helppoa kun olet asentanut Rustin koneellesi; voit käyttää Cargoa (Rustin sisäänrakennettu paketinhallinta- ja rakennusjärjestelmä) Rust-projektin luomiseen ja konfigurointiin. Se on samanlainen kuin muut paketinhallintaohjelmat

instagram viewer
npm Node.js: lle ja pip Pythonille. Cargo hallitsee riippuvuuksia, kokoaa koodia ja luo dokumentaatiota, mikä tekee siitä olennaisen työkalun Rust-kehityksessä.

Suorita tämä komento vahvistaaksesi Cargo-asennuksesi:

lasti -- versio

Komento näyttää asennetun Cargo-version.

Voit luoda uuden Rust-projektin sovelluksella lasti uusi komento. Sinun on määritettävä projektin nimi.

lasti uusi my_projekti

Komento luo nykyiseen hakemistoon uuden hakemiston, joka sisältää Rust-projektiin tarvitsemasi perustiedostot, mukaan lukien a cargo.toml tiedosto projektisi riippuvuuksien hallintaa varten.

Ruostepaketin nimiavaruus

Pakkaukset ja laatikot ovat välttämättömiä osia Rustissa. Laatikot ovat kirjastoja tai binaareja, joita Rust-kehittäjät voivat käyttää ja kääntää tiettyyn käyttöön, ja paketit ovat kokoelma laatikoita. Paketit sisältävät yleensä laatikon, joka sisältää uudelleen käytettävän koodin, ja binaarin, joka tarjoaa CLI: n kirjastolaatikolle.

Laatikoiden tulee sisältää Cargo.toml tiedosto, joka sisältää metatietoja paketista, kuten sen nimen, version, riippuvuudet ja koontikomentosarjat.

Rust-paketit noudattavat nimeämiskäytäntöä pakettien välisten nimeämisristiriitojen välttämiseksi. Pakettien nimien tulee olla maailmanlaajuisesti yksilöllisiä, pieniä kirjaimia ja sisältää vain kirjaimia, numeroita ja yhdysmerkkejä. Jos paketin nimi sisältää useita sanoja, erota ne yhdysmerkillä, esim. hyper-palvelin.

Voit käyttää koodia Rust-paketin nimiavaruudessa käyttämällä käyttää avainsana, jota seuraa paketin ja laatikon nimet.

Tässä on esimerkki tuomisesta Rng toiminto alkaen a rand laatikko:

käyttää rand:: Rng;

Voit luoda useita nimiavaruuksia paketeille. Kun luot kansion, luot uuden nimitilan, jota voit käyttää pistemerkinnällä määrittääksesi polun tunnisteeseen.

Rustissa paketeille voi olla useita nimiavaruuksia. Kun luot kansion, luot uuden nimitilan. Jos haluat käyttää koodia toisesta nimiavaruudesta, käytä pistemerkintää määrittääksesi polun tunnisteeseen.

Tässä on esimerkki funktion käyttämisestä eri nimiavaruudesta:

// tiedosto kansio1-nimiavaruudessa
pubfnkansio() -> u32 {
// tässä jokin toimintorunko
palata0;
}

// tiedosto kansio2-nimiavaruudessa
käyttää kansio1::kansio;

pubfnhakemistosta() {
// kansiotoiminnon käyttäminen kansio1-nimiavaruudesta
antaa folder_func = kansio();
}

Ohjelma määrittelee kaksi Rust-moduulia eri nimiavaruudessa, kansio1 ja kansio 2 vastaavasti. The kansio1 moduuli sisältää julkisen toiminnon kansio joka palauttaa 32-bittisen etumerkittömän kokonaisluvun.

The kansio 2 moduuli tuo kansio toiminto alkaen kansio1 nimiavaruus käyttää avainsana, joka mahdollistaa hakemistosta toiminto päästäksesi käsiksi kansio toiminto alkaen kansio1 moduuli. The hakemistosta toiminto kutsuu kansio funktio, ja palautusarvo on määritetty folder_func muuttuja.

Sinun on kirjoitettava pakkauksen tai laatikon tunnisteiden nimet isolla, jotta voit viedä ne. Kun viet tunnuksen, teet sen käytettäväksi muissa koodia käyttävissä paketeissa.

Tässä on esimerkki julkisesta funktiosta, joka voidaan viedä.

// toiminto viedään muihin pakkauksiin ja laatikoihin
pubfnMyFunction() {
// tässä jokin toimintorunko
}

Sinun on myös käytettävä pub avainsana. Rustissa, pub avainsana on lyhenne julkinen. Kun funktio, rakenne, enum, mikä tahansa Rust-tietotyyppi tai moduuli on merkitty pub-avainsanalla, se on käytettävissä sen moduulin ulkopuolella. Kohde on yksityinen moduulissaan ilman pub-avainsanaa, ja sitä voi käyttää vain sen sisältä.

Moduulien määrittäminen laajuuden ja yksityisyyden hallitsemiseksi

Voit ohjata Rust-ohjelmien laajuutta ja yksityisyyttä moduuleilla. Moduulien avulla voit järjestää koodin loogisiksi yksiköiksi, joita on helpompi hallita ja ylläpitää.

Voit ilmoittaa moduulit mod avainsana, jota seuraa moduulin nimi ja kiharat aaltosulut. Uuden moduulin määrittäminen luo sen sisällölle uuden nimiavaruuden, mikä tarkoittaa, että se toimii, rakentaa tai muut moduulissa määritellyt kohteet ovat käytettävissä vain moduulissa, paitsi että eksplisiittisesti viet niitä.

Moduulit auttavat estämään nimeämisristiriitoja ja tekevät koodista intuitiivisemman ymmärrettävän.

Tässä on yksinkertaisen moduulin syntaksi:

mod my_module {
// moduulin sisältö menee tänne
}

Moduulin sisällä voit määrittää muuttujia, funktioita, rakenteita, enumeita ja muita tyyppejä.

mod my_module {
fnadd_numbers(a: i32, b: i32) -> i32 {
a + b
}
}

Voit käyttää pub avainsana funktion viemiseen ja funktion käyttämiseen ohjelman muissa osissa.

mod my_module {
pubfnadd_numbers(a: i32, b: i32) -> i32 {
a + b
}
}

Nyt voit soittaa add_numbers toimintoa ohjelmasi muista osista.

Voit myös hallita moduulien yksityisyyttä pub avainsana moduulimäärittelyissä.

pubmod my_module {
pubfnadd_numbers(a: i32, b: i32) -> i32 {
a + b
}
}

Nyt my_module moduuli on julkinen, ja voit käyttää moduulia muista moduuleista.

Jos haluat asettaa moduulin tai kohteen tietyn moduulin tai moduulijoukon käytettäväksi, voit käyttää pubi (laatikko) avainsana. The pubi (laatikko) avainsana mahdollistaa kohteen pääsyn saman laatikon moduuleista, mutta ei muiden laatikoiden moduuleista.

mod my_module {
pubstructMyStruct {
pub(laatikko) some_field: u32,
}
}

Voit nyt käyttää tiettyä kohdetta (tässä tapauksessa joku_kenttä alalla MyStruct struct) muissa ohjelmasi osissa.

fnpää() {
antaa my_struct = my_module:: MyStruct { some_field: 42 };
println!("{}", oma_rakenne.jokin_kenttä);
}

The my_struct muuttuja on esimerkki MyStruct struct. Muuttuja käyttää rakennetta polun erottimella (::). The pää toiminto tulostaa joku_kenttä kentän rakenteen kanssa println! makro.

Rustin omistusmalli takaa muistin turvallisuuden

Rust-koodin järjestäminen on yksi tapa varmistaa, että koodiasi on helppo ylläpitää ja tukea ajan myötä. On helpompi puuttua virheisiin ja varmistaa turvallisuus hyvin organisoidulla koodilla, joka noudattaa Rust-yhteisön sääntöjä ja käytäntöjä.

Oletusarvoisesti Rust varmistaa, että ohjelmat ovat muistiturvallisia sisäänrakennetun omistusmallin avulla. Omistusmalli varmistaa muistin turvallisuuden varmistamalla, että muistissa olevilla muuttujilla on yksi ainoa omistaja. Omistusmalli estää datajäljet ​​ja monenlaiset muistivirheet.