Ultimate Go Programming LiveLessons, 2nd Edition

Ultimate Go Programming LiveLessons, 2nd Edition

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 16h 50m | 9.52 GB

Ultimate Go Programming LiveLessons, Second Edition, provides an intensive, comprehensive, and idiomatic view of the Go programming language. This course focuses on both the specification and implementation of the language, including topics ranging from language syntax, design, and guidelines to concurrency, testing, and profiling. This class is perfect for anyone who wants a jump-start in learning Go or wants a more thorough understanding of the language and its internals.

In this video training, Bill Kennedy starts by providing a deep and intensive dive into Go’s language syntax, idioms, implementation, and specification. Then Bill guides you through the essential things you need to know about designing software in Go. With that strong foundation, Bill then teaches the language mechanics behind Go’s concurrency primitives and covers all the things you need to know to design concurrent software. Finally, Bill covers the tooling Go provides for testing, tracing, and profiling your programs.

Learn How To

  • Read code with an understanding of the language mechanics and internals
  • Understand costs by knowing the different semantics of the language
  • Code and design software more effectively
  • Design your Go projects and better ways to package your APIs
  • Write multithreaded code in Go and learn the things you need to focus on
  • Unit test your code and write benchmarks to validate assumptions
  • Profile and trace your Go programs to identify and fix bugs and to make improvements
Table of Contents

1 Ultimate Go Programming – Introduction
2 Topics
3 1.1 Prepare Your Mind
4 1.2 Productivity versus Performance
5 1.3 Correctness versus Performance
6 1.4 Code Reviews
7 Topics
8 2.1 Variables
9 2.2 Struct Types
10 2.3 Pointers—Part 1 (Pass by Value)
11 2.3 Pointer—Part 2 (Sharing Data)
12 2.3 Pointers—Part 3 (Escape Analysis)
13 2.3 Pointers—Part 4 (Stack Growth)
14 2.3 Pointers—Part 5 (Garbage Collection)
15 2.4 Constants
16 Topics
17 3.1 Data-Oriented Design
18 3.2 Arrays—Part 1 (Mechanical Sympathy)
19 3.2 Arrays—Part 2 (Semantics)
20 3.3 Slices—Part 1 (Declare and Length and Reference Types)
21 3.3 Slices—Part 2 (Appending Slices)
22 3.3 Slices—Part 3 (Taking Slices of Slices)
23 3.3 Slices—Part 4 (Slices and References)
24 3.3 Slices—Part 5 (Strings and Slices)
25 3.3 Slices—Part 6 (Range Mechanics)
26 3.4 Maps
27 Topics
28 4.1 Methods—Part 1 (Declare & Receiver Behavior)
29 4.1 Methods—Part 2 (Value & Pointer Semantics)
30 4.1 Methods—Part 3 (Function_ Method Variables)
31 4.2 Interfaces—Part 1 (Polymorphism)
32 4.2 Interfaces—Part 2 (Method Sets and Address of Value)
33 4.2 Interfaces—Part 3 (Storage by Value)
34 4.3 Embedding
35 4.4 Exporting
36 Topics
37 5.1 Grouping Types
38 5.2 Decoupling—Part 1
39 5.2 Decoupling—Part 2
40 5.2 Decoupling—Part 3
41 5.3 Conversion and Assertions
42 5.4 Interface Pollution
43 5.5 Mocking
44 5.6 Design Guidelines
45 Topics
46 6.1 Default Error Values
47 6.2 Error Variables
48 6.3 Type as Context
49 6.4 Behavior as Context
50 6.5 Find the Bug
51 6.6 Wrapping Errors
52 Topics
53 7.1 Language Mechanics
54 7.2 Design Guidelines
55 7.3 Package-Oriented Design
56 Topics
57 8.1 OS Scheduler Mechanics
58 8.2 Go Scheduler Mechanics
59 8.3 Creating Goroutines
60 Topics
61 9.1 Cache Coherency and False Sharing
62 9.2 Synchronization with Atomic Functions
63 9.3 Synchronization with Mutexes
64 9.4 Race Detection
65 9.5 Map Data Race
66 9.6 Interface-Based Race Condition
67 Topics
68 10.1 Signaling Semantics
69 10.2 Basic Patterns—Part 1 (Wait for Task)
70 10.2 Basic Patterns—Part 2 (Wait for Result)
71 10.2 Basic Patterns—Part 3 (Wait for Finished)
72 10.3 Pooling Pattern
73 10.4 Fan Out Pattern—Part 1
74 10.4 Fan Out Pattern—Part 2
75 10.5 Drop Pattern
76 10.6 Cancellation Pattern
77 Topics
78 11.1 Context—Part 1
79 11.1 Context—Part 2
80 11.2 Failure Detection
81 Topics
82 12.1 Basic Unit Testing
83 12.2 Table Unit Testing
84 12.3 Mocking Web Server Response
85 12.4 Testing Internal Endpoints
86 12.5 Example Tests
87 12.6 Sub Tests
88 12.7 Code Coverage
89 Topics
90 13.1 Basic Benchmarking
91 13.2 Sub Benchmarks
92 13.3 Validate Benchmarks
93 Topics
94 14.1 Profiling Guidelines
95 14.2 Stack Traces
96 14.3 Micro Level Optimization
97 14.4 Part 1 – Macro Level Optimization – GODEBUG Tracing
98 14.4 Part 2 – Macro Level Optimization – Memory Profiing
99 14.4 Part 3 – Macro Level Optimization – Tooling Changes
100 14.4 Part 4 – Macro Level Optimization – CPU Profiling
101 14.5 Execution Tracing
102 Ultimate Go Programming – Summary