Categorygithub.com/hliangzhao/learngo
repository
0.0.0-20220902063825-20988d7d878c
Repository: https://github.com/hliangzhao/learngo.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author

# README

LearnGo

1-get-bilibili

通过一个简单的http get的例子熟悉Golang的语法。

2-array-slice-map-func

介绍Golang中的数组、切片、映射、函数的创建及使用(make、传值 or 传址)。

3-type-system

介绍内置类型、引用类型、结构体、接口以及基于此的、多态的实现。

3-add-utils

介绍golang内置的常用工具,如操纵io流、发起外部进程、编码解码等。

4-goroutine-channel

介绍Golang最重要的特征:协程与通道。

协程是Go语言中实现并发的一种方式,协程之间传递信息和同步的渠道是channel。 此处的协程是轻量级线程,与Python中的协程完全不一样,会面临锁相关的问题。

5-concurrent-model

介绍Golang中的两种并发模型:Runner和Pool。

  • Runner结构体内包含任务列表和传递信息的通道;
  • Pool内部存放的是共享资源

6-context

context主要是用来在协程之间传递上下文信息,包括取消信号、超时时间、截止时间以及一些键值对等。 客户端发起取消等信号,服务端收到之后就会终止响应本次请求,从而节约服务端资源。

7-testing-benchmarking

介绍Golang中的单元测试(测试函数是否有bug)和基准测试(测试函数的运行时间)的写法。

8-reflection

反射机制使得我们可以在程序动态运行时获得输入值的类型等信息。 最典型的案例是fmt.Println(),该函数动态获得传入的参数信息从而给出正确的格式输出。

9-app-bili-stream

通过go get使用外部包。

10-gRPC

展示了如何通过protoc生成桩代码,并给出了gRPC server和client的一个简单案例。

11-gin

展示了Golang的web框架Gin的使用。

12-video-website

综合运用GinReact实现一个简易版B站。

13-Docker

给出了Dockerfile的一个构建示例。

给出了一个简易版的Docker实现。具体地,需要在代码中通过系统调用创建cgroup等内容对试图运行的程序进行进程隔离。

14-use-cobra

使用Cobra构建golang命令行应用程序示例。

15-crd-demo

通过CRD机制为Kubernetes集群实现一个自定义资源对象MyDemo