| Ch1 Course Introduction |
1-1 Course Guide |
— |
Skipped |
|
1-2 Installation and Environment |
001.md > GOPATH, Environment Variables |
Covered |
| Ch2 Basic Syntax |
2-1 Variable Definition |
001.md > Basic Syntax, Built-in Types, Type Casting, Constants |
Covered |
|
2-4 Conditional Statements |
001.md > if, switch |
Covered |
|
2-5 Loops |
001.md > for |
Covered |
|
2-6 Functions |
001.md > Functions, Pointers |
Covered |
| Ch3 Built-in Containers |
3-1 Arrays |
001.md > Arrays |
Covered |
|
3-3 Slice Operations |
001.md > Slice (reslice/append/copy/cap expansion) |
Covered |
|
3-5 Map Examples |
001.md > Map + Longest Substring Without Repeating Characters Example |
Covered |
| Ch4 Object-Oriented |
4-1 Structs and Methods |
002.md > Structs, Methods, TreeNode, Encapsulation, Queue |
Covered |
| Ch5 Interfaces |
5-1 Concept of duck typing |
002.md > Interfaces, duck typing, Retriever Example |
Covered |
|
5-2 Interface Definition and Implementation |
002.md > Interface Variables, Type Assertion/Switch |
Covered |
|
5-4 Interface Composition |
002.md > Composite Interface Concept (Brief) |
Covered |
|
5-5 Common System Interfaces |
002.md > Stringer/Reader/Writer |
Covered |
| Ch6 Functional Programming |
6-1 Functional Programming |
002.md > Closures/Fibonacci + 006_函数式编程.md |
Supplemented |
|
6-2 Functional Programming Example One |
002.md > TraverseFunc + 006_函数式编程.md |
Supplemented |
| Ch7 Error Handling |
7-2 Error Handling Concepts |
002.md > error type, PathError |
Covered |
|
7-3 Server Unified Error Handling |
002.md > errWrapper, Error Classification and Handling |
Covered |
|
7-5 Server Unified Error Handling 2 |
002.md > userError interface, User/System Error Separation |
Covered |
| Ch8 Testing |
8-1 Testing |
003.md > Table-Driven Tests |
Covered |
|
8-2 Code Coverage and Performance Testing |
编程基础/0009_testing详解.md |
Supplemented |
|
8-3 Performance Tuning with pprof |
Go工程师体系课/020.md(pprof) |
Supplemented |
|
8-4 Testing HTTP Server (Part 1) |
编程基础/0009_testing详解.md > httptest |
Supplemented |
|
8-5 Testing HTTP Server (Part 2) |
Same as above |
Supplemented |
|
8-6 Generating Documentation and Example Code |
007_godoc与代码生成.md |
Supplemented |
|
8-7 Testing Summary |
编程基础/0009_testing详解.md |
Supplemented |
| Ch9 Goroutine |
9-1 (goroutine Basics) |
004.md > goroutine principles, coroutine vs thread, switching points |
Covered |
|
9-2 Go Language Scheduler |
008_GMP调度器与Go设计哲学.md |
Supplemented |
| Ch10 Channel |
10-2 Using Channel to Wait for Task Completion |
004.md > done channel, WaitGroup |
Covered |
|
10-3 Tree Traversal Using Channel |
004.md > TraverseWithChannel |
Covered |
|
10-4 Scheduling with select |
004.md > select, Timeout, Ticker, Data Cache Queue |
Covered |
| Ch11 HTTP Standard Library |
11-1 HTTP Standard Library |
005.md > HTTP Client, User-Agent |
Covered |
| Ch12 Maze Algorithm |
12-1 Maze Algorithm |
005.md > Breadth-First Search Algorithm, point struct |
Covered |
| Ch13 Crawler Project |
13-1 Crawler Project Introduction |
005.md > Technology Stack Selection, Crawler Library |
Covered |
|
13-2 Overall Algorithm |
005.md > Fetcher→Parser Architecture |
Covered |
| Ch14 Single-Task Crawler |
14-1 Obtaining Initial Page Content |
005.md > http.Get+Transcoding+Regex |
Covered |
|
14-2 Regular Expressions |
005.md > regexp.MustCompile |
Covered |
|
14-3 Extracting Cities and URLs |
005.md > printCityList |
Covered |
|
14-4 Architecture of the Single-Task Crawler Version |
005.md > engine/fetcher/model |
Covered |
|
14-5 Engine and Parser |
005.md |
Covered |
|
14-6 Testing CityListParser |
005.md |
Covered |
|
14-8 User Information Parser (Part 2) |
005.md |
Covered |
| Ch15 Concurrent Crawler |
15-1 Concurrent Crawler Architecture |
005.md > Worker Architecture Diagram |
Covered |
|
15-2 Simple Scheduler |
005.md > Scheduler Implementation 1 (Shared Input) |
Covered |
|
15-3 Concurrent Scheduler |
005.md > Implementation 2 (request+worker dual queues) |
Covered |
|
15-5 Refactoring and Summary |
005.md > URL Deduplication |
Covered |
|
15-6 More Cities |
005.md |
Covered |
| Ch16 Docker+ES |
16-1 ItemSaver Architecture |
005.md > ItemSaver, goroutine submission |
Covered |
|
16-2 Introduction to Docker and ElasticSearch |
005.md > docker run ES |
Covered |
|
16-4 ElasticSearch Introduction |
005.md > REST Interface, index/type/id |
Covered |
|
16-5 Storing Data to ES |
005.md > olivere/elastic client |
Covered |
|
16-8 Refactoring and Running |
005.md |
Covered |
|
16-9 Standard Template Library Introduction |
005.md > html/template (Brief) |
Covered |
|
16-10 Implementing Frontend Display Page |
005.md |
Covered |
|
16-11 Improving Frontend Display |
005.md |
Covered |
| Ch17 Distributed Crawler |
17-1 Introduction to Distributed Systems |
005.md > Distributed vs Microservices, Message Passing |
Covered |
|
17-4 ItemSaver Service |
005.md > jsonRPC server/client |
Covered |
|
17-5 Integrating ItemSaver Service |
005.md |
Covered |
|
17-7 Implementing Crawler Service |
005.md |
Covered |
|
17-8 Running the Complete Distributed Crawler |
005.md |
Covered |
|
17-10 Practical Project Summary |
005.md > Distributed Architecture Summary |
Covered |
| Ch18 Course Summary |
18-1 Understanding Go Language Design |
008_GMP调度器与Go设计哲学.md |
Supplemented |
|
18-2 Course Summary |
Same as above |
Supplemented |