Rust

Rust

BACKEND

Język programowania systemowego oferujący gwarancje bezpieczeństwa pamięci bez garbage collectora przez system ownership. Wydajność równoważna C/C++ z abstrakcjami o zerowym koszcie, współbieżność bez wyścigów danych i bogaty ekosystem (Cargo, crates.io) do budowania niezawodnych API backendowych, WebAssembly i systemów krytycznych.

Czego się nauczysz

System ownership dla gwarantowanego bezpieczeństwa pamięci w czasie kompilacji (bez garbage collectora)

Wydajność C/C++ z abstrakcjami o zerowym koszcie i kontrolą niskopoziomową

Współbieżność bez wyścigów danych dzięki systemowi typów (traity Send, Sync)

Ekspresyjne pattern matching, potężne enumy i Result<T, E> do obsługi błędów

Cargo do zarządzania zależnościami, buildowania i zintegrowanego testowania

Async/await z Tokio lub async-std do nieblokującego I/O

Nowoczesne frameworki webowe (Axum, Actix-web, Rocket) do REST API

Silny system typów z traitami, generykami, lifetimami i inferencją typów

Kompleksowe testowanie (testy jednostkowe, integracyjne, doc testy, property-based)

Pierwszorzędne wsparcie WebAssembly, cross-kompilacja i zoptymalizowane pliki binarne

Kluczowe tematy do opanowania

Najważniejsze pojęcia do zrozumienia tej technologii i zdania rozmów

1

Podstawy Rust: zmienne (let, mut), typy prymitywne, funkcje, moduły

2

Ownership: semantyka move, pożyczanie, referencje (&, &mut), lifetimes

3

Reguły pożyczania: jeden &mut LUB wiele &, brak wiszących referencji

4

Struktury, enumy, pattern matching i destrukturyzacja

5

Traity: definicja, implementacja, ograniczenia traitów, makra derive

6

Generyki: generyczne funkcje, struktury, enumy z ograniczeniami traitów

7

Lifetimes: adnotacje ('a), elidowanie lifetimów, static lifetime

8

Obsługa błędów: Result<T, E>, Option<T>, operator ?, panic vs Result

9

Kolekcje: Vec, HashMap, HashSet, iteratory i metody (map, filter, collect)

10

Iteratory: trait Iterator, leniwa ewaluacja, kombinatory, pętle for

11

Wzorce ownership: Clone vs Copy, Rc/Arc, RefCell/Mutex dla wewnętrznej zmienności

12

Współbieżność: wątki, Arc<Mutex<T>>, kanały (mpsc), traity Send/Sync

13

Async/await: trait Future, async fn, .await, runtime Tokio, zadania async

14

Axum/Actix-web: routing, handlery, extractory, middleware, zarządzanie stanem

15

Bazy danych: sqlx (sprawdzanie w czasie kompilacji), Diesel ORM, zapytania async

16

Serializacja: serde (Serialize, Deserialize), JSON, makra derive

17

Testowanie: #[test], #[cfg(test)], assert!, testy integracyjne, mockowanie

18

Makra: makra deklaratywne (macro_rules!), makra proceduralne, derive

19

Bezpieczeństwo pamięci: brak null pointerów, brak buffer overflow, bezpieczeństwo wątków

20

Wydajność: abstrakcje o zerowym koszcie, inlining, optymalizacje LLVM, profilowanie

21

Cargo: zależności (Cargo.toml), cechy, workspace, skrypty budowania

22

Wdrażanie: cross-kompilacja, Docker, statyczne pliki binarne, profile release