Opis ebooka: Learning Go. 2nd Edition
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
Wybrane bestsellery
-
Ten praktyczny przewodnik jest przeznaczony dla osób, które chcą się nauczyć myśleć jak rasowi programiści Go. Dzięki niemu zaczniesz pisać idiomatyczny kod w Go, co pozwoli Ci optymalnie wykorzystywać możliwości tego języka. Dowiesz się, jak wygląda środowisko programistyczne Go i w jaki sposób ...
Język Go. Tworzenie idiomatycznego kodu w praktyce Język Go. Tworzenie idiomatycznego kodu w praktyce
(53.40 zł najniższa cena z 30 dni)62.30 zł
89.00 zł(-30%) -
Ta książka pomoże Ci się przygotować do pracy na stanowisku testera oprogramowania, a także zapewni wsparcie podczas wykonywania nowych zadań. Znajdziesz tu dokładne omówienie podstaw testowania, jego różnych rodzajów i poziomów w odniesieniu do zastosowania na różnych etapach pracy nad projektem...
Tester samouk. Praktyczny przewodnik po testowaniu oprogramowania na bazie gotowego projektu Tester samouk. Praktyczny przewodnik po testowaniu oprogramowania na bazie gotowego projektu
(35.40 zł najniższa cena z 30 dni)41.30 zł
59.00 zł(-30%) -
Firmy z branży IT prześcigają się w tworzeniu rozwiązań zwiększających wydajność pracy, jak również podnoszących poziom specjalizacji pracowników w określonych dziedzinach. Od kilku już lat pozycja full stack developera, który wykonywał wszystkie prace programistyczne, jest wielką rzadkością. Obe...
Postman i SQL. Kurs video. Metody testowania REST API i przeszukiwania baz danych Postman i SQL. Kurs video. Metody testowania REST API i przeszukiwania baz danych
(39.90 zł najniższa cena z 30 dni)63.60 zł
159.00 zł(-60%) -
Testowanie oprogramowania to jedna z najdynamiczniej rozwijających się dziedzin inżynierii oprogramowania. Zarobki doświadczonych testerów są porównywalne z wynagrodzeniem, jakie otrzymują dobrzy programiści. Aby rozpocząć karierę w tym zawodzie, trzeba się legitymować odpowiednimi umiejętnościam...
Certyfikowany tester ISTQB®. Poziom podstawowy. Wydanie II Certyfikowany tester ISTQB®. Poziom podstawowy. Wydanie II
(65.40 zł najniższa cena z 30 dni)76.30 zł
109.00 zł(-30%) -
Właściwe wymagania to nie tylko kwestia ich dokumentacji, ale też przede wszystkim kwestia odpowiedniego ich pozyskania i walidacji. Dobrej jakości wymagania zmniejszają ryzyko produktowe i projektowe, pozwalają tworzyć systemy, które realnie spełniają potrzeby interesariuszy i umożliwiają im osi...
Inżynieria wymagań. Kurs video. Modelowanie wymagań i rozwiązań w projektach informatycznych Inżynieria wymagań. Kurs video. Modelowanie wymagań i rozwiązań w projektach informatycznych
(39.90 zł najniższa cena z 30 dni)76.05 zł
169.00 zł(-55%) -
Ten szczegółowy przewodnik pozwoli Ci na błyskawiczne zapoznanie się z .NET MAUI i sprawne rozpoczęcie pisania aplikacji za pomocą tej technologii. Zaprezentowano w nim filozofię działania .NET MAUI, jak również przebieg prac nad tworzeniem kompletnej aplikacji wieloplatformowej dla systemów: And...
Projektowanie aplikacji w .NET MAUI. Jak budować doskonałe interfejsy użytkownika dla aplikacji wieloplatformowych Projektowanie aplikacji w .NET MAUI. Jak budować doskonałe interfejsy użytkownika dla aplikacji wieloplatformowych
(47.40 zł najniższa cena z 30 dni)55.30 zł
79.00 zł(-30%) -
Jeśli zapytać aktywnych specjalistów branży IT o najpopularniejszy obecnie język programowania, większość z nich odpowie bez wahania: Python. Kto zatem rozważa rozpoczęcie kariery jako specjalista DevOps albo jako administrator systemów, zdecydowanie powinien zacząć naukę od opanowa...
Python dla administratorów. Kurs video. Od podstaw do automatyzacji pracy w świecie DevOps Python dla administratorów. Kurs video. Od podstaw do automatyzacji pracy w świecie DevOps
(39.90 zł najniższa cena z 30 dni)62.64 zł
179.00 zł(-65%) -
Testowanie manualne polega na uruchamianiu przypadków testowych ręcznie. Dla powodzenia projektu istotne jest rozpoczęcie testów na jak najwcześniejszym etapie pracy. W ten sposób zespół uzyskuje kontrolę nad błędami w kodzie i na bieżąco sprawdza, czy oprogramowanie spełnia określone w dokumenta...
Tester manualny. Kurs video. Testowanie wspierane narzędziami Tester manualny. Kurs video. Testowanie wspierane narzędziami
(39.90 zł najniższa cena z 30 dni)74.50 zł
149.00 zł(-50%) -
Czy wiesz, czym się zajmuje programista? To ktoś, kto, używając swojego umysłu i odpowiedniego języka programowania, rozwiązuje rozmaite problemy. Programista to taki współczesny superbohater. Przychodzi, siada do komputera, szybko przebiega palcami po klawiaturze i proszę ― działa. Oczywiś...
Python dla nastolatków. Projekty graficzne z Python Turtle Python dla nastolatków. Projekty graficzne z Python Turtle
(23.94 zł najniższa cena z 30 dni)27.93 zł
39.90 zł(-30%)
O autorze ebooka
Jon Bodner jest inżynierem oprogramowania i architektem z dwudziestoletnim doświadczeniem. Zajmował się tworzeniem i rozwijaniem aplikacji dla różnych sektorów, między innymi dla finansów, handlu, ochrony zdrowia czy administracji. Często występuje na konferencjach dotyczących języka Go. Jest też współautorem wielu narzędzi służących do rozwijania oprogramowania.
Ebooka "Learning Go. 2nd Edition" przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook, Onyx Boox 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 "Learning Go. 2nd Edition" 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 "Learning Go. 2nd Edition" zobaczysz:
-
w aplikacjach Ebookpoint i Videopoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych z dostępem do najnowszej wersji Twojej przeglądarki internetowej
Szczegóły ebooka
- ISBN Ebooka:
- 978-10-981-3925-4, 9781098139254
- Data wydania ebooka:
- 2024-01-10 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.
- Język publikacji:
- angielski
- Rozmiar pliku ePub:
- 3.8MB
- Rozmiar pliku Mobi:
- 10.4MB
Spis treści ebooka
- Preface
- Who Should Read This Book
- Conventions Used in This Book
- Using Code Examples
- OReilly Online Learning
- How to Contact Us
- Acknowledgments for the 2nd Edition
- Acknowledgments for the 1st Edition
- 1. Setting Up Your Go Environment
- Installing the Go Tools
- Troubleshooting Your Go Installation
- Go Tooling
- Installing the Go Tools
- 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
- 2. Predeclared Types and Declarations
- The Predeclared Types
- The Zero Value
- Literals
- Booleans
- Numeric Types
- Integer types
- The special integer types
- Choosing which integer to use
- Integer operators
- Floating-point types
- Complex types (youre probably not going to use these)
- A Taste of Strings and Runes
- Explicit Type Conversion
- Literals Are Untyped
- The Predeclared Types
- var Versus :=
- Using const
- Typed and Untyped Constants
- Unused Variables
- Naming Variables and Constants
- Exercises
- Wrapping Up
- 3. Composite Types
- ArraysToo 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
- 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
- Iterating over maps
- Iterating over strings
- The for-range value is a copy
- Labeling Your for Statements
- Choosing the Right for Statement
- switch
- Blank Switches
- Choosing Between if and switch
- gotoYes, goto
- Exercises
- Wrapping Up
- 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 ReturnsNever Use These!
- Declaring and Calling Functions
- 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
- 6. Pointers
- A Quick Pointer Primer
- Dont 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 Collectors Workload
- Tuning the Garbage Collector
- Exercises
- Wrapping Up
- 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 Arent Inheritance
- Types Are Executable Documentation
- iota Is for EnumerationsSometimes
- 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 Isnt Particularly Object-Oriented (and Thats Great)
- Exercises
- Wrapping Up
- 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
- 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
- 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 Packages 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
- 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
- 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
- AtomicsYou Probably Dont Need These
- Where to Learn More About Concurrency
- Exercises
- Wrapping Up
- 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
- Middleware
- Use third-party modules to enhance the server
- ResponseController
- Structured Logging
- Exercises
- Wrapping Up
- 14. The Context
- What Is the Context?
- Values
- Cancellation
- Contexts with Deadlines
- Context Cancellation in Your Own Code
- Exercises
- Wrapping Up
- 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
- Understanding the Basics of Testing
- 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
- 16. Here Be Dragons: Reflect,
Unsafe, and Cgo
- Reflection Lets You Work with Types at Runtime
- Types, Kinds, and Values
- Types and kinds
- Values
- Types, Kinds, and Values
- Make New Values
- Use Reflection to Check If an Interfaces 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 Dont
- Reflection Cant Make Methods
- Use Reflection Only if Its Worthwhile
- Reflection Lets You Work with Types at Runtime
- 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
O'Reilly Media - inne książki
-
If you haven't modernized your data cleaning and reporting processes in Microsoft Excel, you're missing out on big productivity gains. And if you're looking to conduct rigorous data analysis, more can be done in Excel than you think. This practical book serves as an introduction to the modern Exc...(177.65 zł najniższa cena z 30 dni)
186.15 zł
219.00 zł(-15%) -
TypeScript is a typed superset of JavaScript with the potential to solve many of the headaches for which JavaScript is famous. But TypeScript has a learning curve of its own, and understanding how to use it effectively takes time and practice. Using the format popularized by Effective C++ and Eff...(177.65 zł najniższa cena z 30 dni)
186.15 zł
219.00 zł(-15%) -
Software as a service (SaaS) is on the path to becoming the de facto model for building, delivering, and operating software solutions. Adopting a multi-tenant SaaS model requires builders to take on a broad range of new architecture, implementation, and operational challenges. How data is partiti...(237.15 zł najniższa cena z 30 dni)
245.65 zł
289.00 zł(-15%) -
Great engineers don't necessarily make great leaders—at least, not without a lot of work. Finding your path to becoming a strong leader is often fraught with challenges. It's not easy to figure out how to be strategic, successful, and considerate while also being firm. Whether you're on the...(118.15 zł najniższa cena z 30 dni)
126.65 zł
149.00 zł(-15%) -
Data science happens in code. The ability to write reproducible, robust, scaleable code is key to a data science project's success—and is absolutely essential for those working with production code. This practical book bridges the gap between data science and software engineering,and clearl...(211.65 zł najniższa cena z 30 dni)
220.15 zł
259.00 zł(-15%) -
With the massive adoption of microservices, operators and developers face far more complexity in their applications today. Service meshes can help you manage this problem by providing a unified control plane to secure, manage, and monitor your entire network. This practical guide shows you how th...(194.65 zł najniższa cena z 30 dni)
211.65 zł
249.00 zł(-15%) -
Get practical advice on how to leverage AI development tools for all stages of code creation, including requirements, planning, design, coding, debugging, testing, and documentation. With this book, beginners and experienced developers alike will learn how to use a wide range of tools, from gener...(164.25 zł najniższa cena z 30 dni)
186.15 zł
219.00 zł(-15%) -
Rust's popularity is growing, due in part to features like memory safety, type safety, and thread safety. But these same elements can also make learning Rust a challenge, even for experienced programmers. This practical guide helps you make the transition to writing idiomatic Rust—while als...(164.25 zł najniższa cena z 30 dni)
186.15 zł
219.00 zł(-15%) -
Advance your Power BI skills by adding AI to your repertoire at a practice level. With this practical book, business-oriented software engineers and developers will learn the terminologies, practices, and strategy necessary to successfully incorporate AI into your business intelligence estate. Je...(211.65 zł najniższa cena z 30 dni)
220.15 zł
259.00 zł(-15%) -
Microservices can be a very effective approach for delivering value to your organization and to your customers. If you get them right, microservices help you to move fast by making changes to small parts of your system hundreds of times a day. But if you get them wrong, microservices will just ma...(203.15 zł najniższa cena z 30 dni)
211.65 zł
249.00 zł(-15%)
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.
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.
Książka drukowana
Oceny i opinie klientów: Learning Go. 2nd Edition Jon Bodner (0) 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.