{"product_id":"intermediate-rust-solomon-eseme-9798869931474","title":"Intermediate Rust: Intermediate Rust for Backend Engineers","description":"\u003cp\u003eThis book is designed to transform you into a true Rust expert, equipping you with the skills and knowledge to tackle intricate challenges and craft high-quality, performant code.\u003c\/p\u003e\u003cp\u003eWhat you will learn: \u003c\/p\u003e\u003col\u003e\n\u003cli\u003e\u003cp\u003e\u003cb\u003eAdvanced-Data Structures in Rust: \u003c\/b\u003eBesides data types and primary data structures, Rust supports more advanced data structures like HashMaps and Sets. Before we look into them, let's refresh our memory on the Vector data structure.\u003c\/p\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cb\u003eAdvanced Methods, Enums, and Pattern Matching: \u003c\/b\u003eWe have seen how methods work: when there is a struct, a method must be implemented for that struct to be able to use the data in the struct. Methods are also defined for enums and traits - concepts that we will explore after now. For now, let's revise some of the constructs of method implementations in general.\u003c\/p\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cb\u003eTraits and Generics in Rust: \u003c\/b\u003eIn our earlier exploration of the Result and Option enums, you encountered using and within angle brackets. These constructs are known as \u003cb\u003egenerics\u003c\/b\u003e. Generics are a powerful feature in programming that allows you to write functions, types, and structures that can work with different data types while maintaining type safety and code reusability.\u003c\/p\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cb\u003eLifetimes in Rust: \u003c\/b\u003eLifetimes is a fundamentally important concept that ensures that references remain valid and prevents issues like dangling pointers or references to memory that have been deallocated. To write safe and efficient Rust code, you must understand lifetimes and how to use them. This is one of Rust's most unique trademark features.\u003c\/p\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cb\u003eAdvanced Functions and Closures: \u003c\/b\u003eBy now, you must be good at writing functions in Rust. If you have prior programming experience, you would know that functions sometimes accept pointers as parameters. If you know functional programming, you must have heard about higher-order functions and closures. Let's take them step by step.\u003c\/p\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cb\u003eConcurrency and Multithreading in Rust: \u003c\/b\u003eThis chapter will explore the world of concurrency and multithreading. Concurrency allows you to handle multiple tasks simultaneously, while multithreading takes advantage of multiple CPU cores for parallel execution. Rust's strong ownership and type system help ensure safe and efficient concurrent programming.\u003c\/p\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cb\u003eError Handling in Rust: \u003c\/b\u003eThis chapter will delve into Rust's intricacies. Effective error handling is a cornerstone of robust and reliable software. We'll explore the Result and Option types, learn how to use the match and ? operators for error handling, implement custom error types using the thiserror crate, and discover how the Result type aids in early returns within functions. This chapter will use real-world backend engineering scenarios to illustrate each concept.\u003c\/p\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cb\u003eFile I\/O and Serialization: \u003c\/b\u003eThis comprehensive chapter will explore Rust's file input\/output (I\/O) operations and serialization. These topics are crucial for handling data in backend applications. We'll explore how to read and write files, perform serialization and deserialization using the serde crate, and work with various file formats like JSON and YAML.\u003c\/p\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cp\u003e\u003cb\u003eMilestone Project: Building a Task Management App: \u003c\/b\u003eWe'll build a task management application using Rust in this exciting milestone project. This project will encompass concepts covered in the previous chapters, including structuring your code, error handling, file I\/O, and more. Following these steps, you'll create a functional task manager allowing users to add, list, and mark tasks as completed.\u003c\/p\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\u003cp\u003eThis intermediate-level book dives deeper into Rust's features and concepts, enabling readers to develop more complex and robust applications.\u003c\/p\u003e\u003cp\u003ePractical examples, exercises, and a hands-on project will ensure that you build confidence and competence in intermediate Rust programming.\u003c\/p\u003e\u003cbr\u003e\u003cbr\u003e\u003cb\u003eAuthor:\u003c\/b\u003e Solomon Eseme\u003cbr\u003e\u003cb\u003eISBN-13:\u003c\/b\u003e 9798869931474\u003cbr\u003e\u003cb\u003ePublisher:\u003c\/b\u003e Independently Published\u003cbr\u003e\u003cb\u003eLanguage:\u003c\/b\u003e English\u003cbr\u003e\u003cb\u003ePublished:\u003c\/b\u003e 11\/26\/2023\u003cbr\u003e\u003cb\u003ePages:\u003c\/b\u003e 80\u003cbr\u003e\u003cb\u003eFormat:\u003c\/b\u003e Paperback\u003cbr\u003e\u003cb\u003eWeight:\u003c\/b\u003e 0.26lbs\u003cbr\u003e\u003cb\u003eSize:\u003c\/b\u003e 9.00h x 6.00w x 0.17d","brand":"Solomon Eseme","offers":[{"title":"Paperback","offer_id":48217787629823,"sku":"9798869931474","price":19.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0662\/2982\/9887\/files\/img_386c7299-caa3-4ce0-9a6f-ddfc9d3ff566.jpg?v=1771999448","url":"https:\/\/www.whiterainbookhouse.com\/products\/intermediate-rust-solomon-eseme-9798869931474","provider":"WR Book House","version":"1.0","type":"link"}