Go Core - Array + Slice
|Word Count:0|Reading Time:1mins
Author: zhongmingmao
Copyright Notice: All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
Related Articles

2022-05-15
Go Core - Entity

2022-05-15
Go Core - List + Ring

2022-12-16
Go - Code Structure
源文件 Go 源文件使用全小写字母形式的短小单词命名,并以 .go 扩展名结尾 如果使用多个单词,将多个单词直接连接起来,而不使用其它分隔符 即 helloworld.go,而非 hello_world.go 尽量不要使用两个以上单词组合作为文件名,否则很难辨认 Hello, World1234567package mainimport "fmt"func main() { fmt.Println("Hello, World!")} 12345678910111213$ tree.└── main.go$ go build main.go$ tree.├── main└── main.go$ ./mainHello, World! 程序结构1package main package 是 Go 语言的基本组成单位,通常使用单个小写单词命名 整个 Go 程序仅允许存在一个 main 包 main.go12345import "fmt"func main() { fmt.Println(&...

2022-04-16
Go Engineering - Foundation - API - RESTful
概述 REST:Representational state transfer REST 只是一种软件架构风格,是一组架构约束条件和原则,而不是技术框架 REST 有一系列规范,满足这些规范的 API 均可称为 RESTful API REST 规范把所有内容都视为资源,对资源的操作对应 HTTP 协议提供的 GET、POST、PUT 和 DELETE 方法 由于 REST 与 HTTP 协议相辅相成,因此 HTTP 协议已经成为 RESTful API 的事实标准 特点 以资源为中心,一切都可以抽象成资源,所有行为都是对资源的 CRUD 资源对应着面向对象范式里面的对象 资源使用 URI 标识,每个资源实例都有一个唯一的 URI 标识 资源是有状态的,使用 JSON/XML 等在 HTTP Body 里表征资源的状态 客户端通过 HTTP Method 对资源进行操作,实现 REST 无状态:每个 RESTful API 请求都包含了所有足够完成本次操作的信息,服务器无需保持 Session 无状态对于服务端的弹性扩容是很重要的 设计原则 RESTful API 的核心是规...

2022-12-18
Go - Build Mode
构建过程 确定包版本 + 编译包 + 链接目标文件(编译后得到的) 构建模式 Mode Desc GOPATH 不关注依赖版本 Vendor - 1.5 Reproducible Build Go Module - 1.11 Dependency Management GOPATH Go 首次开源时,内置了 GOPATH 的构建模式 Go 编译器可以在本地 GOPATH 下搜索 Go 程序依赖的第三方包 如果存在,则使用这个本地包进行编译;如果不存在,则会报编译错误 main.go1234567package mainimport "github.com/sirupsen/logrus"func main() { logrus.Println("hello, gopath mode")} 无法找到依赖包而构建失败 1234567891011121314151617$ go versiongo version go1.10.8 linux/amd64$ echo $GOROOT/home/zhongm...

2022-03-27
Go Engineering - Specification - Life Cycle
生命周期管理 研发模式瀑布模式 按照预先规划好的研发阶段来推进研发进度,串行执行(在每个阶段完美完成后,才会进入到下一阶段) 迭代模式 研发任务被切成一系列轮次,每一个轮次是一个迭代,每一次迭代都是从设计到实现的完整过程 不要求每个阶段的任务都做到最完美,先把主要功能搭建起来,然后再通过客户的反馈信息不断完善 缺点:比较专注于开发过程,很少从项目管理的视角去加速和优化项目开发过程 敏捷模式 将一个大的需求分成多个、可分阶段完成的小迭代,在开发过程中,软件一直处于可用状态! 敏捷模式需要高频地开发、构建、测试、发布和部署,进而催生了 CICD 技术 CICD CICD 通过自动化的手段,快速执行代码检查、测试、构建、部署等任务,解决敏捷模式带来的弊端 CI:Continuous Integration 频繁地将开发者的代码合并到主干上 流程 开发人员完成代码开发,push 到 git 仓库 CI 工具对代码进行扫描、单元测试和构建,并将结果反馈给开发者 CI 通过后会将代码合并到主干 CI 可以让问题在开发阶段暴露,CI 执行很频繁,需要自动化工具支撑 CD:Continuous ...
Announcement
Things are always unexpected!






