Ultimate Go Programming

Ultimate Go Programming

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

Ultimate Go Programming LiveLessons 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.

What You Will Learn

  • Language mechanics and internals
  • Data structures and mechanical sympathy
  • Software design and best practices
  • Project structure and design
  • Concurrent software design
  • Testing and benchmarking
  • Tracing and profiling
Table of Contents

01 Ultimate Go Programming – Introduction
02 1.0 Topics
03 1.1 Prepare Your Mind
04 1.2 Productivity versus Performance
05 1.3 Correctness versus Performance
06 1.4 Code Reviews
07 2.0 Topics
08 2.1 Variables
09 2.2 Struct Types
10 2.3.1 Pointers, Part 1
11 2.3.2 Pointers, Part 2
12 2.3.3 Pointers, Part 3
13 2.3.4 Pointers, Part 4
14 2.3.5 Pointers, Part 5
15 2.4 Constants
16 2.5 Functions
17 3.0 Topics
18 3.1 Data-Oriented Design
19 3.2 Arrays
20 3.3.1 Slices, Part 1
21 3.3.2 Slices, Part 2
22 3.3.3 Slices, Part 3
23 3.4 Maps
24 4.0 Topics
25 4.1.1 Methods, Part 1
26 4.1.2 Methods, Part 2
27 4.2.1 Interfaces, Part 1
28 4.2.2 Interfaces, Part 2
29 4.3 Embedding
30 4.4 Exporting
31 5.0 Topics
32 5.1 Grouping Types
33 5.2.1 Decoupling, Part 1
34 5.2.2 Decoupling, Part 2
35 5.3 Conversion and Assertions
36 5.4 Interface Pollution
37 5.5 Mocking
38 5.6 Design Guidelines
39 6.0 Topics
40 6.1 Default Error Values
41 6.2 Error Variables
42 6.3 Type as Context
43 6.4 Behavior as Context
44 6.5 Find the Bug
45 6.6 Wrapping Errors
46 7.0 Topics
47 7.1 Language Mechanics
48 7.2 Design Guidelines
49 7.3 Package-Oriented Design
50 8.0 Topics
51 8.1 Go Scheduler Internals
52 8.2 Language Mechanics
53 8.3 Less Is More
54 9.0 Topics
55 9.1 Race Detection
56 9.2 Atomic Functions
57 9.3 Mutexes
58 10.0 Topics
59 10.1.1 Language Mechanics, Part 1
60 10.1.2 Language Mechanics, Part 2
61 10.2 Unbuffer Examples
62 10.3 Buffer Example
63 10.4 Select Example
64 10.5 Channel Design Guidelines
65 10.6 Concurrent Software Design
66 11.0 Topics
67 11.1 Context
68 11.2 Task
69 11.3 Logger
70 12.0 Topics
71 12.1 Basic Testing
72 12.2 Web Testing
73 12.3 Example Tests
74 12.4 Sub Tests
75 12.5 Test Coverage
76 12.6 Benchmarking
77 12.7 Fuzzing
78 13.0 Topics
79 13.1 Stack Traces
80 13.2 Profiling Guidelines
81 13.3 Memory Tracing
82 13.4 Scheduler Tracing
83 13.5 Memory and CPU Profiling
84 13.6 pprof Profiling
85 13.7 Blocking Profiling
86 13.8 Real World Example
87 Ultimate Go Programming – Summary