ورود به حساب

نام کاربری گذرواژه

گذرواژه را فراموش کردید؟ کلیک کنید

حساب کاربری ندارید؟ ساخت حساب

ساخت حساب کاربری

نام نام کاربری ایمیل شماره موبایل گذرواژه

برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید


09117307688
09117179751

در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید

دسترسی نامحدود

برای کاربرانی که ثبت نام کرده اند

ضمانت بازگشت وجه

درصورت عدم همخوانی توضیحات با کتاب

پشتیبانی

از ساعت 7 صبح تا 10 شب

دانلود کتاب Learning Go: An Idiomatic Approach to Real-world Go Programming, 2nd Edition

دانلود کتاب Learning Go: An Idiomatic Approach to Real-World Go Programming، ویرایش دوم

Learning Go: An Idiomatic Approach to Real-world Go Programming, 2nd Edition

مشخصات کتاب

Learning Go: An Idiomatic Approach to Real-world Go Programming, 2nd Edition

ویرایش: [2 ed.] 
نویسندگان:   
سری:  
ISBN (شابک) : 1098139291, 9781098139292 
ناشر: O'Reilly Media 
سال نشر: 2024 
تعداد صفحات: 491
[494] 
زبان: English 
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) 
حجم فایل: 5 Mb 

قیمت کتاب (تومان) : 56,000



ثبت امتیاز به این کتاب

میانگین امتیاز به این کتاب :
       تعداد امتیاز دهندگان : 10


در صورت تبدیل فایل کتاب Learning Go: An Idiomatic Approach to Real-world Go Programming, 2nd Edition به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.

توجه داشته باشید کتاب Learning Go: An Idiomatic Approach to Real-World Go Programming، ویرایش دوم نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.


توضیحاتی در مورد کتاب Learning Go: An Idiomatic Approach to Real-World Go Programming، ویرایش دوم

Go به سرعت به زبان ترجیحی برای ساخت سرویس های وب تبدیل شده است. آموزش های زیادی برای آموزش نحو Go به توسعه دهندگان با تجربه در سایر زبان های برنامه نویسی موجود است، اما آموزش ها کافی نیستند. آنها اصطلاحات Go را آموزش نمی دهند، بنابراین توسعه دهندگان در نهایت الگوهایی را بازسازی می کنند که در زمینه Go معنی ندارند. این راهنمای عملی پیش زمینه ضروری برای نوشتن Go واضح و اصطلاحی را فراهم می کند. مهم نیست سطح تجربه شما، شما یاد خواهید گرفت که چگونه مانند یک توسعه دهنده Go فکر کنید. نویسنده Jon Bodner الگوهای طراحی را که توسعه دهندگان با تجربه Go اتخاذ کرده اند معرفی می کند و دلیل استفاده از آنها را بررسی می کند. این نسخه به‌روزرسانی شده همچنین به شما نشان می‌دهد که چگونه پشتیبانی عمومی Go با زبان سازگار است. این کتاب به شما کمک می کند: کد اصطلاحی را در Go بنویسید و پروژه Go را طراحی کنید دلایل تصمیمات طراحی Go را درک کنید یک محیط توسعه Go برای یک توسعه دهنده یا تیم انفرادی راه اندازی کنید یاد بگیرید چگونه و چه زمانی از بازتاب، ناامن و cgo استفاده کنید Discover چگونه ویژگی‌های Go به زبان اجازه می‌دهد کارآمد اجرا شود بدانید از کدام ویژگی‌های Go باید کم استفاده کنید یا اصلاً استفاده نکنید از ابزارهای Go برای بهبود عملکرد، بهینه‌سازی استفاده از حافظه و کاهش جمع‌آوری زباله استفاده کنید نحوه استفاده از Go را بیاموزید. ابزارهای توسعه پیشرفته


توضیحاتی درمورد کتاب به خارجی

Go has rapidly become the preferred language for building web services. Plenty of tutorials are available to teach Go\'s syntax to developers with experience in other programming languages, but tutorials aren\'t enough. They don\'t teach Go\'s idioms, so developers end up recreating patterns that don\'t make sense in a Go context. This practical guide provides the essential background you need to write clear and idiomatic Go. No matter your level of experience, you\'ll learn how to think like a Go developer. Author Jon Bodner introduces the design patterns experienced Go developers have adopted and explores the rationale for using them. This updated edition also shows you how Go\'s generics support fits into the language. This book helps you: Write idiomatic code in Go and design a Go project Understand the reasons behind Go\'s design decisions Set up a Go development environment for a solo developer or team Learn how and when to use reflection, unsafe, and cgo Discover how Go\'s features allow the language to run efficiently Know which Go features you should use sparingly or not at all Use Go\'s tools to improve performance, optimize memory usage, and reduce garbage collection Learn how to use Go\'s advanced development tools



