- 16 Sections
- 115 Lessons
- 32 Hours
Expand all sectionsCollapse all sections
- PERSIAPAN2
- 1. SETTING UP ENVIRONMENT4
- 2. PREDECLARED TYPES AND DECLARATIONS6
- 3. COMPOSITE TYPES4
- 4. BLOCKS, SHADOWS, AND CONTROL STRUCTURES6
- 5. FUNCTIONS5
- 6. POINTERS9
- 7.16.1. A Quick Pointer Primer
- 7.26.2. Pointers Indicate Mutable Parameters
- 7.36.3. Pointers Are a Last Resort
- 7.46.4. Pointer Passing Performance
- 7.56.5. The Zero Value Versus No Value
- 7.66.6. The Difference Between Maps and Slices
- 7.76.7. Slices as Buffers
- 7.86.8. Reducing the Garbage Collector’s Workload
- 7.96.9. Tuning the Garbage Collector
- 7. TYPES, METHODS, AND INTERFACES12
- 8.17.1. Types in Go
- 8.27.2. Methods
- 8.37.3. Use Embedding for Composition
- 8.47.4. Embedding Is Not Inheritance
- 8.57.5. A Quick Lesson on Interfaces
- 8.67.6. Interfaces Are Type-Safe Duck Typing
- 8.77.7. Embedding and Interfaces
- 8.87.8. Type Assertions and Type Switches
- 8.97.9. Use Type Assertions and Type Switches Sparingly
- 8.107.10. Function Types Are a Bridge to Interfaces
- 8.117.11. Implicit Interfaces Make Dependency Injection Easier
- 8.127.12. Wire
- 8. GENERICS11
- 9.18.1. Generics Reduce Repetitive Code and Increase Type Safety
- 9.28.2. Introducing Generics in Go
- 9.38.3. Generic Functions Abstract Algorithms
- 9.48.4. Generics and Interfaces
- 9.58.5. Use Type Terms to Specify Operators
- 9.68.6. Type Inference and Generics
- 9.78.7. Type Elements Limit Constants
- 9.88.8. Combining Generic Functions with Generic Data Structures
- 9.98.9. Things That Are Left Out
- 9.108.10. Idiomatic Go and Generics
- 9.118.11. Adding Generics to the Standard Library
- 9. ERRORS8
- 10. MODULES, PACKAGES, AND IMPORT8
- 11. GO TOOLING14
- 12.111.1. Using Go Run to Try Out Small Programs
- 12.211.2. Adding Third-Party Tools with Go Install
- 12.311.3. Improving Import Formatting with Goimports
- 12.411.4. Using Code-Quality Scannerss
- 12.511.5. Using Govulncheck to Scan for Vulnerable Dependencies
- 12.611.6. Embedding Content into Your Program
- 12.711.7. Embedding Hidden Files
- 12.811.8. Using Go Generate
- 12.911.9. Working with Go Generate and Makefiles
- 12.1011.10. Reading the Build Info Inside a Go Binary
- 12.1111.11. Building Go Binaries for Other Platforms
- 12.1211.12. Using Build Tags
- 12.1311.13. Testing Versions of Go
- 12.1411.14. Using Go Help to Learn More About Go Tooling
- 12. CONCURRENCY IN GO11
- 13.112.1. When to Use Concurrency
- 13.212.2. Goroutines
- 13.312.3. Channels
- 13.412.4. Reading, Writing, and Buffering
- 13.512.5. Using For-Range and Channels
- 13.612.6. Closing a Channel
- 13.712.7. Select
- 13.812.8. Concurrency Practices and Patterns
- 13.912.9. Embedding Hidden Files
- 13.1012.10. Using Go Generate
- 13.1112.11. Working with Go Generate and Makefiles
- 13. THE STANDARD LIBRARY5
- 14. WRITING TESTS10
- 15.114.1. Understanding the Basics of Testing
- 15.214.2. Running Table Tests
- 15.314.3. Running Tests Concurrently
- 15.414.4. Checking Your Code Coverage
- 15.514.5. Fuzzing
- 15.614.6. Using Benchmarks
- 15.714.7. Using Stubs in Go
- 15.814.8. Using Httptest
- 15.914.9. Using Integration Tests and Build Tags
- 15.1014.10. Finding Concurrency Problems with the Data Race Detector
- PENUTUPAN2