参考资料

  1. 能否用Docker替代虚拟化?
  2. RethinkDB 是一个开源的分布式 NoSQL 数据库,专为实时应用设计
  3. DPanel 是一个轻量级的 Web 面板工具
  4. FileZilla Server是一款开源FTP服务器软件
  5. Jobber 是一个轻量级的任务调度工具
  6. Spug 是一款开源的轻量级自动化运维平台
  7. Jitsi Meet 是一个开源的视频会议解决方案
  8. Traefik 是一个现代化的反向代理和负载均衡工具

Golang 简介

Go(又称 Golang)是 Google 开发的一种静态强类型、编译型、并发型编程语言,设计目标是高效、简洁和可靠。它于 2009 年正式发布,适用于构建高性能、可扩展的后端服务、云原生应用和分布式系统。

特点

  1. 简洁语法:类似 C 的语法,但去掉冗余设计(如类继承、构造函数等)。

  2. 并发模型:基于 goroutine 和 channel 的轻量级并发。

  3. 垃圾回收:自动内存管理。

  4. 跨平台编译:支持生成多种操作系统和架构的二进制文件。

  5. 标准库强大:内置 HTTP、JSON、加密等常用功能。

  6. 快速编译:编译速度显著快于 C++/Java。

最新更新内容及时间

  • Go 1.21(2023 年 8 月发布):

    • 新增 slicesmaps 标准库包。

    • 优化泛型性能。

    • 改进 GC 和编译器。

    • 支持 WASM 的 wasip1 目标。

镜像下载地址

官网地址

https://golang.org

文档地址

Docker 安装示例

# 使用官方 Golang 镜像
FROM golang:1.21-alpine

# 设置工作目录
WORKDIR /app

# 复制代码并编译
COPY . .
RUN go build -o main .

# 运行程序
CMD ["/app/main"]

YAML 配置示例(如用于 CI/CD)

# .gitlab-ci.yml 示例
build:
  image: golang:1.21
  script:
    - go build -o myapp
    - ./myapp

常用错误及解决

  1. undefined: function

    • 原因:函数未定义或未导入包。

    • 解决:检查拼写或导入正确的包。

  2. cannot find package

    • 原因:依赖未下载或 GOPATH 设置错误。

    • 解决:运行 go mod download 或设置 GO111MODULE=on

  3. panic: runtime error

    • 原因:空指针引用或越界访问。

    • 解决:检查 nil 值和切片/数组边界。

  4. fatal error: concurrent map writes

    • 原因:并发写 map。

    • 解决:使用 sync.Mutexsync.Map

  5. import cycle not allowed

    • 原因:循环依赖。

    • 解决:重构代码,提取公共部分到新包。

声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。