Kako naučiti hrđu bez instaliranja bilo kakvog softvera

U ovom ćemo članku naučiti kako pomoću GitHub Akcija naučiti Rust iz vašeg web preglednika. Sve ćemo kodirati, izraditi, testirati, pokrenuti i objaviti s web stranice. Nije potreban softver! Učite s GitHubom ili nas pratite na Twitteru.

Rust je jedan od najvrućih programskih jezika danas. Alpha geekovi to vole. To je najdraži programski jezik Stackoverflowa u posljednje 4 godine zaredom.

Jedna od najjedinstvenijih i najdražih značajki Rusta je njegov agresivni kompajler koji vam pomaže osigurati ispravnost i sigurnost prije nego što se program uopće pokrene. Kao rezultat toga, programeri Rusta mogu pisati visoko učinkovite, ali sigurne programe. Rust eliminira čitave klase programskih grešaka, posebno onih teško otklonjivih runtime bugova.

Ako još niste probali, probajte! Magično je. Vjerujem da bi Rust mogao biti sljedeća Java ili Ruby - programski jezik koji svi moraju naučiti u budućnosti.

Međutim, učenje Rusta obično zahtijeva da na svoje računalo instalirate gomilu alata naredbenog retka. Kompajler Rust-a je spor jer je cijela paradigma Rust-a postavljena za dubinsku analizu izvornog koda i pronalaženje grešaka u vrijeme kompajliranja, umjesto da se ruši tijekom izvođenja.

Online Rust IDE-i, poput Rust Playground i REPL.it, jednostavni su alati koji ne iskorištavaju sve prednosti Rust ekosustava ciljeva i knjižnica nezavisnih prevoditelja.

Pa biste se mogli zapitati - mogu li pokušati naučiti Rust bez da moram instalirati sve te softverske pakete na svoje računalo?

Pa, s GitHub akcijama možete! Možete naučiti i eksperimentirati s Rust kodom izravno u svom web pregledniku. Započnimo!

GitHub Actions olakšava automatizaciju svih vaših softverskih tijekova rada, sada s CI / CD-om svjetske klase. Izgradite, testirajte i implementirajte svoj kôd izravno s GitHub-a. Napravite recenzije koda, upravljanje poslovnicama i rad triažiranja na način koji želite. Izvorni kod i radnje tijeka rada za primjer Hello World mogu se naći u ovom GitHub spremištu.

Pozdrav svijete

Prvo stvorite novo GitHub spremište i dodajte Rust izvornu datoteku. Dodajmo src/main.rsdatoteku sa sljedećim sadržajem.

fn main() { println!("Hello, world!"); }

Zatim se vratite u korijenski /direktorij GitHub spremišta i dodajte Cargo.tomldatoteku. Ova datoteka opisuje kako sustav tereta Rust treba graditi i spakirati naš projekt.

[package] name = "hello" version = "0.1.0" authors = ["ubuntu"] edition = "2018" [dependencies]

Sada imamo kompletan projekt Rust. Izgradimo ga i pokrenimo sada.

Github akcije

Na kartici Akcije GitHub-a možemo dodati tijekove rada povezane s ovim projektom. To su radnje koje Github automatski izvodi kada se dogode određeni događaji, poput guranja ili urezivanja koda. U našem bismo slučaju željeli da GitHub automatski izgradi i pokrene naš sustav main.rsi pokaže nam rezultate.

Akcije tijeka rada i njihovi okidači događaja definirani su u ymldatotekama pod .github/workflowsdirektorijom. Možete pisati vlastite ymldatoteke ili odabrati jedan od gotovih predložaka.

Ovdje odabiremo predložak Rust. GitHub vam omogućuje uređivanje rust.ymldatoteke prije provjere u spremište.