فهرست مطالب

Copyright
Table of Contents
Preface
	Who Should Read This Book
	Conventions Used in This Book
	Using Code Examples
	O’Reilly Online Learning
	How to Contact Us
	Acknowledgments for the 2nd Edition
	Acknowledgments for the 1st Edition
Chapter 1. Setting Up Your Go Environment
	Installing the Go Tools
		Troubleshooting Your Go Installation
		Go Tooling
	Your First Go Program
		Making a Go Module
		go build
		go fmt
		go vet
	Choose Your Tools
		Visual Studio Code
		GoLand
		The Go Playground
	Makefiles
	The Go Compatibility Promise
	Staying Up-to-Date
	Exercises
	Wrapping Up
Chapter 2. Predeclared Types and Declarations
	The Predeclared Types
		The Zero Value
		Literals
		Booleans
		Numeric Types
		A Taste of Strings and Runes
		Explicit Type Conversion
		Literals Are Untyped
	var Versus :=
	Using const
	Typed and Untyped Constants
	Unused Variables
	Naming Variables and Constants
	Exercises
	Wrapping Up
Chapter 3. Composite Types
	Arrays—Too Rigid to Use Directly
	Slices
		len
		append
		Capacity
		make
		Emptying a Slice
		Declaring Your Slice
		Slicing Slices
		copy
		Converting Arrays to Slices
		Converting Slices to Arrays
	Strings and Runes and Bytes
	Maps
		Reading and Writing a Map
		The comma ok Idiom
		Deleting from Maps
		Emptying a Map
		Comparing Maps
		Using Maps as Sets
	Structs
		Anonymous Structs
		Comparing and Converting Structs
	Exercises
	Wrapping Up
Chapter 4. Blocks, Shadows, and Control Structures
	Blocks
	Shadowing Variables
	if   
	for, Four Ways
		The Complete for Statement
		The Condition-Only for Statement
		The Infinite for Statement
		break and continue
		The for-range Statement
		Labeling Your for Statements
		Choosing the Right for Statement
	switch
		Blank Switches
		Choosing Between if and switch
	goto—Yes, goto
	Exercises
	Wrapping Up
Chapter 5. Functions
	Declaring and Calling Functions
		Simulating Named and Optional Parameters
		Variadic Input Parameters and Slices
		Multiple Return Values
		Multiple Return Values Are Multiple Values
		Ignoring Returned Values
		Named Return Values
		Blank Returns—Never Use These!
	Functions Are Values
		Function Type Declarations
		Anonymous Functions
	Closures
		Passing Functions as Parameters
		Returning Functions from Functions
	defer
	Go Is Call by Value
	Exercises
	Wrapping Up
Chapter 6. Pointers
	A Quick Pointer Primer
	Don’t Fear the Pointers
	Pointers Indicate Mutable Parameters
	Pointers Are a Last Resort
	Pointer Passing Performance
	The Zero Value Versus No Value
	The Difference Between Maps and Slices
	Slices as Buffers
	Reducing the Garbage Collector’s Workload
	Tuning the Garbage Collector
	Exercises
	Wrapping Up
Chapter 7. Types, Methods, and Interfaces
	Types in Go
	Methods
		Pointer Receivers and Value Receivers
		Code Your Methods for nil Instances
		Methods Are Functions Too
		Functions Versus Methods
		Type Declarations Aren’t Inheritance
		Types Are Executable Documentation
	iota Is for Enumerations—Sometimes
	Use Embedding for Composition
	Embedding Is Not Inheritance
	A Quick Lesson on Interfaces
	Interfaces Are Type-Safe Duck Typing
	Embedding and Interfaces
	Accept Interfaces, Return Structs
	Interfaces and nil
	Interfaces Are Comparable
	The Empty Interface Says Nothing
	Type Assertions and Type Switches
	Use Type Assertions and Type Switches Sparingly
	Function Types Are a Bridge to Interfaces
	Implicit Interfaces Make Dependency Injection Easier
	Wire
	Go Isn’t Particularly Object-Oriented (and That’s Great)
	Exercises
	Wrapping Up
Chapter 8. Generics
	Generics Reduce Repetitive Code and Increase Type Safety
	Introducing Generics in Go
	Generic Functions Abstract Algorithms
	Generics and Interfaces
	Use Type Terms to Specify Operators
	Type Inference and Generics
	Type Elements Limit Constants
	Combining Generic Functions with Generic Data Structures
	More on comparable
	Things That Are Left Out
	Idiomatic Go and Generics
	Adding Generics to the Standard Library
	Future Features Unlocked
	Exercises
	Wrapping Up
