Salt la conținut
Coperta cărții Advanced Technologies for Application Development
CarteSub tipar

Advanced Technologies for Application Development

Problem Solving in Go and Rust

Go și Rust ca instrumente complementare pentru aceeași clasă de probleme de inginerie.

EnglezăGoRust19 capitole7 anexeBibTeX

Date

Autor
Valer Bocan
Editură
Editura Politehnica, Timișoara
An
2026
Ediția
I
Pagini
457
ISBN
978-606-35-0714-4
Limbă
Engleză
Stare
Sub tipar

Despre carte

Go și Rust, tratate nu ca rivale, ci ca instrumente complementare pentru aceeași clasă de probleme de inginerie. Cartea urmărește fiecare limbaj de la toolchain până la un serviciu HTTP de producție: goroutine, canale, select și context în Go; ownership, borrowing și lifetimes în Rust; tratarea erorilor fără excepții; concurență garantată de compilator; și testare, benchmarking, profilare și fuzzing.

Accentul cade pe rezolvarea problemelor, nu pe un tur al sintaxei, cu anexe despre dezvoltarea securizată, trecerea granițelor dintre limbaje și citirea erorilor de compilare.

Cuprins

19 capitole
titluri în limba engleză
  1. 1
    The Landscape of Modern Systems Programming
    Beyond Garbage-Collected Languages · Go: Simplicity as a Feature · Rust: Safety Without Compromise · Comparing Go and Rust · How This Book Is Organized

Part I · Go

  1. 2
    Getting Started with Go
    The Go Toolchain · Modules and Packages · Program Structure · Development Environments
  2. 3
    Types, Variables, and Control Flow in Go
    Basic Types · Variables and Constants · Operators · Control Flow · Pointers
  3. 4
    Functions, Methods, and Error Handling in Go
    Functions · Methods · Error Handling · Deferred Execution
  4. 5
    Composite Types and Data Modeling in Go
    Arrays · Slices · Maps · Structs · Working with JSON
  5. 6
    Interfaces and Generics in Go
    Interfaces · Generics · Design Patterns with Interfaces
  6. 7
    Concurrent Programming with Goroutines and Channels
    Concurrency vs. Parallelism · Goroutines · Channels · The select Statement · Synchronization Primitives · The context Package · Common Concurrency Patterns
  7. 8
    Testing, Benchmarking, and Profiling in Go
    The testing Package · Table-Driven Tests · Test Helpers and Utilities · Test Coverage · Benchmarking · Profiling · Fuzzing
  8. 9
    Building HTTP Services in Go
    The net/http Package · Building a REST API · Middleware · Working with Databases · The HTTP Client · Structured Logging with slog

Part II · Rust

  1. 10
    Getting Started with Rust
    The Rust Toolchain · Cargo: The Build System and Package Manager · Program Structure · Development Environments · The Compiler as Teacher
  2. 11
    Types, Variables, and Control Flow in Rust
    Variables and Mutability · Scalar Types · Compound Types · Strings · Type Conversions · Control Flow
  3. 12
    Ownership, Borrowing, and Lifetimes
    The Ownership Model · References and Borrowing · Slices · Lifetimes · How This Differs from Go
  4. 13
    Structs, Methods, and Data Modeling in Rust
    Defining Structs · Methods and Associated Functions · Deriving Common Functionality · Visibility and Encapsulation
  5. 14
    Enums, Pattern Matching, and Error Handling in Rust
    Enums · Pattern Matching with match · if let and while let · The Option<T> Type · The Result<T, E> Type · Custom Error Types · When to Panic vs. When to Return Result
  6. 15
    Generics, Traits, and Polymorphism in Rust
    Generic Types · Traits · Trait Bounds · Trait Objects and Dynamic Dispatch · Common Standard Library Traits · Supertraits
  7. 16
    Iterators, Closures, and Collections in Rust
    Closures · Iterators · Collections · Loops vs. Iterators: Performance Comparison
  8. 17
    Concurrency and Smart Pointers in Rust
    Smart Pointers · Fearless Concurrency · Message Passing with Channels · Shared State Concurrency · The Send and Sync Traits · Introduction to Async Programming
  9. 18
    Testing, Benchmarking, and Profiling in Rust
    Unit Tests · Integration Tests · Test Organization and Control · Mocking and Test Doubles · Benchmarking · Property-Based Testing · Code Coverage and Profiling
  10. 19
    Building HTTP Services in Rust
    The Rust Web Ecosystem · Building a REST API with axum · Serialization with serde · Middleware with Tower · Database Access with sqlx · The HTTP Client with reqwest · Structured Logging with tracing

Anexe

  1. A
    Development Environment Setup
  2. B
    Go Quick Reference
  3. C
    Rust Quick Reference
  4. D
    Secure Development in Go and Rust
  5. E
    Interoperability Across the Language Boundary
  6. F
    Building, Shipping, and Operating
  7. G
    Reading Compiler Errors

Recenzii

“This book is a textbook and a detailed source of information, aimed primarily at students and IT professionals who want to become familiar with two modern programming languages and to use them to build reliable, concurrent, predictable applications with a high degree of safety.”

Prof. Mihai V. MiceaUniversitatea Politehnica Timișoara

“This book offers a comparative, applied perspective, taking the reader on a practical journey through programming in both languages, so that choosing either one can be a fully informed decision.”

Conf. Lucian ProdanUniversitatea Politehnica Timișoara

“The sequence of chapters, the balance between fundamental concepts and advanced techniques, and the orientation towards practical applications all speak for the book's value in teaching and in professional practice.”

Conf. Ciprian-Bogdan ChirilăUniversitatea Politehnica Timișoara

Citare

@book{bocan2026gorust,
  author    = {Bocan, Valer},
  title     = {Advanced Technologies for Application Development: Problem Solving in Go and Rust},
  publisher = {Editura Politehnica},
  address   = {Timișoara},
  year      = {2026},
  pages     = {457},
  isbn      = {978-606-35-0714-4},
  language  = {english},
  note      = {In press}
}