容器:docker、kubernetes
web server:caddy
db:cockroachDb(new sql db)
2.部分使用Go开发的项目
MongoDB/Couchbase
Dropbox
Uber
并发编程:采用CSP(communication sequential process)模型,CSP的特点是不需要锁,不需要callback。
编发编程包括分布式和并行计算
安装 https://studygolang.com/dl 下载适合自己机器的golang版本 Golang 在 Mac Vscode 中代码自动补全和自动导入包:使用快捷键:command+shift+P:go:install/updatetools,将所有17个插件都勾选上,点击ok即开始安装。然后就可以使用了。 hello world server(读取url的参数)package main import ( //引入 "fmt" "net/http" ) func main() { //param 值 指针 http.HandleFunc("/", func(writer http.ResponseWriter, request *http.Request) { fmt.Fprintf(writer, "
hello world 并发版本(goroutine)hello world %s!
", request.FormValue("name")) }) //监听8888端口 阻塞监听 http.ListenAndServe(":8888", nil) }package main import ( "fmt" // "time" ) //开启goroutine 开启chan类型数据通道,通过for循环来让5000个goroutine来竞争输出到主函数中的管道中 func main() { ch := make(chan string) for i := 0; i < 5000; i++ { //当加入go关键字后 starts a goroutine(go rui tin) go printHelloWorld(i, ch) } for { msg := <-ch fmt.Println(msg) } //延时5毫秒 // time.Sleep(time.Millisecond) } func printHelloWorld(i int, ch chan string) { ch <- fmt.Sprintf("hello world form goroutine %d!\n", i) }
go sort函数排序package main import ( "fmt" "sort" ) func main() { //create a slice of int 比数组更加灵活可以动态添加删除等等操作 arr := []int{3, 6, 2, 1, 9, 10, 8} sort.Ints(arr) for _, v := range arr { fmt.Println(v) } }
作者:Li_fengxiao