Uzmimo minutu ovdje da objasnimo kako funkcioniraju GitHub akcije. Zadana rust.ymldatoteka to kaže

  • Kad god korisnik potisne kôd ili prihvati zahtjeve za povlačenjem u ovo spremište, aktivirat će se radnje u ovom rust.ymltijeku rada.
  • Tok rada stvorit će virtualni stroj s najnovijim operativnim sustavom Ubuntu. Na ovom Ubuntu sustavu, tada će izvršiti sljedeće korake.
  • Provjerit će kôd iz masterpodružnice.
  • Izvest će cargo build --verbosenaredbu za kompajliranje i izgradnju Rust koda.
  • Izvest će cargo test --verbosenaredbu za izvršavanje test slučajeva.
  • Svi standardni i konzolski izlazi na sustavu Ubuntu iz gornje dvije naredbe bit će snimljeni GitHub Akcijama i prikazani na webu.

Možete urediti zadnji redak rust.ymlza izvođenje cargo run, koji pokreće sastavljeni binarni program. Naša ažurirana rust.ymldatoteka je sljedeća.

name: Rust on: push: branches: [ master ] pull_request: branches: [ master ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/[email protected] - name: Build run: cargo build --verbose - name: Run run: cargo run

Sad kad god gurnete kod u ovo spremište, rust.ymlizvršavaju se radnje u . Rezultate možete vidjeti na kartici Akcije.

Možete kliknuti rezultat i kliknuti karticu gradnje slijeva da biste vidjeli detalje. Odjeljci za izradu i izvođenje daju najrelevantnije detalje. Odjeljak Pokreni prikazuje uspješan ispis hello world!

Dalje, možete dodati ovisnosti trećih strana u Cargo.tomli graditi složene Rust aplikacije na main.rs. Svaki put kad netko pritisne kôd, moći ćemo vidjeti rezultate.

Test Driven Development (TDD)

Naravno, vrlo malo programera zapravo pokreće svoje programe za ispis teksta na konzolu. Gore cargo runnavedeno je samo predstava. U stvarnosti većina programera piše funkcije i ispituje slučajeve za te funkcije. Najčešći zadatak nakon sastavljanja i izrade je pokretanje test slučajeva. Da vidimo kako se to radi.

Stvorite novo spremište GitHub, a zatim dodajte src/lib.rsdatoteku u nastavku. Kao što vidite, definira funkciju Rust i nekoliko testnih slučajeva. Može se izraditi i objaviti kao paket biblioteke Rust.

pub fn say(s: &str) -> String { let r = String::from("hello "); return r + s; } #[cfg(test)] mod tests { use super::*; #[test] fn say_hello() { let result = say("ssvm"); assert!(result.contains("hello ssvm")); } }

Zatim se vratite u korijenski /direktorij GitHub spremišta i dodajte sljedeću Cargo.tomldatoteku.

[package] name = "hello" version = "0.1.0" authors = ["ubuntu"] edition = "2018" [lib] name = "hello_lib" path = "src/lib.rs" crate-type =["cdylib"] [dependencies]

Kliknite karticu Akcije i dodajte zadani tijek rada Rust. Kao što se sjećate, zadani tijek rada Rust završava s cargo test, što je upravo ono što nam ovdje treba.

The workflow runs every time new code is pushed into this repository. You can click open a successful build, and see the output from the build and test actions.

What's next

Now you can experiment with your Rust code, and have GitHub build, test, and run it for you with complete console outputs, for free and without ever leaving your browser!

Resources

  • Learn to program in Rust
  • Learn more about GitHub Actions
  • Of course, the best way to run Rust programs on the server is inside a WebAssembly Virtual Machine. Checkout the open source Second State VM for that!
  • Learn about the BUIDL online IDE to code and deploy decentralized web apps on public blockchains

About the author

Dr. Michael Yuan is the author of 5 books on software engineering. His latest book Building Blockchain Apps was published by Addison-Wesley in Dec 2019. Dr. Yuan is the co-founder of Second State, a VC-funded startup that brings WebAssembly and Rust technologies to cloud, blockchain, and AI applications. It enables developers to deploy fast, safe, portable, and serverless Rust functions on Node.js.

Prior to Second State, Dr. Yuan was a long time open source contributor at Red Hat, JBoss, and Mozilla. Outside of software, Dr. Yuan is a Principal Investigator at the National Institutes of Health, with multiple research awards on cancer and public health research. He holds a PhD in astrophysics from the University of Texas at Austin.