دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش: [2 ed.] نویسندگان: Nathan Kozyra, Matt Butcher, and Matt Farina سری: ISBN (شابک) : 9781633436886 ناشر: Manning Publications Co. سال نشر: 2024 تعداد صفحات: زبان: English فرمت فایل : EPUB (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 7 Mb
در صورت ایرانی بودن نویسنده امکان دانلود وجود ندارد و مبلغ عودت داده خواهد شد
در صورت تبدیل فایل کتاب Go in Practice, Second Edition به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب در عمل بروید ، نسخه دوم نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
Praise for the first edition
Go in Practice, Second Edition
copyright
dedication
contents
preface
acknowledgments
about this book
Who should read this book?
How this book is organized: A road map
About the code
liveBook discussion forum
Other online resources
about the authors
about the cover illustration
Part 1 Background and fundamentals
1 Getting started with Go
1.1 What is Go?
1.2 Noteworthy aspects of Go
1.2.1 Multiple return values
1.2.2 A modern standard library
1.2.3 Concurrency with goroutines and channels
1.2.4 Go the toolchain: More than a language
1.3 Go in the vast language landscape
1.3.1 C and Go
1.3.2 Rust, Zig, Nim, and Go
1.3.3 Java and Go
1.3.4 Python, PHP, JavaScript, and Go
1.4 Getting up and running in Go
1.4.1 Installing Go
1.4.2 Working with Git and version control
1.4.3 Exploring the workspace
1.4.4 Working with environment variables
1.4.5 Using artificial intelligence tools with Go
1.5 Hello, Go
Summary
2 A solid foundation: Building a command-line application
2.1 Building CLI applications the Go way
2.1.1 Command-line flags
2.1.2 Defining valid values via enums
2.1.3 Slices, arrays, and maps
2.1.4 Command-line frameworks
2.2 Handling configuration
2.2.1 Using configuration files
2.2.2 Configuration via environment variables
2.3 Working with real-world web servers
2.3.1 Starting up and shutting down a server
2.3.2 Graceful shutdowns using OS signals
2.3.3 Routing web requests
Summary
3 Structs, interfaces, and generics
3.1 Using structs to represent data
3.1.1 Creating custom data structures
3.1.2 Functions inside structs
3.1.3 Anonymous identifiers
3.1.4 Tags in structs
3.1.5 Encoding data in JSON format
3.2 Contrasts with functional and object-oriented programming
3.3 Extending functionality with interfaces
3.4 Simplifying code with generics
3.4.1 Using functions with generics
3.4.2 Using constraints and type approximations
Summary
Part 2 Building robust applications
4 Handling errors and panics
4.1 Error handling
4.1.1 Nil best practices
4.1.2 Custom error types
4.1.3 Error variables
4.2 Wrapping errors
4.3 The panic system
4.3.1 Differentiating panics from errors
4.3.2 Working with panics
4.3.3 Recovering from panics
4.3.4 Capturing panics with defer
4.3.5 Handling panics on goroutines
Summary
5 Concurrency in Go
5.1 Understanding Go’s concurrency model
5.2 Working with goroutines
5.2.1 Waiting for goroutines
5.2.2 Locking with a mutex
5.3 Working with channels
5.3.1 Using channels
5.3.2 Closing channels
5.3.3 Locking with buffered channels
Summary
6 Formatting, testing, debugging, and benchmarking
6.1 Keeping your code and projects clean
6.1.1 Keeping code well formatted
6.1.2 Catching common errors with go vet
6.1.3 Keeping dependencies updated
6.2 Logging
6.2.1 Logging data to different outputs
6.2.2 Going deeper with structured logging
6.2.3 Accessing and capturing stack traces
6.3 Unit testing in Go
6.3.1 Creating a test suit with table-driven tests
6.3.2 Fuzzing test input
6.3.3 Annotating tests with names
6.3.4 Checking test coverage with go cover
6.3.5 Wait, where is my debugger?
6.4 Benchmarking and performance tuning
Summary
7 File access and basic networking
7.1 Dealing with files
7.1.1 Reading files
7.1.2 Writing to files
7.2 Basic networking via TCP
7.2.1 Logging to a network resource
7.2.2 Handling back pressure in network logging
7.3 Basic networking with UDP
7.4 Websockets and server-sent events
7.4.1 Implementing websockets for real-time chat
7.4.2 Server-sent events
Summary
Part 3 Building web applications end to end
8 Building an HTTP server
8.1 Routing requests and accepting data
8.1.1 Routing via HTTP verbs
8.1.2 More control over our server
8.2 Routing path values
8.2.1 Accepting POST data and query parameters
8.2.2 Processing form data
8.2.3 Reading and writing cookies and other header data
8.2.4 Processing JSON Web Tokens
8.3 Generating errors and basic authentication
Summary
9 HTML and email template patterns
9.1 Working with HTML templates
9.1.1 Standard library HTML package overview
9.1.2 Adding functionality inside templates
9.1.3 Limiting template parsing
9.1.4 When template execution breaks
9.1.5 Mixing templates
9.2 Using templates for email
Summary
10 Sending and receiving data
10.1 Serving static content
10.1.1 Serving subdirectories
10.1.2 Using a file server with custom error pages
10.1.3 Embedding files in a binary
10.1.4 Serving from an alternative location
10.2 Advanced form processing
10.2.1 Handling form requests
10.2.2 Accessing multiple values for a form field
10.2.3 Working with files and multipart submissions
10.2.4 Uploading multiple files
10.2.5 Verifying that uploaded file is of an allowed type
10.2.6 Saving a file incrementally
Summary
11 Working with external services
11.1 Consuming REST APIs as a full-featured client
11.1.1 Using the HTTP client
11.1.2 When faults happen
11.2 Passing and handling errors over HTTP
11.2.1 Generating custom errors
11.2.2 Reading and using custom errors
11.3 Parsing and mapping JSON
11.4 Versioning REST APIs
11.4.1 API version in the URL
11.4.2 API version in content type
11.5 Working with gRPC
Summary
Part 4 Go in the cloud, microservices, and advanced topics
12 Cloud-ready applications and communications
12.1 Cloud computing overview
12.1.1 The types of cloud computing
12.1.2 Containers and cloud-native applications
12.2 Microservices and high availability
12.3 Communicating among services
12.3.1 Making REST faster
12.4 Running on cloud servers
12.4.1 Performing runtime detection
12.4.2 Building for the cloud
12.5 Performing runtime monitoring
Summary
13 Reflection, code generation, and advanced Go
13.1 Three features of reflection
13.1.1 Switching based on type and kind
13.1.2 Discovering whether a value implements an interface
13.1.3 Accessing fields on a struct
13.2 Structs, tags, and annotations
13.2.1 Annotating structs
13.2.2 Using tag annotations
13.2.3 Processing tags on a struct
13.3 Generating Go code with Go code
13.4 Working with other languages
Summary
index