Chapter 9. Errors
	How to Handle Errors: The Basics
	Use Strings for Simple Errors
	Sentinel Errors
	Errors Are Values
	Wrapping Errors
	Wrapping Multiple Errors
	Is and As
	Wrapping Errors with defer
	panic and recover
	Getting a Stack Trace from an Error
	Exercises
	Wrapping Up
Chapter 10. Modules, Packages, and Imports
	Repositories, Modules, and Packages
	Using go.mod
		Use the go Directive to Manage Go Build Versions
		The require Directive
	Building Packages
		Importing and Exporting
		Creating and Accessing a Package
		Naming Packages
		Overriding a Package’s Name
		Documenting Your Code with Go Doc Comments
		Using the internal Package
		Avoiding Circular Dependencies
		Organizing Your Module
		Gracefully Renaming and Reorganizing Your API
		Avoiding the init Function if Possible
	Working with Modules
		Importing Third-Party Code
		Working with Versions
		Minimal Version Selection
		Updating to Compatible Versions
		Updating to Incompatible Versions
		Vendoring
		Using pkg.go.dev
	Publishing Your Module
	Versioning Your Module
		Overriding Dependencies
		Retracting a Version of Your Module
		Using Workspaces to Modify Modules Simultaneously
	Module Proxy Servers
		Specifying a Proxy Server
		Using Private Repositories
	Additional Details
	Exercises
	Wrapping Up
Chapter 11. Go Tooling
	Using go run to Try Out Small Programs
	Adding Third-Party Tools with go install
	Improving Import Formatting with goimports
	Using Code-Quality Scanners
		staticcheck
		revive
		golangci-lint
	Using govulncheck to Scan for Vulnerable Dependencies
	Embedding Content into Your Program
	Embedding Hidden Files
	Using go generate
	Working with go generate and Makefiles
	Reading the Build Info Inside a Go Binary
	Building Go Binaries for Other Platforms
	Using Build Tags
	Testing Versions of Go
	Using go help to Learn More About Go Tooling
	Exercises
	Wrapping Up
Chapter 12. Concurrency in Go
	When to Use Concurrency
	Goroutines
	Channels
		Reading, Writing, and Buffering
		Using for-range and Channels
		Closing a Channel
		Understanding How Channels Behave
	select
	Concurrency Practices and Patterns
		Keep Your APIs Concurrency-Free
		Goroutines, for Loops, and Varying Variables
		Always Clean Up Your Goroutines
		Use the Context to Terminate Goroutines
		Know When to Use Buffered and Unbuffered Channels
		Implement Backpressure
		Turn Off a case in a select
		Time Out Code
		Use WaitGroups
		Run Code Exactly Once
		Put Your Concurrent Tools Together
	When to Use Mutexes Instead of Channels
	Atomics—You Probably Don’t Need These
	Where to Learn More About Concurrency
	Exercises
	Wrapping Up
Chapter 13. The Standard Library
	io and Friends
	time
		Monotonic Time
		Timers and Timeouts
	encoding/json
		Using Struct Tags to Add Metadata
		Unmarshaling and Marshaling
		JSON, Readers, and Writers
		Encoding and Decoding JSON Streams
		Custom JSON Parsing
	net/http
		The Client
		The Server
		ResponseController
	Structured Logging
	Exercises
	Wrapping Up
Chapter 14. The Context
	What Is the Context?
	Values
	Cancellation
	Contexts with Deadlines
	Context Cancellation in Your Own Code
	Exercises
	Wrapping Up
Chapter 15. Writing Tests
	Understanding the Basics of Testing
		Reporting Test Failures
		Setting Up and Tearing Down
		Testing with Environment Variables
		Storing Sample Test Data
		Caching Test Results
		Testing Your Public API
		Using go-cmp to Compare Test Results
	Running Table Tests
	Running Tests Concurrently
	Checking Your Code Coverage
	Fuzzing
	Using Benchmarks
	Using Stubs in Go
	Using httptest
	Using Integration Tests and Build Tags
	Finding Concurrency Problems with the Data Race Detector
	Exercises
	Wrapping Up
Chapter 16. Here Be Dragons: Reflect, Unsafe, and Cgo
	Reflection Lets You Work with Types at Runtime
		Types, Kinds, and Values
		Make New Values
		Use Reflection to Check If an Interface’s Value Is nil
		Use Reflection to Write a Data Marshaler
		Build Functions with Reflection to Automate Repetitive Tasks
		You Can Build Structs with Reflection, but Don’t
		Reflection Can’t Make Methods
		Use Reflection Only if It’s Worthwhile
	unsafe Is Unsafe
		Using Sizeof and Offsetof
		Using unsafe to Convert External Binary Data
		Accessing Unexported Fields
		Using unsafe Tools
	Cgo Is for Integration, Not Performance
	Exercises
	Wrapping Up
Index
About the Author
Colophon




نظرات کاربران