Programowanie w języku Rust. Wydajność i bezpieczeństwo. Wydanie II
- Wydawnictwo:
- Helion
- Ocena:
- 4.3/6 Opinie: 4
- Stron:
- 688
- Druk:
- oprawa miękka
- Dostępne formaty:
-
PDFePubMobi

Opis ebooka: Programowanie w języku Rust. Wydajność i bezpieczeństwo. Wydanie II
Twórcy aplikacji często zapominają o kodzie systemowym, a to dzięki niemu funkcjonują system operacyjny, sterowniki, system plików czy zarządzanie pamięcią. Żadna aplikacja nie będzie działać bez poprawnego kodu systemowego. Język Rust jest dla programistów systemowych wyjątkowym narzędziem, rozwiązującym wiele znanych od dziesięcioleci problemów. Pozwala uniknąć mnóstwa powszechnie popełnianych błędów i tworzyć należytej jakości kod systemowy.
Dzięki tej książce zaczniesz kodować w języku Rust. Zrozumiesz też istotę programowania systemowego. Dowiesz się, w jaki sposób zapewnić bezpieczeństwo pamięci i wątków, a także jak sprawić, aby program był wykonywany szybko i bez błędów. Nauczysz się bezpiecznego stosowania operacji współbieżnych i poznasz zasady obsługi błędów. Przekonasz się, w jaki sposób Rust umożliwia kontrolę nad zużyciem pamięci i procesora, dodatkowo otrzymasz mnóstwo wskazówek ułatwiających tworzenie wydajnego i bezpiecznego kodu. Przewodnik jest przeznaczony głównie dla programistów systemowych, na lekturze jednak skorzystają również twórcy aplikacji, którzy dowiedzą się, jak mogą pisać lepszy, efektywniejszy i łatwiejszy w utrzymaniu kod.
W książce między innymi:
- solidne wprowadzenie do języka Rust
- podstawowe typy danych, a także pojęcia związane z własnością i pożyczaniem
- obsługa błędów, paczki i moduły
- zestawy metod i typy generyczne
- domknięcia, iteratory i programowanie asynchroniczne
- zaawansowane mechanizmy języka Rust
Rust: zadbasz o najwyższą jakość oprogramowania systemowego!
Programowanie w języku Rust
Oprogramowanie systemowe stanowi podstawę dla wszystkich obliczeń wykonywanych przez komputery. Tworzenie bardzo szybkiego kodu wymaga języka programowania dającego programistom kontrolę nad zużyciem pamięci, czasu procesora oraz wszelkich innych zasobów systemowych. Język do tworzenia oprogramowania systemowego Rust łączy te wszystkie cechy z nowoczesnym systemem typów, zdolnym do wykrywania obszernych klas najczęściej popełnianych błędów związanych z wieloma aspektami tworzonego kodu, zaczynając od zarządzania pamięcią, a kończąc na rywalizacji o dostęp do danych współdzielonych przez wiele wątków.
Dzięki temu praktycznemu przewodnikowi doświadczeni programiści systemowi nauczą się jak korzystać z języka Rust by pomyślnie połączyć wydajność oraz bezpieczeństwo. Jim Blandy, Jason Orendorff oraz Leonora Tindall pokazują jak używać możliwości Rusta by zyskać kontrolę nad zużyciem pamięci oraz procesora, używając do tego celu przewidywalnej wydajności, bezpiecznego wykorzystania pamięci oraz godnych zaufania operacji współbieżnych.
W tej książce poznasz:
- Podstawowe typy danych języka Rust, jak również podstawowe pojęcia związane z własnością oraz pożyczaniem.
- Podstawy języka, a w tym: obsługę błędów, paczki i moduły, struktury i typy wyliczeniowe.
- Jak pisać elastyczny, wydajny kod wykorzystując do tego celu zestawy metod i typy generyczne.
- Kluczowe narzędzia Rusta: domknięcia, iteratory oraz techniki oprogramowania asynchronicznego.
- Kolekcje, łańcuchy znaków i teksty, operacje wejścia i wyjścia, współbieżność, makra, kod niebezpieczny oraz interakcje z funkcjami pisanymi w innych językach programowania
"Osobom dysponujący doświadczeniem w programowaniu systemowym w innych językach, książka Programowanie w języku Rust zapewni możliwość błyskawicznego poznania Rusta. Autorzy wyjaśniają w niej jak Rust działa, prezentując przy tym wiele przykładów oraz projektów."
Carol Nichols, współautorka książki Programowanie w języku Rust i współzałożycielka Integer 32, LLC
Wybrane bestsellery
-
Systems programming provides the foundation for the world's computation. Writing performance-sensitive code requires a programming language that puts programmers in control of how memory, processor time, and other system resources are used. The Rust systems programming language combines that cont...(29.90 zł najniższa cena z 30 dni)
237.15 zł
279.00 zł(-15%) -
Ta książka jest znakomitym wprowadzeniem do języka Rust, pozwala też rozeznać się w zasadach programowania systemowego. Pokazuje, w jaki sposób zapewnić w kodzie bezpieczeństwo pamięci i wątków oraz sprawić, aby program był wykonywany szybko i bez błędów. Poszczególne zagadnienia zostały przedsta...
Programowanie w języku Rust. Wydajność i bezpieczeństwo Programowanie w języku Rust. Wydajność i bezpieczeństwo
(59.40 zł najniższa cena z 30 dni)64.35 zł
99.00 zł(-35%) -
Trzech poważanych architektów oprogramowania omawia cały cykl życia, prezentując praktyczne wskazówki, metody stosowane przez ekspertów i sprawdzone modele przydatne w każdym projekcie niezależnie od poziomu jego złożoności. Dowiesz się, jak za pomocą architektury radzić sobie z coraz większymi w...
Architektura oprogramowania w praktyce. Wydanie IV Architektura oprogramowania w praktyce. Wydanie IV
(59.40 zł najniższa cena z 30 dni)64.35 zł
99.00 zł(-35%) -
W tej książce znajdziesz zasady definiujące rzemiosło, jakim jest wytwarzanie oprogramowania. Zebrano w niej procedury, standardy i normy etyczne, dzięki którym tworzony kod będzie niezawodny i efektywny, a całe oprogramowanie stanie się powodem do dumy. Zawarto tutaj szereg pragmatycznych wskazó...
Rzemiosło w czystej formie. Standardy i etyka rzetelnych programistów Rzemiosło w czystej formie. Standardy i etyka rzetelnych programistów
(59.40 zł najniższa cena z 30 dni)64.35 zł
99.00 zł(-35%) -
Jeśli chcesz być profesjonalistą i postanowiłeś nauczyć się wszystkiego, co jest do tego potrzebne, to wziąłeś do ręki właściwą książkę. Zawiera ona znacznie więcej informacji niż proste wprowadzenie do konkretnego języka programowania. Opisano tu najpotrzebniejsze technologie, elementy kodu i za...
Programista samouk. Profesjonalny przewodnik do samodzielnej nauki kodowania Programista samouk. Profesjonalny przewodnik do samodzielnej nauki kodowania
(35.40 zł najniższa cena z 30 dni)38.35 zł
59.00 zł(-35%) -
Dave Thomas i Andy Hunt napisali pierwsze wydanie tej wpływowej książki w 1999 roku, aby pomóc swoim klientom tworzyć lepsze oprogramowanie i na nowo odnaleźć radość z kodowania. Nauki płynące z tamtego wydania pomogły wielu pokoleniom programistów zbadać istotę rozwoju oprogramowania, niezależni...
Pragmatyczny programista. Od czeladnika do mistrza. Wydanie II Pragmatyczny programista. Od czeladnika do mistrza. Wydanie II
(46.20 zł najniższa cena z 30 dni)50.05 zł
77.00 zł(-35%) -
Branża IT kusi licznymi ofertami pracy, atrakcyjnymi zarobkami i ciekawymi ścieżkami rozwoju nie tylko zawodowych programistów, lecz również osoby bez wykształcenia informatycznego czy doświadczenia w tej dziedzinie. Te ostatnie zwykle zaczynają karierę od roli testera aplikacji. Jednym z podstaw...(53.40 zł najniższa cena z 30 dni)
57.85 zł
89.00 zł(-35%) -
Ta książka jest przeznaczona dla doświadczonych programistów, którzy chcą zdobyć lub pogłębić wiedzę o metodologiach i dobrych praktykach tworzenia złożonego oprogramowania. Stanowi interesująco napisany zbiór heurystyk i technik ułożonych w kolejności stosowania podczas rozwijania projektu progr...
Zrównoważony kod. Dobre praktyki i heurystyki dla inżynierów oprogramowania Zrównoważony kod. Dobre praktyki i heurystyki dla inżynierów oprogramowania
(59.40 zł najniższa cena z 30 dni)64.35 zł
99.00 zł(-35%) -
Nie pamiętasz jakiegoś algorytmu? Nie wiesz, jaką strukturę danych należy zastosować? Nie masz pojęcia, jak wyznaczyć złożoność obliczeniową algorytmu? Nie martw się, Twoje problemy należą już do przeszłości! Tablice informatyczne. Algorytmy pozwolą Ci szybko odnaleźć i przypomnieć sobie podstawo...(6.90 zł najniższa cena z 30 dni)
9.35 zł
17.00 zł(-45%) -
Książka ta proponuje czysto rzemieślnicze podejście do pracy programisty. Idea ta, znana jako software craftsmanship, zakłada kompletną zmianę sposobu myślenia o programowaniu. Priorytetami stają się tu profesjonalizm, techniczna perfekcja i zadowolenie klienta, a osiąga się to, stosując pewne pr...
Software Craftsman. Profesjonalizm, czysty kod i techniczna perfekcja Software Craftsman. Profesjonalizm, czysty kod i techniczna perfekcja
O autorach ebooka
Jim Blandy programuje od niemal czterdziestu lat. W 1990 roku zaangażował się w tworzenie wolnego oprogramowania. Zajmował się projektami GNU Emacs, GNU Guile, a także GDB (debugger GNU). Obecnie rozwija narzędzia deweloperskie dostępne w przeglądarce Firefox. Interesuje się biologią, astronomią i gotowaniem.
Jason Orendorff napisał jeden z modułów silnika JavaScript przeglądarki Firefox. Jest aktywnym członkiem społeczności deweloperów w Nashville. Interesuje się gramatyką, pieczeniem i podróżami w czasie. Chętnie pomaga ludziom zrozumieć trudne zagadnienia.
Leonora Tindall jest inżynierem oprogramowania. Tworzy oprogramowanie systemowe w języku Rust. Pracuje nad wieloma projektami open source. W wolnym czasie konstruuje elektronikę do syntezy dźwięku.
Ebooka przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook i innych
-
systemach Windows, MacOS i innych
-
systemach Windows, Android, iOS, HarmonyOS
-
na dowolnych urządzeniach i aplikacjach obsługujących formaty: PDF, EPub, Mobi
Masz pytania? Zajrzyj do zakładki Pomoc »
Audiobooka posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolnych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video zobaczysz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolnych urządzeniach i aplikacjach obsługujących format MP4 (pliki spakowane w ZIP)
Szczegóły ebooka
- Tytuł oryginału:
- Programming Rust: Fast, Safe Systems Development, 2nd Edition
- Tłumaczenie:
- Piotr Rajca, Adam Bochenek, Krzysztof Sawka
- ISBN Książki drukowanej:
- 978-83-283-9525-1, 9788328395251
- Data wydania książki drukowanej:
- 2022-11-22
- ISBN Ebooka:
- 978-83-283-9526-8, 9788328395268
- Data wydania ebooka:
-
2022-11-22
Data wydania ebooka często jest dniem wprowadzenia tytułu do sprzedaży i może nie być równoznaczna z datą wydania książki papierowej. Dodatkowe informacje możesz znaleźć w darmowym fragmencie. Jeśli masz wątpliwości skontaktuj się z nami sklep@ebookpoint.pl.
- Format:
- 165x235
- Numer z katalogu:
- 182117
- Rozmiar pliku Pdf:
- 6.7MB
- Rozmiar pliku ePub:
- 8.8MB
- Rozmiar pliku Mobi:
- 21.4MB
- Pobierz przykładowy rozdział PDF
- Przykłady na ftp
Ebook zawiera materiały dodatkowe, które możesz pobrać z serwera FTP - link znajdziesz na stronie redakcyjnej.
Spis treści ebooka
- Rust zdejmuje ciężar z naszych barków
- Programowanie współbieżne zostaje ujarzmione
- A na dodatek Rust wciąż jest szybki
- Rust ułatwia współpracę
- rustup i Cargo
- Funkcje w języku Rust
- Pisanie i uruchamianie testów
- Obsługa argumentów wiersza poleceń
- Prosty serwer WWW
- Programowanie współbieżne
- Czym jest zbiór Mandelbrota?
- Parsowanie argumentów wiersza poleceń
- Odwzorowanie pikseli na liczby zespolone
- Rysowanie zbioru
- Zapis obrazu do pliku
- Program Mandelbrota działający współbieżnie
- Uruchomienie programu
- Przezroczyste bezpieczeństwo
- Narzędzia systemów plików i wiersza poleceń
- Interfejs wiersza poleceń
- Odczyt i zapis plików
- Znajdowanie i zastępowanie
- Typy numeryczne o ustalonej długości
- Typy całkowite
- Sprawdzane, przenoszące, nasycające i przepełniające operacje arytmetyczne
- Typy zmiennoprzecinkowe
- Typ logiczny
- Typ znakowy
- Krotki
- Typy wskaźnikowe
- Referencje
- Pudełka
- Wskaźniki niechronione
- Tablice, wektory i podzbiory
- Tablice
- Wektory
- Podzbiory
- Typ String
- Literały łańcuchowe
- Łańcuchy bajtów
- Łańcuchy znaków w pamięci
- Typ String
- Podstawowe cechy typu String
- Inne typy znakowe
- Nazwy zastępcze typów
- Co dalej?
- Reguła własności
- Przenoszenie własności
- Więcej operacji związanych z przeniesieniem własności
- Przeniesienie własności a przepływ sterowania
- Przeniesienie własności a struktury indeksowane
- Typy kopiowalne - wyjątki od reguł przenoszenia własności
- Rc i Arc: własność współdzielona
- Referencje do wartości
- Stosowanie referencji
- Referencje Rusta kontra referencje C++
- Referencje a operacja przypisania
- Referencje do referencji
- Porównywanie referencji
- Referencje nigdy nie są puste
- Referencje do wyrażeń
- Referencje do podzbiorów i zestawów metod
- Bezpieczeństwo referencji
- Referencja do zmiennej lokalnej
- Przekazywanie referencji jako argumentów funkcji
- Przekazywanie referencji do funkcji
- Zwracanie referencji
- Struktura zawierająca referencje
- Odrębny cykl życia
- Pomijanie parametrów cyklu życia
- Referencje współdzielone kontra mutowalne
- Walka ze sztormem na morzu obiektów
- Język wyrażeń
- Priorytety i łączność operatorów
- Bloki kodu i średniki
- Deklaracje
- if i match
- if let
- Pętle
- Sterowanie przepływem w pętlach
- Wyrażenie return
- Analiza przepływu sterowania
- Wywołania funkcji i metod
- Pola i elementy
- Operatory referencji
- Operatory arytmetyczne, bitowe, porównania i logiczne
- Przypisanie
- Rzutowanie typów
- Domknięcia
- Co dalej?
- Błąd panic
- Odwinięcie stosu
- Przerywanie procesu
- Typ Result
- Przechwytywanie błędów
- Nazwy zastępcze typu Result
- Wyświetlanie informacji o błędach
- Propagacja błędów
- Jednoczesna obsługa błędów różnych typów
- Błędy, które nie powinny się zdarzyć
- Ignorowanie błędów
- Obsługa błędów w funkcji main()
- Definiowanie własnego typu błędu
- Co daje nam typ Result?
- Paczki
- Edycje
- Profile budowania
- Moduły
- Moduły zagnieżdżone
- Umieszczanie modułów w oddzielnych plikach
- Ścieżki i importy
- Standardowe preludium
- Publiczne deklaracje use
- Publiczne pola struktur
- Stałe i zmienne statyczne
- Zmiana programu w bibliotekę
- Katalog src/bin
- Atrybuty
- Testy i dokumentacja
- Testy integracyjne
- Dokumentacja
- Doc-testy
- Definiowanie zależności
- Wersje
- Cargo.lock
- Publikowanie paczek na stronie crates.io
- Obszary robocze
- Więcej fajnych rzeczy
- Struktury z polami nazywanymi
- Struktury z polami numerowanymi
- Struktury puste
- Reprezentacja struktur w pamięci
- Definiowanie metod w bloku impl
- Przekazywanie self z użyciem typów Box, Rc lub Arc
- Funkcje powiązane z typami
- Powiązane stałe
- Struktury generyczne
- Struktury z parametrem cyklu życia
- Dziedziczenie standardowych zestawów metod
- Zmienność wewnętrzna
- Typy wyliczeniowe
- Typy wyliczeniowe zawierające dane
- Typ wyliczeniowy w pamięci
- Większe struktury danych stosujące typy wyliczeniowe
- Generyczne typy wyliczeniowe
- Wzorce
- Literały, zmienne i symbole wieloznaczne
- Wzorce w postaci krotki lub struktury
- Wzorce typu tablica i fragment
- Wzorce z referencjami
- Strażniki wzorców
- Dopasowanie do wielu wartości
- Wzorce @
- Gdzie używamy wzorców
- Wypełnianie drzewa binarnego
- Podsumowanie
- Stosowanie zestawów metod
- Obiekt implementujący zestaw metod
- Funkcje generyczne i parametry typów
- Na co się zdecydować?
- Definiowanie i implementacja zestawów metod
- Metody domyślne
- Implementacja zestawów metod dla istniejących już typów
- Zestaw metod a słowo kluczowe Self
- Rozszerzanie zestawu metod (dziedziczenie)
- Funkcje powiązane z typami
- W pełni kwalifikowana nazwa metody
- Zestawy metod definiujące relacje między typami
- Typy powiązane
- Generyczny zestaw metod (czyli jak działa przeciążanie operatorów)
- Impl Zestaw jako typ wyniku
- Stałe powiązane
- Inżynieria wsteczna ograniczeń
- Zestawy metod u podstaw
- Operatory arytmetyczne i bitowe
- Operatory jednoargumentowe
- Operatory dwuargumentowe
- Operatory przypisania złożonego
- Test równości
- Porównania szeregujące
- Interfejsy Index i IndexMut
- Inne operatory
- Drop
- Sized
- Clone
- Copy
- Deref i DerefMut
- Default
- AsRef i AsMut
- Borrow i BorrowMut
- From i Into
- TryFrom i TryInto
- ToOwned
- Borrow i ToOwned w działaniu
- Przechwytywanie zmiennych
- Domknięcia, które pożyczają wartość
- Domknięcia, które przejmują własność
- Typy funkcji i domknięć
- Domknięcia a wydajność
- Domknięcia a bezpieczeństwo
- Domknięcia, które zabijają
- FnOnce
- FnMut
- Copy i Clone dla domknięć
- Funkcje zwrotne
- Skuteczne korzystanie z domknięć
- Iterator i IntoIterator
- Tworzenie iteratorów
- Metody iter i iter_mut
- Implementacje interfejsu IntoIterator
- Funkcje from_fn i successors
- Metody drain
- Inne źródła iteratorów
- Adaptery iteratorów
- map i filter
- filter_map i flat_map
- flatten
- take i take_while
- skip i skip_while
- peekable
- fuse
- Iteratory obustronne i rev
- inspect
- chain
- enumerate
- zip
- by_ref
- cloned i copied
- cycle
- Konsumowanie iteratorów
- Proste agregaty: count, sum i product
- max i min
- max_by i min_by
- max_by_key i min_by_key
- Porównywanie sekwencji elementów
- any i all
- position, rposition oraz ExactSizeIterator
- fold i rfold
- try_fold i try_rfold
- nth i nth_back
- last
- find, rfind i find_map
- Tworzenie kolekcji: collect i FromIterator
- Zestaw metod Extend
- partition
- for_each i try_for_each
- Implementacja własnych iteratorów
- Przegląd kolekcji
- Vec<T>
- Dostęp do elementów
- Iteracja
- Zwiększanie i zmniejszanie wielkości wektora
- Łączenie
- Podział
- Zamiana
- Sortowanie i wyszukiwanie
- Porównywanie podzbiorów
- Elementy losowe
- Reguły zapobiegające konfliktom w czasie iteracji
- VecDeque<T>
- BinaryHeap<T>
- HashMap<K, V> i BTreeMap<K, V>
- Entry
- Iterowanie map
- HashSet<T> i BTreeSet<T>
- Iteracja zbioru
- Kiedy równe wartości są różne
- Operacje dotyczące całego zbioru
- Haszowanie
- Niestandardowe algorytmy haszujące
- Kolekcje standardowe i co dalej?
- Podstawy Unicode
- ASCII, Latin-1 i Unicode
- UTF-8
- Kierunek tekstu
- Znaki (typ char)
- Klasyfikacja znaków
- Obsługa cyfr
- Zmiana wielkości liter
- Konwersja znaku do i z liczby całkowitej
- Typy String i str
- Tworzenie łańcuchów znaków
- Prosta inspekcja
- Dołączanie i wstawianie tekstu
- Usuwanie i zastępowanie tekstu
- Konwencje nazewnicze dotyczące wyszukiwania i iterowania
- Wyszukiwanie tekstu i wzorce
- Wyszukiwanie i zamiana
- Iterowanie tekstu
- Obcinanie
- Zmiana wielkości liter w łańcuchach
- Konwersja tekstu do wartości innego typu
- Konwersja wartości innego typu do tekstu
- Tworzenie referencji innego typu
- Tekst jako UTF-8
- Tworzenie tekstu na podstawie danych UTF-8
- Alokacja warunkowa
- Łańcuchy znaków jako kolekcje generyczne
- Formatowanie wartości
- Formatowanie tekstu
- Formatowanie liczb
- Formatowanie innych typów
- Formatowanie wartości z myślą o debugowaniu
- Formatowanie i debugowanie wskaźników
- Wiązanie argumentów za pomocą indeksu i nazwy
- Dynamiczne definiowanie długości i precyzji
- Formatowanie własnych typów
- Użycie języka formatowania we własnym kodzie
- Wyrażenia regularne
- Podstawowe użycie wyrażeń regularnych
- Wyrażenia regularne w trybie leniwym
- Normalizacja
- Rodzaje normalizacji
- Biblioteka unicode-normalization
- Obiekty typu reader i writer
- Obiekty typu reader
- Buforowany obiekt typu reader
- Przeglądanie tekstu
- Pobieranie tekstu
- Obiekty typu writer
- Pliki
- Wyszukiwanie
- Inne rodzaje obiektów reader i writer
- Dane binarne, kompresja i serializacja
- Pliki i katalogi
- OsStr i Path
- Metody typów Path i PathBuf
- Funkcje dostępu do systemu plików
- Odczyt zawartości katalogu
- Funkcje bezpośrednio związane z platformą
- Obsługa sieci
- Podział i łączenie wątków
- spawn i join
- Obsługa błędów w różnych wątkach
- Współdzielenie niemutowalnych danych przez różne wątki
- Rayon
- Zbiór Mandelbrota raz jeszcze
- Kanały
- Wysyłanie wartości
- Odczyt wartości
- Uruchomienie potoku
- Cechy kanałów i ich wydajność
- Bezpieczeństwo wątków: Send i Sync
- Współpraca iteratora i kanału
- Potoki i co dalej?
- Stan współdzielony mutowalny
- Czym jest muteks?
- Mutex<T>
- mut i Mutex
- Dlaczego Mutex to nie zawsze dobry pomysł?
- Zakleszczenie (deadlock)
- Zatruty muteks
- Kanały z wieloma nadawcami stosujące muteksy
- Blokady odczytu/zapisu (RwLock<T>)
- Zmienne warunkowe (Condvar)
- Typy atomowe
- Zmienne globalne
- Rust i pisanie programów wielowątkowych
- Od kodu synchronicznego do asynchronicznego
- Interfejs Future
- Funkcje asynchroniczne i wyrażenia await
- Wywoływanie funkcji asynchronicznych z kodu synchronicznego: block_on
- Uruchamianie asynchronicznych zadań
- Asynchroniczne instrukcje blokowe
- Tworzenie funkcji asynchronicznych z wykorzystaniem asynchronicznych instrukcji blokowych
- Uruchamianie zadań asynchronicznych w pulach wątków
- Czy operacje asynchroniczne implementują Send?
- Wykonywanie długotrwałych obliczeń: yield_now i spawn_local
- Porównanie różnych rozwiązań asynchronicznych
- Rzeczywisty asynchroniczny klient HTTP
- Asynchroniczny klient i serwer
- Typy błędów i wyników
- Protokół
- Pobieranie danych od użytkownika: strumienie asynchroniczne
- Wysyłanie pakietów
- Pobieranie pakietów: więcej strumieni asynchronicznych
- Funkcja main klienta
- Funkcja main serwera
- Obsługa połączeń z klientami: asynchroniczne muteksy
- Tablica grup: muteksy synchroniczne
- Grupy: kanały rozgłoszeniowe paczki tokio
- Podstawowe wartości future i wykonawcy: kiedy warto ponownie sprawdzać wartość future?
- Wywoływanie funkcji aktywujących: spawn_blocking
- Implementacja funkcji block_on
- Typ Pin i jego stosowanie
- Dwa etapy życia danych typ future
- Przypięte wskaźniki
- Zestaw metod Unpin
- Kiedy warto stosować kod asynchroniczny?
- Podstawy
- Rozwijanie makra
- Niezamierzone skutki
- Powtórzenia
- Makra wbudowane
- Debugowanie makr
- Pisanie makra json!
- Typy składników
- Makra a rekurencja
- Makra i zestawy metod
- Zakres i higiena
- Import i eksport makr
- Unikanie błędów składniowych w procesie dopasowywania
- macro_rules! i co dalej?
- Dlaczego niebezpieczny?
- Bloki unsafe
- Przykład: wydajny typ łańcucha znaków ASCII
- Funkcje unsafe
- Kod niebezpieczny czy funkcja niebezpieczna?
- Działanie niezdefiniowane
- Zestawy metod unsafe
- Wskaźniki niechronione
- Bezpieczne tworzenie dereferencji wskaźników niechronionych
- Przykład: RefWithFlag
- Wskaźniki dopuszczające wartość pustą
- Rozmiary i rozmieszczanie typów
- Operacje arytmetyczne na wskaźnikach
- Wchodzenie do pamięci i wychodzenie z pamięci
- Przykład: GapBuffer
- Bezpieczeństwo błędów paniki w kodzie niebezpiecznym
- Ponowna interpretacja pamięci z użyciem unii
- Dopasowywanie unii
- Pożyczanie unii
- Wyszukiwanie wspólnych reprezentacji danych
- Deklarowanie obcych funkcji i zmiennych
- Korzystanie z funkcji i bibliotek
- Interfejs niechroniony dla biblioteki libgit2
- Interfejs bezpieczny dla biblioteki libgit2
- Podsumowanie
Wstęp
Rozdział 1. Programiści systemowi mogą mieć fajne zabawki
Rozdział 2. Pierwsze spotkanie z Rustem
Rozdział 3. Typy proste
Rozdział 4. Reguła własności i przenoszenie własności
Rozdział 5. Referencje
Rozdział 6. Wyrażenia
Rozdział 7. Obsługa błędów
Rozdział 8. Paczki i moduły
Rozdział 9. Struktury
Rozdział 10. Typy wyliczeniowe i wzorce
Rozdział 11. Zestawy metod i typy generyczne
Rozdział 12. Przeciążanie operatorów
Rozdział 13. Interfejsy narzędziowe
Rozdział 14. Domknięcia
Rozdział 15. Iteratory
Rozdział 16. Kolekcje
Rozdział 17. Tekst i łańcuchy znaków
Rozdział 18. Operacje wejścia - wyjścia
Rozdział 19. Programowanie współbieżne
Rozdział 20. Programowanie asynchroniczne
Rozdział 21. Makra
Rozdział 22. Kod niebezpieczny
Rozdział 23. Funkcje obce
Skorowidz
Helion - inne książki
-
Najnowsza książka Witolda Wrotka liczy - jak sugeruje tytuł - 55 rozdziałów, które stanowią stopniowe wprowadzenie w świat elektroniki, a konkretnie tranzystorów i zbudowanych na ich podstawie układów. Treść zawarta w tym przystępnym przewodniku została zilustrowana licznymi schematami i niejedno...(38.94 zł najniższa cena z 30 dni)
38.94 zł
59.90 zł(-35%) -
Niniejsza książka jest przeznaczona dla kadry kierowniczej najwyższego szczebla oraz dla osób sterujących rozwojem oprogramowania w firmie. Ma pomóc w zrozumieniu problemów strategicznych, z jakimi te osoby się mierzą, a także ułatwić wybór najlepszego rozwiązania architektonicznego. W książce op...
Strategiczne monolity i mikrousługi. Jak napędzać innowacyjność za pomocą przemyślanej architektury Strategiczne monolity i mikrousługi. Jak napędzać innowacyjność za pomocą przemyślanej architektury
(44.85 zł najniższa cena z 30 dni)44.85 zł
69.00 zł(-35%) -
To książka przeznaczona dla użytkowników komputerów pracujących pod kontrolą Linuksa. Znalazły się w niej tak ważne kwestie, jak omówienie komponentów o krytycznym znaczeniu i mechanizmów kontroli dostępu czy wyjaśnienie systemu plików w Linuksie. Umieszczono tu również liczne wskazówki i ćwiczen...
Nowoczesny Linux. Przewodnik dla użytkownika natywnej chmury Nowoczesny Linux. Przewodnik dla użytkownika natywnej chmury
(44.85 zł najniższa cena z 30 dni)44.85 zł
69.00 zł(-35%) -
Ta książka powstała z myślą o architektach oprogramowania, projektantach, programistach i dyrektorach do spraw technicznych. Zwięźle i przystępnie opisano w niej, jak zadbać o bezpieczeństwo na wczesnym etapie projektowania oprogramowania i jak zaangażować w ten proces cały team. Najpierw zapreze...
Po pierwsze: bezpieczeństwo. Przewodnik dla twórców oprogramowania Po pierwsze: bezpieczeństwo. Przewodnik dla twórców oprogramowania
(51.35 zł najniższa cena z 30 dni)51.35 zł
79.00 zł(-35%) -
Przeczytasz o tym, jak wykrywać nowe luki w oprogramowaniu, jak tworzyć trojany i rootkity, a także jak używać techniki wstrzykiwania SQL. Zapoznasz się również z szeroką gamą narzędzi do przeprowadzania testów penetracyjnych (takich jak Metasploit Framework, mimikatz i BeEF), rozeznasz się w dzi...
Etyczny haking. Praktyczne wprowadzenie do hakingu Etyczny haking. Praktyczne wprowadzenie do hakingu
(53.40 zł najniższa cena z 30 dni)57.85 zł
89.00 zł(-35%) -
Ta książka jest kompleksowym i praktycznym przewodnikiem po hakowaniu aplikacji internetowych w ramach udziału w programach bug bounty. Znajdziesz w niej wszystkie niezbędne informacje, od budowania relacji z klientami i pisania znakomitych raportów o błędach w zabezpieczeniach po naukę zaawansow...
Bug Bounty Bootcamp. Przewodnik po tropieniu i zgłaszaniu luk w zabezpieczeniach Bug Bounty Bootcamp. Przewodnik po tropieniu i zgłaszaniu luk w zabezpieczeniach
(59.40 zł najniższa cena z 30 dni)64.35 zł
99.00 zł(-35%) -
Paweł Zaręba, autor Praktycznych projektów sieciowych, od wielu lat związany z branżą IT i ICT, za namową swoich wiernych czytelników napisał drugą książkę. Tę wcześniejszą można traktować jako kompendium wiedzy na temat sieci komputerowych - Projekty i rozwiązania sieciowe w praktyce są niejako ...(41.40 zł najniższa cena z 30 dni)
44.85 zł
69.00 zł(-35%) -
Autor znanych czytelnikom wydawnictwa Helion książek między innymi na temat otwartoźródłowego systemu operacyjnego przygotował szóstą już edycję przewodnika po komendach i poleceniach Linuksa. W kieszonkowym leksykonie omówił posługiwanie się komputerem z Linuksem na pokładzie za pomocą poleceń, ...(23.94 zł najniższa cena z 30 dni)
25.93 zł
39.90 zł(-35%) -
Współczesnym przemysłem rządzi… informatyka. Ta dziedzina stale się rozwija i zagarnia pod swoje skrzydła kolejne sektory ― od produkcji, przez logistykę i księgowość, po dystrybucję i sprzedaż. Tyle teorii. W praktyce zaś często się okazuje, że podczas gdy otoczenie biznesowe i techn...
Digitalizacja w systemach automatyki SIMATIC. Teoria, przykłady, ćwiczenia Digitalizacja w systemach automatyki SIMATIC. Teoria, przykłady, ćwiczenia
(59.40 zł najniższa cena z 30 dni)64.35 zł
99.00 zł(-35%) -
Ta książka jest zwięzłym, skupionym na praktyce przewodnikiem po Pythonie w wersji 3.6 i nowszych. Dzięki niej skoncentrujesz się na rdzeniu języka i podstawowych zagadnieniach, które musisz doskonale opanować, jeśli chcesz pisać w nim dobry kod. Dowiesz się zatem, jak działa Python i jakich zasa...(41.40 zł najniższa cena z 30 dni)
44.85 zł
69.00 zł(-35%)
Dzieki opcji "Druk na żądanie" do sprzedaży wracają tytuły Grupy Helion, które cieszyły sie dużym zainteresowaniem, a których nakład został wyprzedany.
Dla naszych Czytelników wydrukowaliśmy dodatkową pulę egzemplarzy w technice druku cyfrowego.
Co powinieneś wiedzieć o usłudze "Druk na żądanie":
- usługa obejmuje tylko widoczną poniżej listę tytułów, którą na bieżąco aktualizujemy;
- cena książki może być wyższa od początkowej ceny detalicznej, co jest spowodowane kosztami druku cyfrowego (wyższymi niż koszty tradycyjnego druku offsetowego). Obowiązująca cena jest zawsze podawana na stronie WWW książki;
- zawartość książki wraz z dodatkami (płyta CD, DVD) odpowiada jej pierwotnemu wydaniu i jest w pełni komplementarna;
- usługa nie obejmuje książek w kolorze.
W przypadku usługi "Druk na żądanie" termin dostarczenia przesyłki może obejmować także czas potrzebny na dodruk (do 10 dni roboczych)
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka, którą chcesz zamówić pochodzi z końcówki nakładu. Oznacza to, że mogą się pojawić drobne defekty (otarcia, rysy, zagięcia).
Co powinieneś wiedzieć o usłudze "Końcówka nakładu":
- usługa obejmuje tylko książki oznaczone tagiem "Końcówka nakładu";
- wady o których mowa powyżej nie podlegają reklamacji;
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.


Oceny i opinie klientów: Programowanie w języku Rust. Wydajność i bezpieczeństwo. Wydanie II Jim Blandy, Jason Orendorff, Leonora F. S. Tindall (4)
Weryfikacja opinii następuję na podstawie historii zamówień na koncie Użytkownika umieszczającego opinię. Użytkownik mógł otrzymać punkty za opublikowanie opinii uprawniające do uzyskania rabatu w ramach Programu Punktowego.
(1)
(2)
(0)
(0)
(0)
(1)
Michał,
Data dodania: 2023-01-18 Ocena: 6 Opinia potwierdzona zakupem
Data dodania: 2022-12-03 Ocena: 5 Opinia potwierdzona zakupem
Oceny i opinie poprzedniego wydania
Artur Kielak,
Data dodania: 2020-03-16 Ocena: 5 Opinia potwierdzona zakupem
Filip,
Data dodania: 2021-12-18 Ocena: 1 Opinia potwierdzona zakupem
więcej opinii