Golang 101

Golang 簡介

Go 安裝及環境設定

Go 入門(Tutorial)

變數

函數 Functions

Methods

6.1 Method Declarations
6.2 Methods with a Pointer Receiver
6.3 Composing Types by Struct Embedding
6.4 Method Values and Expressions
6.5 Example: Bit Vector Type
6.6 Encapsulation

Goroutines and Channels

8.1 Goroutines
8.2 Example: Concurrent Clock Server
8.3 Example: Concurrent Echo Server
* Channels 介紹
8.5 Looping in Parallel
8.6 Example: Concurrent Web Crawler
8.7 Multiplexing with select
8.8 Example: Concurrent Directory Traversal
8.9 Cancellation
8.10 Example: Chat Server

Concurrency with Shared Variables

9.1 Race Conditions
9.2 Mutual Exclusion: sync.Mutex
9.3 Read/Write Mutexes: sync.RWMutex
9.4 Memory Synchronization
9.5 Lazy Initialization: sync.Once
9.6 The Race Detector
9.7 Example: Concurrent Non-Blocking Cache
9.8 Goroutines and Threads

檔案處理

GUI 介面

資料庫介紹

建立資料模型

9.1 Defining a User
9.2 Creating the UsersDB interface
9.3 Implementing UsersDB
9.3.1 The Create() method
9.3.2 The Update() method
9.3.3 The Delete() method
9.3.4 The ByID() method
9.3.5 The ByEmail() method
9.4 Instantiating and using a UsersDB

測試 Testing

Low-Level Programming

  • unsafe.Sizeof, Alignof, and Offsetof
  • unsafe.Pointer
  • Example: Deep Equivalence
  • Calling C Code with cgo
  • Another Word of Caution

網際網路應用程式

Client 端

各式通訊協定應用

建立 web server 端程式

常見的 routers

server 訊息輸出方式

Go 樣板介紹

RESTful API

GraphicQL

Google Golang gRPC 介紹

Creating a sign up page

7.1 Add a sign up page with a form
7.1.1 Creating a Bootstrap sign up form
7.1.2 Wrapping our form in a panel
7.1.3 Adding the sign up view to main.go
7.1.4 Adding the sign up link to our navbar
7.2 An intro to REST
7.2.1 How REST affects our code
7.3 Creating our first controller
7.4 Processing the sign up form
7.5 Cleaning up and creating a static controller
7.6 Exercises

GraphicQL

認證機制

10.1 Why not use another package or service?
10.2 Creating users and securely storing passwords
10.2.1 Hashing passwords
10.2.2 Update the users model
10.2.3 Update the users controller
10.3 Handling logins & authentication
10.3.1 Creating a login page + sessions controllers
10.3.2 Authentication needs to be time constant
10.4 Exercises
* JWT Authentication

11. Sessions and limiting user access

12.Closures, contexts, and middleware

13. Emails for password reset and account activation

14. Creating the gallery resource

15. Uploading and creating images

16. 網路應用

Email

17. 程式佈署(Deploying)

系統監控

套件

18. 機器人(Bot)

其他工具

範例

Data Science

常用函數

學習資源

其他