跳转至

golang

Temporal 分布式应用开发平台简介

Temporal 是一个分布式应用开发平台,通过持久执行确保应用在故障时自动恢复,简化状态管理和错误处理。支持多语言SDK,提供工作流(Workflow)和活动(Activities)模型,内置可见性工具(UI/CLI)和事件历史记录。具备高可靠性、可扩展性,支持本地和云部署,适用于复杂业务流程。

Temporal 解决了开发者在构建分布式应用程序时面临的许多问题。但大多数问题都围绕以下这三个主题

golang源码生成文档及注释语法

go version: 1.22.6

godoc

已弃用godoc 无法选择要显示的包版本,由 golang.org/x/pkgsite/cmd/pkgsite 替代。

godoc 提取 Go 代码里的注释生成网页的形式的 Go 程序文档

VSCode Remote Development-go开发环境搭建

安装vscode

刚学习go的时候一直使用的vscode开发,轻巧方便。但随着工程代码量增加,本地下载的包越来越多,代码提示和自动补全功能变得越来越慢,就转向了goland神IDE,打开一个工程占用1.5G内存,吓得我赶紧又加了8G内存!!!

正式版的vscode已支持VSCode Remote Development,附上vscode下载地址:Visual Studio Code下载地址

安装完成,安装GO扩展和Remote Development扩展,Remote Development扩展包含了Remote - SSHRemote - ContainersRemote - WSL三个扩展,分别用于通过ssh远程连接、连接docker容器和连接 Windows Subsystem for Linux (WSL)

goroutine并发控制

通信

共享内存
func  Test() {
    ordersInfoApp  :=  make([]orderInfoApp, 0, totalCount)
    var  mux sync.Mutex
    wg  := sync.WaitGroup{}

    for  i  :=  0; i <=  10; i++ {
        wg.Add(1)
        go  func(pageIndex int) {
            // do somethine
            var  ordersInfo orderInfoApp
            mux.Lock()
            ordersInfoApp  =  append(ordersInfoApp, ordersInfo)
            mux.Unlock()

            wg.Done()
        }(i)
    }

    wg.Wait()
}

一般在简单的数据传递下使用

go get添加进度

go get 比较大的包时会很慢, 可能几分钟或更长, 让人误以为卡死了. 修改 go 源码包,让 go get 显示进度。